<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE rfc SYSTEM "http://xml.resource.org/authoring/rfc2629.dtd" [
<!ENTITY rfc3261 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3261.xml">
<!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY rfc2544 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2544.xml">
<!ENTITY rfc3550 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3550.xml">
<!ENTITY rfc1242 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.1242.xml">
<!ENTITY rfc2285 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2285.xml">
<!ENTITY rfc3711 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3711.xml">
<!ENTITY I-D.ietf-sipping-overload-design SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-sipping-overload-design.xml">
<!ENTITY I-D.ietf-sipping-overload-reqs SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-sipping-overload-reqs.xml">
<!ENTITY I-D.poretsky-bmwg-sip-bench-meth SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.poretsky-bmwg-sip-bench-meth.xml">
]>

<?rfc toc="yes" ?>
<?rfc compact="yes" ?>
<?rfc sortrefs="no" ?>

<rfc docName="DOCNAME"
     ipr="full3978">

<front>
    <title abbrev="SIP Benchmarking Terminology">
       Terminology for Benchmarking Session Initiation Protocol (SIP)
       Networking Devices 
    </title>
<author initials="S." surname="Poretsky" fullname="Scott Poretsky">
    <organization>Allot Communications</organization>
    <address>
      <postal>
         <street>67 South Bedford Street, Suite 400</street>
         <city>Burlington</city>
         <region>MA</region>
         <code>08103</code>
         <country>USA</country>
      </postal>
      <phone>+1 508 309 2179</phone>
      <email>sporetsky@allot.com</email>
    </address>
    </author>

<author initials="V." surname="Gurbani" fullname="Vijay K. Gurbani">
    <organization>Bell Laboratories, Alcatel-Lucent</organization>
    <address>
      <postal>
         <street>2701 Lucent Lane</street>
         <street>Rm 9F-546</street>
         <city>Lisle</city>
         <region>IL</region>
         <code>60532</code>
         <country>USA</country>
      </postal>
      <phone>+1 630 224 0216</phone>
      <email>vkg@alcatel-lucent.com</email>
    </address>
    </author>

<author initials="C." surname="Davids" fullname="Carol Davids">
    <organization>Illinois Institute of Technology</organization>
    <address>
      <postal>
         <street>201 East Loop Road</street>
         <city>Wheaton</city>
         <region>IL</region>
         <code>60187</code>
         <country>USA</country>
      </postal>
      <email>davids@iit.edu</email>
    </address>
    </author>
	
    <date year="2008" />
	<area>Operations and Management Area</area>
    <workgroup>Benchmarking Methodology Working Group</workgroup>

<abstract>
<t>This document provides a terminology for benchmarking SIP performance
   in networking devices.  Terms are included for test components, test
   setup parameters, and performance benchmark metrics for black-box
   benchmarking of SIP networking devices.  The performance benchmark
   metrics are obtained for the SIP control plane and media plane.  The
   terms are intended for use in a companion methodology document for
   complete performance characterization of a device in a variety of
   conditions making it possible to compare performance of
   different devices.  It is critical to provide test setup parameters
   and a methodology document for SIP performance benchmarking because
   SIP allows a wide range of configuration and operational conditions
   that can influence performance benchmark measurements.  It is
   necessary to have terminology and methodology standards to ensure
   that reported benchmarks have consistent definition and were obtained
   following the same procedures.  Benchmarks can be applied to compare
   performance of a variety of SIP networking devices.</t>
</abstract>

</front>
<middle>

<section title="Terminology">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in BCP 14, RFC2119
   <xref target="RFC2119"/>.  RFC 2119 defines the use of these key 
   words to help make the intent of standards track documents as clear 
   as possible.  While this document uses these keywords, this document 
   is not a standards track document.  The term Throughput is defined in 
   RFC2544 <xref target="RFC2544"/>.</t>

<t>For the sake of clarity and continuity, this document adopts the
template for definitions set out in Section 2 of RFC 1242 
<xref target="RFC1242"/>.  Definitions are indexed and grouped together 
for ease of reference.</t>

<t>This document uses existing terminology defined in other BMWG
work.  Examples include, but are not limited to:
 <list style="empty">
  <t></t>
  <t>Device under test (DUT) (c.f., Section 3.1.1 RFC 2285 <xref
  target="RFC2285"/>).</t>
  <t>System under test (SUT) (c.f., Section 3.1.2, RFC 2285 <xref
  target="RFC2285"/>).</t>
 </list>
</t>

<t> Many commonly used SIP terms in this document are defined in 
RFC 3261 <xref target="RFC3261"/>.  For convenience the most important
of these are reproduced below.  Use of these terms in this document
is consistent with their corresponding definition in <xref target="RFC3261"/>.
 <list style="symbols">
  <t>Call Stateful: A proxy is call stateful if it retains state for
  a dialog from the initiating INVITE to the terminating BYE request.
  A call stateful proxy is always transaction stateful, but the
  converse is not necessarily true.</t>
  <t>Stateful Proxy: A logical entity that maintains the client and
  server transaction state machines defined by this specification
  during the processing of a request, also known as a transaction
  stateful proxy.  The behavior of a stateful proxy is further defined
  in Section 16.  A (transaction) stateful proxy is not the same as
  a call stateful proxy.</t>
  <t>Stateless Proxy: A logical entity that does not maintain the
  client or server transaction state machines defined in this
  specification when it processes requests.  A stateless proxy
  forwards every request it receives downstream and every
  response it receives upstream.</t>
  <t>Back-to-back User Agent: A back-to-back user agent (B2BUA) is a logical
  entity that receives a request and processes it as a user agent server
  (UAS).  In order to determine how the request should be answered,
  it acts as a user agent client (UAC) and generates requests.  Unlike a
  proxy server, it maintains dialog state and must participate in all
  requests sent on the dialogs it has established.  Since it is a
  concatenation of a UAC and a UAS, no explicit definitions are
  needed for its behavior.</t>
  <t>Loop: A request that arrives at a proxy, is forwarded, and later
  arrives back at the same proxy.  When it arrives the second time,
  its Request-URI is identical to the first time, and other
  header fields that affect proxy operation are unchanged, so that
  the proxy will make the same processing decision on the request
  it made the first time.  Looped requests are errors, and the 
  procedures for detecting them and handling them are described
  by the protocol.</t>
 </list> </t>
</section>

<section title="Introduction" anchor="sec-intro">

<t>Service Providers are now planning Voice Over IP (VoIP) and 
Multimedia network deployments using the IETF developed Session 
Initiation Protocol (SIP) <xref target="RFC3261"/>.  SIP is a 
signaling protocol originally intended to be used for the dynamic 
establishment, disconnection and modification of streams of media 
between end users. As it has evolved it has been adopted for use 
in a growing number of applications and features.  Many of these 
result in the creation of a media stream, but some do not. Instead, 
they create other services tailored to the end-users' immediate 
needs or preferences. The set of benchmarking terms provided 
in this document is intended for use with any SIP-enabled device 
performing SIP functions in the core of the network.  The performance 
of end-user devices is outside the scope of this document.</t>

<t>VoIP with SIP has led to the development of new networking 
devices including SIP Server, Session Border Controllers (SBC), 
Back-to-back user agents (B2BUA) and SIP-Aware Stateful 
Firewall.  The mix of voice and IP functions in these various 
devices has produced inconsistencies in vendor reported performance 
metrics and has caused confusion in the service provider 
community.  SIP allows a wide range of configuration and 
operational conditions that can influence performance benchmark 
measurements.  When the device under test terminates or relays 
both media and signaling, for example, it is important to be 
able to correlate a signaling measurement with the media plane 
measurements to determine the system performance. As devices and 
their functions proliferate, the need to have a consistent set of 
metrics to compare their performance becomes increasingly urgent. 
This document and its companion methodology document <xref target=
"I-D.poretsky-bmwg-sip-bench-meth"/> provide a set of black-box 
benchmarks for describing and comparing the performance of devices 
that incorporate the SIP User Agent Client and Server functions 
and that operate in the network's core.</t>

<t>The definition of SIP performance benchmarks necessarily includes
definitions of Test Setup Parameters and a test methodology.  These
enable the Tester to perform benchmarking tests on different
devices and to achieve comparable and repeatable results.  This
document provides a common set of well-defined terms for Test
Components, Test Setup Parameters, and Benchmarks.  All the benchmarks
defined are black-box measurements of the SIP Control (Signaling)
plane.  The Test Setup Parameters and Benchmarks defined in this
document are intended for use with the companion Methodology
document.  Benchmarks of internal DUT characteristics (also known 
as white-box benchmarks) such as Session Attempt Arrival Rate,
which is measured at the DUT, are described in <xref target="Appendix"/> 
to allow additional characterization of DUT behavior with different 
distribution models.</t>

<section title="Scope" anchor="scope">

<t>The scope of this work item is summarized as follows:
 <list style="symbols">
  <t>This terminology document describes SIP signaling (control-
  plane) performance benchmarks for black-box measurements of
  SIP networking devices.  Stress and debug scenarios are not
  addressed in this work item.</t>

  <t>The DUT must be an RFC 3261 capable network equipment.  This
  may be a Registrar, Redirect Server, Stateless Proxy or Stateful
  Proxy.  A DUT MAY also include a B2BUA, SBC, or P-CSCF
  functionality (this is referred to as the "Signaling Server".)
  The DUT MAY be a multi-port SIP-to-switched network gateway 
  implemented as a SIP UAC or UAS.</t>

  <t>The DUT MAY have an internal SIP Application Level Gateway (ALG),
  firewall, and/or a Network Address Translator (NAT).  This is
  referred to as the "SIP Aware Stateful Firewall."</t>

  <t>The DUT or SUT MUST NOT be end user equipment, such as personal
  digital assistant, a computer-based client, or a user terminal.</t>

  <t>The Tester acts as multiple "Emulated Agents" that initiate
  (or respond) to SIP messages as session endpoints and source
  (or receive) associated media for established connections.</t>

  <t>Control Signaling in presence of Media
   <list style="symbols">
    <t>The media performance is not benchmarked in this work item.</t>

    <t>It is RECOMMENDED that control plane benchmarks are performed
    with media present, but this is optional.</t>

    <t>The SIP INVITE requests MUST include the SDP body.</t>

    <t>The type of DUT dictates whether the associated media 
    streams traverse the DUT or SUT.  Both scenarios are within the
    scope of this work item.</t>

    <t>SIP is frequently used to create media streams; the control
    plane and media plane are treated as orthogonal to each other
    in this document.  While many devices support the creation of 
    media streams, benchmarks that measure the performance of these 
    streams are outside the scope of this document and its companion 
    methodology document <xref target="I-D.poretsky-bmwg-sip-bench-meth"/>.  
    Tests may be performed with or without the creation of media 
    streams.  The presence or absence of media streams must (or MUST) 
    be noted as a condition of the test as the performance of SIP 
    devices may vary accordingly.  Even if the media is used during 
    benchmarking, only the SIP performance will be benchmarked, not 
    the media performance or quality.</t>
   </list></t>

  <t>Both INVITE and non-INVITE scenarios (such as Instant Messages
  or IM) are addressed in this document.  However, benchmarking SIP
  presence is not a part of this work item.</t>

  <t>Different transport mechanisms -- such as UDP, TCP, SCTP, or
  TLS --  may be used; however, the specific transport mechanism
  MUST be noted as a condition of the test as the performance
  of SIP devices may vary accordingly.</t>

  <t>Looping and forking options are also considered since they
  impact processing at SIP proxies.</t>

  <t>REGISTER and INVITE requests may be challenged or remain
  unchallenged for authentication purpose as this may impact
  the performance benchmarks.  Any observable performance
  degradation due to authentication is considered in the interest
  to the SIP community.</t>

  <t>Re-INVITE requests are not considered in scope of this work
  item.</t>

  <t>Only session establishment is considered for the performance
  benchmarks.  Session disconnect is not considered in the scope
  of this work item.</t>
<!--
  <t>(primary reason behind this decision is that a session disconnect
  as represented by a SIP BYE request is an additional transaction
  that the DUT has to handle.)</t>
-->

  <t>SIP Overload <xref target="I-D.ietf-sipping-overload-reqs"/> 
  is within the scope of this work item, but considerations on how 
  to handle overload are deferred to work progressing in the SIPPING 
  working group <xref target="I-D.ietf-sipping-overload-design"/>.
  Vendors are, of course, free to implement their specific overload
  control behavior as the expected test outcome if it is different
  from the IETF recommendations.  However, such behavior MUST be
  documented and interpreted appropriately across multiple vendor
  implementations.  This will make it more meaningful to compare
  the performance of different SIP overload implementations.</t>

  <t>IMS-specific scenarios are not considered, but test cases can
  be applied with 3GPP-specific SIP signaling and the P-CSCF as a
  DUT.</t>
 </list></t>

</section> <!-- scope -->

<section title="Benchmarking Models" anchor="bench-models">

<t>This section shows the five models to be used when benchmarking 
SIP performance of a networking device. <xref target="topology-1"/>
shows a configuration in which the Tester acting as the Emulated agents 
is in loopback testing itself for the purpose of baselining its 
performance.</t>

<figure anchor="topology-1"
        title="Test topology 1 - Emulated agent (EA) baseline
              performance measurement">
 <artwork><![CDATA[

 +--------+      Signaling request       +--------+
 |        +----------------------------->|        |
 | Tester |                              | Tester |
 |   EA   |      Signaling response      |   EA   |
 |        |<-----------------------------+        |
 +--------+                              +--------+  

 ]]></artwork>
</figure>

<t><xref target="topology-2"/> shows the basic configuration 
for benchmarking the Registration of the DUT/SUT.</t>

<figure anchor="topology-2"
        title="Test topology 2 - Emulated agent (EA) registration to
              DUT/SUT">
 <artwork><![CDATA[

 +--------+      Registration            +--------+
 |        +----------------------------->|        |
 | Tester |                              |  DUT   |
 |   EA   |      Response                |        |
 |        |<-----------------------------+        |
 +--------+                              +--------+  

 ]]></artwork>
</figure>

<t><xref target="topology-3"/> shows that the Tester acts as the initiating 
and responding Emulated Agents as the DUT/SUT forwards Session Attempts.</t>

<figure anchor="topology-3"
        title="Test topology 3 - DUT/SUT performance benchmark for
               session establishment without media">
              DUT/SUT">
 <artwork><![CDATA[

  +--------+   Session   +--------+  Session    +--------+
  |        |   Attempt   |        |  Attempt    |        |
  |        |<------------+        |<------------+        |
  |        |             |        |             |        |
  |        |   Response  |        |  Response   |        |
  | Tester +------------>|  DUT   +------------>| Tester |
  |        |             |        |             |  (EA)  |
  |        |             |        |             |        |
  +--------+             +--------+             +--------+

 ]]></artwork>
</figure>

<t><xref target="topology-4"/> is used when performing those same 
benchmarks with Associated Media traversing the DUT/SUT.</t>

<figure anchor="topology-4"
        title="Test topology 4 - DUT/SUT performance benchmark for
               session establishment with media traversing the DUT">
              DUT/SUT">
 <artwork><![CDATA[

  +--------+   Session   +--------+  Session    +--------+
  |        |   Attempt   |        |  Attempt    |        |
  |        |<------------+        |<------------+        |
  |        |             |        |             |        |
  |        |   Response  |        |  Response   |        |
  | Tester +------------>|  DUT   +------------>| Tester |
  |        |             |        |             |  (EA)  |
  |        |   Media     |        |   Media     |        |
  |        |<===========>|        |<===========>|        |
  +--------+             +--------+             +--------+

 ]]></artwork>
</figure>

<t><xref target="topology-5"/> is to be used when performing those same 
benchmarks with Associated Media, but the media does not traverse 
the DUT/SUT.  Again, the benchmarking of the media is not within 
the scope of this work item.  The SIP control signaling is benchmarked 
in the presence of Associated Media to determine if the SDP body 
of the signaling and the handling of media impacts the performance of 
the DUT/SUT.</t>

<figure anchor="topology-5"
        title="Test topology 5 - DUT/SUT performance benchmark for
               session establishment with media external to the DUT">
              DUT/SUT">
 <artwork><![CDATA[

  +--------+   Session   +--------+  Session    +--------+
  |        |   Attempt   |        |  Attempt    |        |
  |        |<------------+        |<------------+        |
  |        |             |        |             |        |
  |        |   Response  |        |  Response   |        |
  | Tester +------------>|  DUT   +------------>| Tester |
  |        |             |        |             |  (EA)  |
  |        |             |        |             |        |
  +--------+             +--------+             +--------+
      /|\                                           /|\
       |                    Media                    |
       +=============================================+

 ]]></artwork>
</figure>

<t><xref target="basic-topology"/> illustrates the SIP signaling for 
an Established Session.  The Tester acts as the Emulated Agent(s) 
and initiates a Session Attempt with the DUT/SUT.  When the Emulated 
Agent (EA) receives a 200 OK from the DUT/SUT that session is 
considered to be an Established Session.  Sessions can be one of two 
type: Invite-Initiated Session (IS) or Non-Invite Initiated Session (NS).  
Failure for the DUT/SUT to successfully respond within the Establishment 
Threshold Time is considered a Session Attempt Failure.  SIP Invite 
messages MUST include the SDP body to specify the Associated Media.  
Use of Associated Media, to be sourced from the EA, is optional.  
When Associated Media is used, it may traverse the DUT/SUT depending 
upon the type of DUT/SUT.  The Associated Media is shown in
<xref target="basic-topology"/> as "Media" connected to media ports 
M1 and M2 on the EA.  After the EA sends a BYE, the session disconnects.  
Performance test cases for session disconnects are not considered in 
this work item (the BYE request is shown for completeness.)</t>

<figure anchor="basic-topology"
        title="Basic SIP test topology">

<artwork><![CDATA[
  
        EA           DUT/SUT   M1       M2
        |               |       |       |
        |    INVITE     |       |       |
--------+-------------->|       |       |
        |               |       |       |
Attempting              |       |       |
        |    200 OK     |       |       |
--------|<--------------|       |       |
        |               |       |       |
        |               |       |       |
        |               |       | Media |
Established             |       |<=====>|
        |               |       |       |
        |      BYE      |       |       |
--------+-------------->|       |       |
        |               |       |       |
Disconnecting           |       |       |
        |   200 OK      |       |       |
--------|<--------------|       |       |
        |               |       |       |

]]></artwork></figure>


</section> <!-- bench-models -->

</section> <!-- Introduction -->

<section title="Term Definitions" anchor="term-def">

<section title="Protocol Components" anchor="protocol-components">

<section title="Session" anchor="session">

 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>The combination of signaling and media messages and processes 
   that enable two or more participants to communicate.</t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t>SIP messages in the signaling plane can be used to create and 
      manage applications for one or more end users. SIP is often 
      used to create and manage media streams in support of applications.
      A session always has a signaling component and may have a media
      component.  Therefore, a Session may be defined as signaling only
      or a combination of signaling and media (c.f. Associated Media,
      see <xref target="associated-media-stream"/>).  SIP includes 
      definitions of a Call-ID, a dialogue and a transaction that support 
      this application.  A growing number of usages and applications do not 
      require the creation of associated media.  The first such usage was 
      the REGISTER. Applications that use the MESSAGE and SUBSCRIBE/NOTIFY 
      methods also do not require SIP to manage media streams. The 
      terminology Invite-initiated Session (IS) and Non-invite 
      initiated Session (NS) are used to distinguish between these 
      different usages.</t>
<t></t>          

<t>A Session in the context of this document, is considered to be a 
vector with three components:</t>

<t>
<list style="numbers">
 <t>A component in the signaling plane (SIP messages), sess.sig;</t>
 <t>A media component in the media plane (RTP and SRTP streams for 
    example), sess.med (which may be null); </t>
 <t>A control component in the media plane (RTCP messages for example), 
    sess.medc (which may be null).</t>
</list></t>

<t></t>

<t>An IS is expected to have non-null sess.sig and sess.med 
components. The use of control protocols in the media component is media 
dependent, thus the expected presence or absence of sess.medc is media 
dependent and test-case dependent.   An NS is expected to have a 
non-null sess.sig component, but null sess.med and sess.medc components.</t>

<t></t>

<t>Packets in the Signaling Plane and Media Plane will be handled by 
different processes within the	DUT.  They will take different paths 
within a SUT.  These different processes and paths may produce variations 
in performance.  The terminology and benchmarks defined in this document 
and the methodology for their use are designed to enable us to compare 
performance of the DUT/SUT with reference to the type of SIP-supported 
application it is handling.</t>

<t></t>

<t> Note that one or more sessions can simultaneously exist between 
    any participants.  This can be the case, for example, when the
    EA sets up both an IM and a voice call through the DUT/SUT.
    These sessions are represented as an array session[x]. </t> 
<t></t>		  
<t> Sessions will be represented as a vector array with three 
    components, as follows: </t>
<t> session-> </t>

<t> session[x].sig,    the signaling component</t>
<t> session[x].medc,   the media control component (e.g. RTCP)</t>
<t> session[x].med[y], an array of associated media streams (e.g. RTP, SRTP, 
                       RTSP, MSRP). This media component may consist of 
                       zero or more media streams. </t>
<t><xref target="shadow"/> models the vectors of the session.</t>
  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>N/A.</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
    <t>Media Plane</t>
    <t>Signaling Plane</t>
    <t>Associated Media</t>
    <t>Invite-initiated Session (IS)</t>
    <t>Non-invite-initiated Session (NS)</t>
 </list>

<figure anchor="shadow"
        title="Application or session components">

<artwork>
<![CDATA[
          
                |\
                |
                |   \
        sess.sig|
                |     \
                |
                |       \
                |         o
                |        /
                |       / |
                |      /   
                |     /   |
                |    /    
                |   /     |
                |  /      
                | /       |   sess.medc
                |/_____________________ 
               /               /
              /           |
             /               /
 sess.med   /             |
           /_ _ _ _ _ _ _ _/
          /
         /
        /
       / 
]]>

</artwork></figure>

</section>

<section title="Signaling Plane" anchor="signaling-plane">

<list style="hanging">
  <t hangText="Definition:"></t>
   <t>The control plane in which SIP messages <xref target="RFC3261"/> are 
      exchanged between SIP Agents <xref target="RFC3261"/> to establish a 
      connection for media exchange.</t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t>SIP messages are used to establish sessions 
      in several ways: directly between two User Agents 
      <xref target="RFC3261"/>, through a Proxy Server 
      <xref target="RFC3261"/>, or through a series of Proxy Servers.  
      The Signaling Plane MUST include the Session Description Protocol 
      (SDP).</t>
    <t>The Signaling Plane for a single Session is represented by 
       session.sig.</t>
  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>N/A.</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
   <t> Media Plane</t>
   <t>Emulated Agents</t>
 </list>

</section> <!-- signaling plane -->

<section title="Media Plane" anchor="media-plane">

 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>The data plane in which one or more media streams and their associated 
    media control protocols are exchanged after a media connection has been 
    created by the exchange of signaling messages in the Signaling  Plane.</t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t>Media may also be known as the the "payload" or "bearer 
         channel".  The Media Plane MUST include the media control 
         protocol, if one is used, and the media stream(s).  Media 
         is analogous Data.  Example media are audio, video, 
         whiteboard, and instant messaging service.  The media 
         stream is described in the SDP of the Signaling Plane.</t>
 <t> The media for a single Session is represented by 
         session.med.  The media control protocol is represented
         by session.medc. </t>
  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>N/A.</t>
   <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
   <t>Signaling Plane</t>
 </list>

</section> <!-- Media Plane -->

<section title="Associated Media" anchor="associated-media-stream">

 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>Media that corresponds to an 'm' line in the SDP 
      payload of the Signaling Plane.</t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t>Any media protocol MAY be used. </t>
   <t> For any session's signaling component, represented as 
       session.sig, there may be one or multiple associated 
       media streams which are represented be a vector array 
       session.med[y], which is referred to as the Associated
       Media.</t>
  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>N/A.</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  
   </list>
</section> <!-- Associated Media stream --> 
 
<section title="Overload" anchor="sec-overload">

<list style="hanging">
 <t hangText="Definition:"></t>
 <t>Overload is defined as the state where a SIP server does not
 have sufficient resources to process all incoming SIP messages
 <xref target="I-D.ietf-sipping-overload-reqs"/>.</t>
 <t></t>
 <t hangText="Discussion:"></t>
  <t>Under such conditions, all or a percentage of Session Attempts
  will fail due to lack of resources.  SIP server resources may
  include CPU processing capacity, network bandwidth, input/output
  queues, or disk resources.  Any combination of resources may be
  fully utilized when a SIP server (the DUT/SUT) is in the overload
  condition.  For proxy-only type of devices, overload issues will be
  dominated by the number of signaling messages they can handle in a 
  unit time before their throughput starts to drop.</t>
  <t>For UA-type of network devices (e.g., gateways), overload must 
  necessarily include both the signaling traffic and media streams.  
  It is expected that the amount of signaling that a UA can handle 
  is inversely proportional to the amount of media streams currently 
  handled by that UA.</t>
 <t></t>
 <t hangText="Measurement Units:"></t>
  <t>N/A.</t>
 <t></t>
 <t hangText="Issues:"></t>
  <t>The issue of overload in SIP networks is currently a topic of
  discussion in the SIPPING WG.  The normal response to an overload
  stimulus -- sending a 503 response -- is considered inadequate.
  The exact manner in how to handle overload is not determined yet
  and as solutions are engineered, this draft will be updated
  accordingly (Note: this draft now has a dependency on the overload 
  work in SIPPING).</t>
</list>

</section> <!-- sec-overload -->


<section title="Session Attempt" anchor="session-attempt">

 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>A SIP Session for which the Emulated Agent has sent the SIP 
   INVITE or SUBSCRIBE NOTIFY and has not yet received  a message 
   response from the DUT/SUT.</t>
   <t></t>
  <t hangText="Discussion:"></t>
   <t>The attempted session may be an IS or an NS.  The Session
   Attempt includes SIP INVITEs and SUBSCRIBE/NOTIFY messages.
   It also includes all INVITEs that are rejected for lack of
   authentication information.</t>
   <t></t>
  <t hangText="Measurement Units:"></t>
   <t>N/A.</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
   <t>Session</t>
   <t>Session Attempt Rate</t>
   <t>Invite-initiated Session</t>
   <t>Non-Invite initiated Session</t>
 </list>

</section> <!-- session attempting state -->
 
<section title="Established Session">

 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>A SIP session for which the Emulated Agent acting as the UE/UA has 
   received a 200OK message from the DUT/SUT.</t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t>An Established Session MAY be type INVITE-Session (IS) or 
      Non-INVITE Session (NS).</t>
  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>N/A.</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
  <t>Invite-initiated Session</t>
  <t>Session Attempting State</t>
  <t>Session Disconnecting State   </t>
 </list>

</section> <!-- session established state -->

<section title="Invite-initiated Session (IS)" anchor="IS">

<list style="hanging">
  <t hangText="Definition:"></t>
   <t>A Session that is created by an exchange of messages in the
   Signaling Plane, the first of which is a SIP INVITE request.</t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t>An IS is identified by the Call-ID, To-tag, and From-tag of the
   SIP message that establishes the session.  These three fields are used 
   to identify a SIP Dialog (RFC3261 <xref target="RFC3261"/>).  An IS 
   MAY have Associated Media description in the SDP body.  An IS MAY 
   have multiple Associated Media streams.  The inclusion of media is test 
   case dependent.  An IS is successfully established if the following two 
   conditions are met:
    <list style="numbers">
     <t>Sess.sig is established by the end of Establishment
     Threshold Time (c.f. <xref target="ET"/>), and</t>
     <t>The media session described in the SDP body of the signaling
     message is present.</t>
    </list></t>
  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>N/A.</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
  <t>Session</t>
  <t>Non-Invite initiated Session</t>
  <t>Associated Media</t>
</list>

</section> <!-- IS -->

<section title="Non-INVITE-initiated Session (NS)" 
anchor="non-invite initiated session">

 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>A session that is created by an exchange of messages in 
           the Signaling Plane that does not include an initial SIP 
           INVITE message.</t>
  <t></t>
  <t hangText="Discussion:"></t>
  <t>An NS is successfully established if the Session Attempt via a non-
  INVITE request results in the EA receiving a 2xx or 3xx reply from
  the DUT/SUT before the expiration of the Establishment Threshold
  timer (c.f., <xref target="ET"/>).  An example of a NS is a session
  created by the SUBSCRIBE request.</t>

  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>N/A.</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
  <t>Session</t>
  <t>Invite-initiated Session</t>
 </list>

</section> <!-- non-invite initiated session -->

<section title="Session Attempt Failure" anchor="IS-fail">

 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>A session attempt that does not result in an Established
   Session.</t>
  <t></t>
  <t hangText="Discussion:"></t>
  <t>The session attempt failure may be indicated by the following
  observations at the Emulated Agent:
   <list style="numbers">
    <t>Receipt of a SIP 4xx, 5xx, or 6xx class response to a Session 
    Attempt.</t>
    <t>The lack of any received SIP response to a Session Attempt.</t>
   </list></t>
  <t></t>
  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>N/A.</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
   <t>Session Attempt</t>
 </list>

</section> <!-- IS-Fail -->

</section> <!-- protocol components -->

<section title="Test Components" anchor="test-components">

<section title="Emulated Agent" anchor="emulated-agent">

 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>A device in test topology that initiates/responds to SIP 
    messages as one or more session endpoints and, wherever
    applicable, sources/receives Associated Media for Established 
    Sessions.</t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t>The Emulated Agent functions in the signaling and media
   planes.  The Tester may act as multiple Emulated Agents.</t>
  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>N/A</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
  <t>Media Plane</t>
  <t>Signaling Plane</t>
  <t>Established Session</t>
  <t>Associated Media</t>
 </list>
 </section> <!-- emulated agent -->
 
 <section title="Signaling Server" anchor="signaling-server">
 
 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>Device in test topology that acts as a proxy on the 
    signaling plane between Emulated Agents.  This device is either 
    a DUT or component of a SUT.</t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t>The DUT MUST be a RFC 3261 capable network equipment such as
   a Registrar, Redirect Server, User Agent Server, Stateless Proxy,
   or Stateful Proxy.  A DUT MAY also include B2BUA, SBC or P-CSCF
   functionality.</t>
  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>NA</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
    <t>Signaling Plane</t>
    
	 </list>
</section> <!-- signaling server-->

<section title="SIP-Aware Stateful Firewall" 
         anchor="SIP-aware stateful firewall ">

 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>Device in test topology that provides Denial-of-Service
   (DoS) Protection to the Signaling and Media Planes for 
   the Emulated Agents and Signaling Server</t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t>The SIP-Aware Stateful Firewall MAY be an internal 
   component or function of the Session Server.  The 
   SIP-Aware Stateful Firewall MAY be a standalone device.  If it is a 
   standalone device it MUST be paired with a Signaling Server.  
   If it is a standalone device it MUST be benchmarked 
   as a SUT. SIP-Aware Stateful Firewalls MAY include 
   Network Address Translation (NAT) functionality. 
   Ideally, the inclusion of the SIP-Aware Stateful Firewall
   as a SUT has no degradation to the measured performance
   benchmarks. </t>
  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>N/A</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
  </list>
</section> <!-- SIP-aware stateful firewall -->

<section title="SIP Transport Protocol" anchor="SIP-transport protocol">

 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>The protocol used for transport of the Signaling Plane 
           messages. </t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t>Performance benchmarks may vary for the same SIP networking 
           device depending upon whether TCP, UDP, TLS, SCTP, or another 
           transport layer protocol is used.  For this reason it MAY
           be necessary to measure the SIP Performance Benchmarks using 
           these various transport protocols.  Performance Benchmarks 
           MUST report the SIP Transport Protocol used to obtain the 
           benchmark results.</t>
  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>TCP,UDP, SCTP, TLS over TCP, TLS over UDP, or TLS over SCTP</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
    
 </list>

</section> <!-- SIP transport protocol -->

</section> <!-- Test components -->

<section title="Test Setup Parameters" anchor="test-setup parameters">

<section title="Session Attempt Rate" anchor="session-attempt-rate">

 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>Configuration of the Emulated Agent for the number of sessions 
   that the Emulated Agent attempts to establish with the DUT/SUT over 
   a specified time interval.</t>

  <t></t>
  <t hangText="Discussion:"></t>
   <t>The Session Attempt Rate can cause variation in 
   performance benchmark measurements.  Since this is 
   the number of sessions configured on the Tester, some 
   sessions may not be successfully established on the 
   DUT.  A session may be either an IS or an NS.</t>
  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>Session attempts per second</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
  <t>Session</t>
  <t>Session Attempt</t>
 </list>

</section> <!-- Session attempt rate -->

 <section title="IS Media Attempt Rate" anchor="is-media-rate">

 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>Configuration on the Emulated Agent for number of ISs with
   Associated Media to be established at the DUT per continuous one-
   second time intervals.</t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t>The Media Session Attempt Rate can cause variation in performance 
    benchmark measurements.  This is the number of sessions configured on 
    the Tester. Some attempts may not result in successful sessions 
    established on the DUT.  Media Sessions MUST be associated with an IS.  
    By including this definition we leave open the possibility that there 
    may be an IS that does not include a media description. In this 
    document, however, we will assume that there is a one to one 
    correspondence between IS session attempts and Media Session attempts.</t>
  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>session attempts per second (saps)</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
   <t>IS</t>  
  </list>

</section> <!-- media session attempt rate -->

<section title="Establishment Threshold Time" anchor="ET">

 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>Configuration of the Emulated Agent for representing the amount 
   of time that an Emulated Agent will wait before declaring a 
   Session Attempt Failure.</t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t>This time duration is test dependent.</t>
   <t>It is RECOMMENDED that the Establishment Threshold Time value
   be set to Timer B (for ISs) or Timer F (for NSs) as specified
   in RFC 3261, Table 4 <xref target="RFC3261"/>.  Following the
   default value of T1 (500ms) specified in the table and a
   constant multiplier of 64 gives a value of 32 seconds for
   this timer (i.e., 500ms * 64 = 32s).</t>
  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>seconds</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
   <t>session establishment failure</t>

 </list>

</section> <!-- Establishment Threshold -->

<section title="Media Packet Size" anchor="media-packet size">

 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>Configuration on the Emulated Agent for a fixed size of 
           packets used for media streams.
</t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t>For a single benchmark test, all sessions use the 
           same size packet for media streams.  The size of packets can 
           cause variation in performance benchmark measurements.  
         </t>
  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>bytes</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
   
 </list>

</section> <!-- media packet size -->

<section title="Media Offered Load" anchor="mol">

 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>Configuration of the Emulated Agent for the constant rate of 
   Associated Media traffic offered by the Emulated Agent to the 
   DUT/SUT for one or more Established Sessions of type IS.</t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t>The Media Offered Load to be used for a test MUST be reported
   with three components:
    <list style="numbers">
     <t>per Associated Media stream;</t>
     <t>per IS; </t>
     <t>aggregate.</t>
    </list>
   For a single benchmark test, all sessions use the same Media Offered 
   Load per Media Stream.  There may be multiple Associated Media 
   streams per IS.  The aggregate is the sum of all Associated Media
   for all IS.</t>
  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>packets per second (pps)</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
  <t>Established Session</t>
  <t>Invite Initiated Session</t>
  <t>Associated Media</t>
</list>

</section> <!-- Media Offered Load, per Media Stream -->

<section title="Media Session Hold Time" anchor="media-session hold time">

 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>Configuration of the Emulated Agent for the amount of time 
   measured at the Emulated Agent for the Associated Media for 
   an Established Session of type IS media to flow between the
   Emulated Agent and the DUT/SUT.</t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t>The Associated Media streams may be bi-directional or uni-
   directional as indicated in the test methodology.</t>    
   <t></t>
  <t hangText="Measurement Units:"></t>
   <t>seconds</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
   <t>Associated Media</t>
   <t>Established Session</t>
   <t>Invite-initiated Session (IS)</t>
 </list>

</section> <!-- Media-session hold time -->

<section title="Loop Detection Option" anchor="Loop">

 <list style="hanging">
  <t hangText="Definition:"></t>
  <t>An option that causes a Proxy to check for loops in 
  the routing of a SIP request before forwarding the request. </t>
  <t></t>
  <t hangText="Discussion:"></t>
  <t> This is an optional process that a SIP proxy may employ; the process
   is described under Proxy Behavior in RFC 3261 in Section 16.3 Request 
   Validation and that section also contains suggestions as to how the 
   option could be implemented. Any procedure to detect loops will use 
   processor cycles and hence could impact the performance of a proxy.</t>  
  <t></t>    
  <t hangText="Measurement Units:"></t>
  <t>NA</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
 </list>

</section> <!-- Loop -->

<section title="Forking Option" anchor="Forking">

 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>An option that enables a Proxy to fork requests to more than one 
    destination.</t>
  <t></t>
  <t hangText="Discussion:"></t>

   <t>This is an process that a SIP proxy may employ to find the UAS.
   The option is described under Proxy Behavior in RFC 3261 in Section 
   16.1. A proxy that uses forking must maintain state information and 
   this will use processor cycles and memory. Thus the use of this 
   option could impact the performance of a proxy and different 
   implementations could produce different impacts.</t>

   <t>SIP supports serial or parallel forking.  When performing a 
   test, the type of forking mode must be indicated.</t>

  <t></t>
  <t hangText="Measurement Units:"></t>

  <t>The number of locations the proxy is asked to fork to.
  As the locations are varied, the time it takes to return
  a final response is measured (in seconds).</t>
  <t>Type of forking used: parallel or serial.</t>
  
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
 </list>

</section> <!-- Forking Option -->

</section>

<section title="Benchmarks" anchor="benchmarks">

<section title="Registration Rate" anchor="maximum-registration-rate">

<list style="hanging">
  <t hangText="Definition:"></t>
   <t>The maximum number of registrations that can be successfully 
           completed by the DUT/SUT in a given time period. 
 
</t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t>This benchmark is obtained with zero failure in which 100% of the 
    registrations attempted by the Emulated Agent are successfully completed 
    by the DUT/SUT.  The maximum value is obtained by testing to failure. 
    This means that the registration rate provisioned on the EA is raised 
    progressively until a registration attempt failure is observed.</t>
  <t></t>         
  <t hangText="Measurement Units:"></t>
   <t>registrations per second (rps)</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
 </list>

</section> <!-- registration rate -->

<section title="Session Establishment Rate" 
         anchor="session-rate">

<list style="hanging">
 <t hangText="Definition:"></t>
  <t>The maximum average rate at which the DUT/SUT can successfully
  establish sessions.</t> 
  <t></t>
  <t hangText="Discussion:"></t>
   <t>This is the average number of sessions successfully established
   in continuous one-second intervals with prior sessions remaining
   active.  The session establishment rate is calculated using the
   following equation (n = number of samples):</t>

    <artwork><![CDATA[
         n
         --
         \ rate at time i
         /          
         --
       i = 1
     ---------------------
               (n)
    ]]></artwork>

  <t>This benchmark is obtained with zero failure in which 100% of the 
   sessions introduced by the Emulated Agent are successfully established.  
   The maximum value is obtained by testing to failure.  This means that 
   the session rate provisioned on the EA is raised progressively until a 
   Session Attempt Failure is observed. Sessions may be IS or NS or a
   a mix of both and will be defined in the particular test.</t>
   <t></t>         
  <t hangText="Measurement Units:"></t>
   <t>sessions per second (sps)</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
  <t>Invite-initiated Sessions</t>
  <t>Non-INVITE initiated Sessions</t>
  <t> Session Attempt Rate </t>
 </list>

</section> <!-- maximum session establishment rate -->
 
<section title="Session Capacity" anchor="session-capacity">

<list style="hanging">
  <t hangText="Definition:"></t>
   <t>The maximum number of Established Sessions that can exist 
   simultaneously on the DUT/SUT until Session Attempt Failure occurs.</t>
   <t></t>
  <t hangText="Discussion:"></t>
   <t>When benchmarking Session Capacity it is assumed that sessions are
   permanently established (i.e., they remain active for the duration of
   the test.)  In order to make this measurement, the Session Duration 
   MUST be set to infinity so that sessions remain established for the 
   duration of the test.  The Session Capacity must be reported with the 
   Session Attempt Rate used to reach the maximum.  Since Session Attempt
   Rate is a zero-loss measurement, there must be zero failures to achieve 
   the Session Capacity.  The maximum is indicated at the Emulated Agent
   by arrival of a SIP 4xx, 5xx, or 6xx response from the DUT/SUT.
   Sessions may be IS or NS.</t>
   <t></t>
  <t hangText="Measurement Units:"></t>
   <t>sessions</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
  <t>Established Session</t>
  <t>Session Attempt Rate</t>
  <t>Session Attempt Failure</t>
  
 </list>

</section> <!-- session capacity -->

<section title="Session Overload Capacity" anchor="soc">

<list style="hanging">
 <t hangText="Definition:"></t>
 <t>The maximum number of Established Sessions that can exist 
 simultaneously on the DUT/SUT until it stops responding to Session
 Attempts.</t>
 <t></t>
 <t hangText="Discussion:"></t>
  <t>Session Overload Capacity is measured after the Session Capacity 
  is measured.  The Session Overload Capacity is greater than or equal 
  to the Session Capacity.  When benchmarking Session Overload Capacity, 
  continue to offer Session Attempts to the DUT/SUT after the first 
  Session Attempt Failure occurs and measure Established Sessions until 
  no there is no SIP message response for the duration of the 
  Establishment Threshold.  It is worth noting that the Session 
  Establishment Performance is expected to decrease after the first 
  Session Attempt Failure occurs.</t>
  <t></t>
  <t hangText="Units:"></t>
   <t>Sessions</t>
   <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
   <t></t>
  <t hangText="See Also:"></t>
   <t>Overload</t>
   <t>Session Capacity</t>
   <t>Session Attempt Failure</t>
</list>

</section> <!-- soc -->

<section title="Session Establishment Performance"
 anchor="session-establishment performance">

<list style="hanging">
  <t hangText="Definition:"></t>
   <t>The percent of Session Attempts that become Established Sessions 
   over the duration of a benchmarking test.</t> 
  <t></t>
  <t hangText="Discussion:"></t>
   <t> Session Establishment Performance is a benchmark to indicate 
   session establishment success for the duration of a test.  
   The duration for measuring this benchmark is to be specified 
   in the Methodology.  The Session Duration SHOULD be configured 
   to infinity so that sessions remain established for the entire
   test duration.</t>
   <t>Session Establishment Performance is calculated as shown
   in the following equation:</t>

   <artwork><![CDATA[
      Session Establishment = Total Established Sessions
      Performance             --------------------------
                              Total Session Attempts
   ]]></artwork>

   <t>Session Establishment Performance may be monitored real-time
   during a benchmarking test.  However, the reporting benchmark
   MUST be based on the total measurements for the test duration.</t>
  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>Percent (%)</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
  <t>Established Session</t>
  <t>Session Attempt</t>
  
 </list>

</section> <!-- session establishment performance -->

<section title="Session Attempt Delay "
 anchor="session-attempt delay">

<list style="hanging">
  <t hangText="Definition:"></t>
   <t>The average time measured at the Emulated Agent for a Session Attempt
   to result in an Established Session.</t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t>Time is measured from when the EA sends the first INVITE for the 
    call-ID in the case of an IS.  Time is measured from when the EA
    sends the first non-INVITE message in the case of an NS.  
    Session Attempt Delay MUST be measured for every established session 
    to calculate the average.  Session Attempt Delay MUST be measured at the 
    Maximum Session Establishment Rate.</t>
  <t></t>         
  <t hangText="Measurement Units:"></t>
   <t>Seconds</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
  <t>Maximum Session Establishment Rate </t>
    
 </list>

</section> <!-- session attempt delay -->

<section title="Standing Sessions"  anchor="Standing Sessions">

<list style="hanging">
  <t hangText="Definition:"></t>
   <t>The number of Sessions 
           currently established on the DUT/SUT at any instant.
 
  </t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t> The number of Standing Sessions is influenced by 
           the Session Duration and the Session Attempt Rate.  
           Benchmarks MUST be reported 
           with the maximum and average Standing Sessions for 
           the DUT/SUT.  In order to determine the maximum and 
           average Standing Sessions on the DUT/SUT for the 
           duration of the test it is necessary to make 
           periodic measurements of the number of Standing 
           Sessions on the DUT/SUT.  The recommended value 
           for the measurement period is 1 second.
        </t>
  <t></t>         
  <t hangText="Measurement Units:"></t>
   <t>Number of sessions</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
  
  <t>Session Duration</t>
  <t>Session Rate </t>
  <t>Session Attempt Rate </t>
    
 </list>

</section> <!-- standing sessions -->

<section title="IM Rate" anchor="im-rate">

 <list style="hanging">
  <t hangText="Definition:"></t>
   <t>Maximum number of IM messages completed by the DUT/SUT.</t>
  <t></t>
  <t hangText="Discussion:"></t>
   <t>For a UAS, the definition of success is the receipt of an IM 
   request and the subsequent sending of a final response.</t>
   <t>For a UAC, the definition of success is the sending of an IM 
   request and the receipt of a final response to it.  For a proxy, 
   the definition of success is as follows:</t>
   <list style="letters">
      <t>the number of IM requests it receives from the upstream
      client MUST be equal to the number of IM requests it
      sent to the downstream server; and</t>
      <t>the number of IM responses it receives from the
      downstream server MUST be equal to the number of IM
      requests sent to the downstream server; and</t>
      <t>the number of IM responses it sends to the upstream
      client MUST be equal to the number of IM requests it
      received from the upstream client.</t>
   </list>
  <t></t>
  <t hangText="Measurement Units:"></t>
   <t>IM messages per second</t>
  <t></t>
  <t hangText="Issues:"></t>
   <t>None.</t>
  <t></t>
  <t hangText="See Also:"></t>
 </list>

</section> <!-- IM Rate -->

</section> <!-- gets you up to 3.5 -->
</section> <!-- gets you up to 4 --> 

<section title="IANA Considerations" anchor="iana">

<t>This document requires no IANA considerations.</t>

</section><!-- gets you up to 5 -->

<section title="Security Considerations" anchor="security">
<t> Documents of this type do not directly affect the security of
   Internet or corporate networks as long as benchmarking is not 
   performed on devices or systems connected to production
   networks.  Security threats and how to counter these in SIP 
   and the media layer is discussed in RFC3261 <xref target="RFC3261"/>, 
   RFC 3550 <xref target="RFC3550"/>, RFC3711 <xref target="RFC3711"/> 
   and various other drafts.  This document attempts to
   formalize a set of common terminology for benchmarking SIP
   networks. </t>
   
 </section> <!-- gets you up to 6 -->
 
<section title="Acknowledgments" anchor="acks">

<t>The authors would like to thank Keith Drage, Cullen Jennings, Daryl
Malas, Al Morton, and Henning Schulzrinne for invaluable contributions to 
this document.</t>

</section>

</middle>

<back>
<references title="Normative References">
	  
   &rfc2119;
   &rfc2544;
   &rfc3261;
   &I-D.poretsky-bmwg-sip-bench-meth;

</references>

<references title="Informational References">

   &rfc2285;
   &rfc1242;
   &rfc3550;
   &rfc3711;
   &I-D.ietf-sipping-overload-design;
   &I-D.ietf-sipping-overload-reqs;

</references>

<section title="White Box Benchmarking Terminology"
         anchor="Appendix">

<t>Session Attempt Arrival Rate</t>

<t></t>

<list style="hanging">
<t hangText="Definition:"></t>
 <t>The number of Session Attempts received at the DUT/SUT over a
 specified time period.</t>
 <t></t>

<t hangText="Discussion:"></t>
 <t>Sessions Attempts are indicated by the arrival of SIP INVITES OR    
 SUBSCRIBE NOTIFY messages.  Session Attempts Arrival Rate distribution 
 can be any model selected by the user of this document.  It is   
 important when comparing benchmarks of different devices that same 
 distribution model was used.  Common distributions are expected to be 
 Uniform and Poisson.</t>
 <t></t>
 <t></t>
<t hangText="Measurement Units:"></t>
 <t>Session attempts/sec</t>
 <t></t>

<t hangText="Issues:"></t>
 <t>None.</t>
 <t></t>

<t hangText="See Also:"></t>
 <t>Session Attempt</t>

</list>
</section> <!-- Appendix -->

</back>
</rfc>

<!--  LocalWords:  xml UTF DOCTYPE rfc ietf reqs toc sortrefs docName DOCNAME
 -->
<!--  LocalWords:  ipr abbrev Poretsky fullname Porersky Gurbani Vijay Alcatel
 -->
<!--  LocalWords:  Rm Davids workgroup BCP xref BMWG DUT SUT Stateful stateful
 -->
<!--  LocalWords:  BUA UAS IP VoIP SBC blah vkg blackbox CSCF ALG benchmarked
 -->
<!--  LocalWords:  SDP IM UDP SCTP TLS IMS GPP loopback EA CDATA NS sourced def
 -->
<!--  LocalWords:  hangText sess sig RTP SRTP RTCP medc RTSP MSRP whiteboard UA
 -->
<!--  LocalWords:  WG INVITEs UE NA DoS standalone Firewalls ISs NSs ms mol pps
 -->
<!--  LocalWords:  bi uni rps sps soc Teardown teardowns msec deisconnect im
 -->
<!--  LocalWords:  IANA iana acks Drage Cullen Daryl Malas Schulzrinne
 -->
