ANSI/TIA-921-B Network Model for Evaluating Multimedia Transmission Performance Over the Internet Protocol Table of Contents Foreword ..................................................................................................................................iv Introduction .............................................................................................................................. v 1 Scope ................................................................................................................................. 1 2 Informative References .................................................................................................... 2 3 Definitions and Abbreviations ......................................................................................... 3 3.1 Definitions .................................................................................................................... 3 3.2 4 5 Description of the Model .................................................................................................. 5 4.1 Model Overview ........................................................................................................... 5 4.2 Network Topology ........................................................................................................ 6 4.3 Models of Network Elements ....................................................................................... 7 4.4 Interfering Stream Files ................................................................................................ 8 4.5 Simulation Inputs ........................................................................................................10 4.6 Simulation Outputs......................................................................................................11 4.7 Packet Scheduling Algorithm ......................................................................................14 IP Network Impairment Level Requirements ..................................................................15 5.1 Service Test Profiles ...................................................................................................15 5.2 6 Abbreviations ............................................................................................................... 4 Impairment Combination Standard Test Cases ...........................................................16 Using the Network Model ................................................................................................22 6.1 Using the Simulator.....................................................................................................22 6.2 Using a Real-Time Hardware Emulator .......................................................................22 6.3 Hardware Emulator Considerations ............................................................................23 6.4 Advanced Uses of the Network Model ........................................................................24 Annex A (Normative) – Description of Discrete Event Simulator ...............................25 A.1 Simulator Overview .....................................................................................................25 A.2 Directory Structure ......................................................................................................25 A.3 Building the simulator ..................................................................................................26 ANSI/TIA-921-B A.4 Base CORE2LAN model .............................................................................................27 A.5 Simulator Input Data ...................................................................................................27 A.6 Running the simulation with convenience scripts ........................................................34 A.7 Simulator Output .........................................................................................................36 A.8 Plotting Results ...........................................................................................................37 A.9 Simulator Internal Conventions ...................................................................................38 A.9.1 Time .................................................................................................................38 A.9.2 Bits and Bytes ..................................................................................................38 A.9.3 Bit rates ............................................................................................................38 A.9.4 Priority ..............................................................................................................38 A.9.5 Addresses ........................................................................................................38 A.10 Simulator Objects for Network Elements ..........................................................39 A.10.1 Packet ..............................................................................................................39 A.10.2 Port Base Class ...............................................................................................40 A.10.3 Wire..................................................................................................................41 A.10.4 Switch ..............................................................................................................42 A.10.5 PacketQueue ...................................................................................................45 A.11 Simulator Input and Output Objects ..................................................................46 A.11.1 PacketGeneratorPCAP ....................................................................................46 A.11.2 PacketMonitorPCAP .........................................................................................48 A.11.3 “.out” File Format ..............................................................................................49 A.12 A.12.1 A.13 Other Base Classes .........................................................................................50 MemRecycler ...................................................................................................50 Simulator Objects for Discrete Event Simulation ..............................................51 A.13.1 Action ...............................................................................................................51 A.13.2 Functor .............................................................................................................51 A.13.3 Event ................................................................................................................51 A.13.4 Dispatcher/Scheduler .......................................................................................52 A.13.5 Red-Black Tree ................................................................................................53 A.14 Numbering conventions in the top Level Simulator (CORE2LAN.cpp) .............54 A.15 File List.............................................................................................................56 A.16 Common TCL file .............................................................................................59 Annex B (Normative) – C++ Source Code of Discrete Event Simulator .....................63 Annex C (Normative) – Packet Capture Files of Interfering Traffic ............................64 Annex D (Normative) – Simulator Output ....................................................................69 ii ANSI/TIA-921-B Annex E (Normative) – Simulation Results Summary ................................................70 Annex F (Normative) – Electronic Attachment ............................................................80 iii ANSI/TIA-921-B Foreword (This foreword is not part of this Standard.) ANSI-accredited committee TR-30.3 has developed this ANSI/TIA-921-B Standard, which defines an IP network model. This model, along with the specified scenarios, are intended for evaluating and comparing communications equipment connected over a converged network. Building upon the experience of creating network models, TR-30.3 Subcommittee has created this Network Model for IP Impairments using the similar methodology developed in its previous standards and Telecommunication Systems Bulletins: EIA/TIA-496-A-1989: Interface Between Data Circuit Terminating Equipment (DCE) and the Public Switched Telephone Network, which includes a Network Model for Evaluating Modem Performance TIA TSB-37-A-1994: Telephone Network Transmission Model for Evaluating Analog Modem Performance, which became ITU-T Recommendation V.56bis-1995 TIA TSB-38-1994 (and TSB-38-A -2007): Test Procedures for Evaluation of 2-Wire 4 Kilohertz Voice Band Duplex Modems, which became ITU-T Recommendation V.56ter1996 ANSI/TIA/EIA-3700-1999: Telephone Network Transmission Model for Evaluating Analog Modem Performance ANSI/TIA/EIA-793-2001: North American Telephone Network Transmission Model for Evaluating Analog Client and Digitally Connected Server Modems ANSI/TIA-876-2002: North American Network Access Transmission Model for Evaluating xDSL Modem Performance ANSI/TIA-921-B was approved on August 9, 2011. It cancels and replaces TIA-921-A (2008) in its entirety. Technical changes from TIA-921-A include: ANSI/TIA-921-B models the mechanisms that contribute to packet delay, jitter, and loss: interfering streams, queueing delays in network elements, and the characteristics of specific access technologies. The intent is to provide more realism than the earlier version. TIA-921-A defined a Gilbert-Elliott mathematical model that fit certain observed network behavior, but was not easily extended to other scenarios. The new approach is based on discrete event simulation. The “likelihood of occurrence” concept is no longer applied to IP networks. ANSI/TIA-921-B is a true bidirectional model. Impairment levels are updated to keep current with evolving IP networks. The number of standard test cases is greatly reduced. Users can customize test cases to fit their specific needs. There are six normative Annexes in this Standard. Annex F is an electronic attachment that contains the following files: ./src ./pcap ./tc ./out Discrete Event Simulator Source (Annex B) Input Packet Capture Files of Interfering Traffic (Annex C) Impairment Combination Standard Test Cases (section 5.2) Simulator Output (Annex D) iv ANSI/TIA-921-B Introduction ANSI/TIA-921-B describes an Internet Protocol (IP) network model for the purpose of evaluating the performance of IP streams. The focus is on packet delay, delay variation, and loss. IP streams from any type of network device can be evaluated using this model. Emphasis is given to the fact that manufacturers of communications equipment and service providers are interested in a specification that accurately models the IP network characteristics that determine performance. Evaluators desire a definitive set of simple tests that properly measure the performance of communications devices from various manufacturers. Therefore, the objective of this Standard is to define an application-independent model (e.g. data, voice, voiceband data, and video) that is representative of IP networks, that can be simulated at reasonable complexity, and that facilitates practical evaluation times. The IP network model presented herein represents a snapshot of actual network data provided by anonymous IP service providers and IP network equipment manufacturers in the 2010 timeframe, and will continue to evolve as more statistical information becomes available and as the IP network evolves. v ANSI/TIA-921-B This page is intentionally blank. vi ANSI/TIA-921-B Network Model for Evaluating Multimedia Transmission Performance Over the Internet Protocol 1 Scope This Standard is broadly applicable to the evaluation of any equipment that terminates or routes traffic using the Internet Protocol. This Standard can also be used to evaluate media streams or other protocols carried over IP networks. Examples of the types of equipment that can be evaluated using this model include: IP-connected endpoints: o IP network devices (such as: user agents, call agents, media servers, media gateways, application servers, routers, switches, etc.) o IP video (IPTV, video conferencing, telepresence, etc.) o IP phones (including soft phones) o IAF (Internet Aware Fax) PSTN-connected devices through IP gateways: o POTS through Voice-over-IP (VoIP) gateways o T.38 facsimile devices and gateways o V.150.1 and V.152 (voiceband data, VBD) modem-over-IP gateways o TIA-1001 and V.151 textphone-over-IP gateways The IP network model can be used in two ways: Test an IP stream under simulated network conditions Test an IP stream in real time using hardware emulation of the network model. The IP network model can be used to study and to understand: the interaction of different traffic mixes the effects of QoS and queuing on different types of traffic packet delay variation and packet loss. Whether in software simulation or real-time hardware emulation, users can select from several test cases specified in this Standard. Users can optionally define their own test cases. This model has the following limitations: Some VoIP networks may utilize PSTN at one or both ends of the connection through a media gateway. This model only addresses the IP portion of the network and does not address the PSTN portion of the end-to-end connection. The network model represented in this Standard does not model all possible connections that can be encountered between devices. This Standard only specifically includes GPON and DSL access technologies. Characteristics of other access technologies such as CATV and wireless are for further study. Abnormal events such as link failures and route flaps (and the packet reordering that such events can cause) are not included in this Standard. The standard test cases use streams of interfering traffic that were captured on live networks. While realistic, they are still just examples; users could substitute their own files of interfering traffic. 1 ANSI/TIA-921-B The LAN-to-LAN test cases of TIA-921-A are now modeled as two cascaded ANSI/TIA921-B core-to-LAN segments. See section 6.3. The IP network model presented herein is based on an informal survey of anonymous IP service providers and IP network equipment manufacturers in the 2010 timeframe and will continue to evolve as more statistical information becomes available and as the IP network evolves. 2 Informative References At the time of publication, the editions indicated were valid. All Recommendations, standards, and bulletins are subject to revision, and parties to agreements based on this Standard are encouraged to investigate the possibility of applying the most recent editions of the standards published by them. ETSI TIPHON TR 101 329 - Part 2, Quality of Service (QoS) Classes IEEE 802.11A-1999, Information Technology Telecommunications and Information Exchange Between Systems – LAN/MAN IEEE 802.11B/COR 1-2001, Wireless LAN MAC and PHY Specifications Amendment 2: Higher Speed Physical Layer Extension in the 2.4GHz Band IEEE 802.11G-2003, Wireless LAN MAC and PHY Specifications Amendment 4: Further High Data Rate Extension in the 2.4GHz Band ITU-T Recommendation G.1050 (2007), Network Model for Evaluating Multimedia Transmission Performance over Internet Protocol ITU-T Recommendation G.107 (2009), The E-model, a computational model for use in transmission planning ITU-T Recommendation G.108 (1999), Application of the E-model: A planning guide ITU-T Recommendation G.114 (2003), One way transmission time ITU-T Recommendation T.38 (2007), Procedures for real-time Group 3 facsimile communication over IP networks ITU-T Recommendation V.150.0 (2003), Modem-over-IP Networks: Foundation ITU-T Recommendation V.150.1 (2003), Procedures for the end-to-end connection of V-series DCEs over an IP Network ITU-T Recommendation V.152 (2005), Procedures for supporting Voice-Band Data over IP Networks ITU-T Recommendation Y.1541 (2006), Network performance objectives for IP-Based services ANSI/TIA-810-B-2006, Telecommunications – Telephone Terminal Equipment – Transmission Requirements for Narrowband Voice over IP and Voice over PCM Digital Wireline Telephones TIA-1001 (2004), Transport of TIA-825-A Signals over IP Networks 2 ANSI/TIA-921-B TIA TSB116-A-2006, Telecommunications – IP Telephony Equipment – Voice Quality Recommendations for IP Telephony ANSI/TIA-912-A-2004, Telecommunications – IP Telephony Equipment – Voice Gateway Transmission Requirements 3 Definitions and Abbreviations 3.1 Definitions For the purposes of this Standard, the following definitions shall apply. burst loss – a high density of packet loss over time, or loss of sequential packets, due to congestion, bandwidth limitation, line errors, or rerouting (delay translated into loss due to implementation) on the network. delay – the time required for a packet to traverse the network or a segment of the network. See latency. downstream – a transmission from a service provider toward an end user. gateway – a network device that acts as an entrance to another network. One function is to convert media provided in one type of network to the format required in another type of network. For example, a gateway could terminate bearer channels from a switched circuit network (e.g., DS0s) and media streams from a packet network (e.g., RTP streams in an IP network). interferer – a packet stream that contends with the test stream of interest for a limited network resource, such as a link buffer. IP Network – a network based on the Internet Protocol. jitter – variation in packet delay. latency – an expression of how much time it takes for a packet of data to get from one designated point to another. See delay. microburst – a packet traffic pattern characterized by short periods of high activity, and where the bursts are not readily detectable when measuring average traffic rate over a period of one second or longer. MTU Size – the largest size data-link packet or frame (specified in octets) that can be sent in a packet- or frame-based network such as the Internet packet loss – the failure of a packet to traverse the network to its destination. Typically packet loss is caused by packet discards due to buffer overflow. This model does not take into account packet loss due to discards in the terminal jitter buffer. peak jitter – the maximum variation of delay from the mean delay. peak-to-peak jitter – the full range of packet delay from the maximum amount to the minimum amount. peer-to-peer – a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the application. QoS Edge Routing – routing that typically takes place between the customer premises network and the service provider network based on Quality of Service classification values. reordered packets– A packet that arrives at the destination with a packet sequence number that is smaller than the previous packet is deemed a reordered packet. route flap – repeated changes in a path due to updates to a routing table. The network model simulates the effect of route flaps by making incremental changes in the delay values of the core segment. sequential packet loss – two or more consecutive lost packets. upstream – a transmission from an end user toward a service provider. 3 ANSI/TIA-921-B 3.2 Abbreviations For the purposes of this Standard, the following abbreviations shall apply. BER: Bit Error Ratio CATV: Cable Television CBR: Constant Bit Rate CSV: Comma-Separated Values (file format) DSL: Digital Subscriber Line DSLAM: DSL Access Multiplexer HD: High-Definition video HTTP: Hypertext Transport Protocol IP: Internet Protocol IPTV: Internet Protocol Television (UDP) LAN: Local Area Network MTU: Maximum Transmission Unit OLT: Optical Line Termination ONT: Optical Network Termination OTT: Over-the-top (TCP streaming video) PBS: Peak Burst Size (pcap generator) pcap: Packet Capture (file format) PIR: Peak Information Rate (pcap generator) POTS: Plain Old Telephone Service PSTN: Public Switched Telephone Network QoS: Quality of Service SD: Standard-Definition video SLA: Service Level Agreement TCP: Transmission Control Protocol UDP: User Datagram Protocol VBR: Variable Bit Rate VoIP: Voice over Internet Protocol VTC: Video Teleconferencing 4 ANSI/TIA-921-B 4 Description of the Model 4.1 Model Overview The new IP network model of this Standard is embodied in a discrete event software simulator. In a real sense, the simulator is the model. Annex A contains a detailed description of the simulator code used to implement the model. Other implementations are possible, including real-time hardware network emulators for test lab use, but their behavior must match that of the simulator presented here. The IP network is modeled as a network of basic elements. Figure 1 shows this basic network element, called a “switch.” Third Interferer Second Interferer Interfering Stream Generator Test Stream Input to This Stage Store and Forward Test Stream Output from This Stage Link Latency + Packet Priority Queues with Loss Disturbance Packets Figure 1: Switch – Basic Model Network Element These basic network elements are wired in series into a specific network topology as described in section 4.2. This is an outline of the simulator processing in one direction; both directions are included in the model: 1. A packet generator drives packets into the simulator. The arrival times and sizes of the test stream packets and the interfering stream packets are read from pcap files. 2. A switch receives packets on its ingress ports, and determines where packets should go next. 3. A switch schedules each packet for transmission out one of its egress ports. 4. Wires connect the egress port of one switch to the ingress port of another switch. 5. The process repeats for all packets through all switches and wires. 6. Packet arrival and departure times are stored in a file for analysis. The sections that follow explain the components of the model in more detail: Network Topology Interfering Stream Files Models of Network Elements 5 ANSI/TIA-921-B Simulation Inputs Simulation Outputs Packet Scheduling Algorithm 4.2 Network Topology Figure 2 shows the IP service provider’s portion of the network, called the core, represented by a cloud symbol. Basic network element switches within the core are interconnected to carry IP traffic between ports. 1 Gbit/s 1 Gbit/s # Switches Queue Delay Reorder Figure 2: Core Network Portion Figure 3 shows the access portion of the IP network. In the downstream direction from the core to the customer premises, a series of network elements and wires are connected: edge router, DSLAM (or OLT for GPON), DSL modem (or ONT for GPON), firewall, and router. The model is bidirectional, so upstream traffic traverses the same elements in reverse order. Residential Gateway DSLAM or OLT Edge Router 1 Gbit/s Various Rates 1 Gbit/s Queue Delay DSL or GPON Queue per QoS Level Delay BER DSL Modem or ONT LAN Firewall 100 Mbit/s Queue LAN Router 100 Mbit/s Queue In/Out Queue Figure 3: Access Network Portion Although the basic switch element of Figure 1 allows interfering streams to be inserted and to exit at each stage, the network topologies of this Standard are simplified. Interferers in the models only enter and exit at the points shown next in Figure 4, Figure 5, and Figure 6. Figure 4 shows a core-only network model. There is no access network. The core-only model could be used to evaluate equipment and protocols that do not traverse an access link. Interfering Streams (pcap files) Interfering Streams (pcap files) Core Network Test Stream Test Stream Figure 4: Core-Only Network Model 6 ANSI/TIA-921-B Figure 5 (Core to LAN) illustrates a server-to-client application such as an IPTV or a web server. All of the test case simulations of this Standard (except for a single core-only case) use the core-to-LAN network model. Interfering Streams (pcap files) Interfering Streams (pcap files) Core Network 1 Gbit/s Access Network Test Stream Test Stream Figure 5: Core-to-LAN Network Model Figure 6 (LAN to LAN) illustrates an end-to-end network with LAN and access links on each side of the core as would occur in a client-to-client application such as VoIP. It is modeled as two core-to-LAN networks concatenated. Some considerations for using the LAN-to-LAN model are given in section 6.3. Interfering Streams (pcap files) Access Network 1 Gbit/s Interfering Streams (pcap files) Core Network Test Stream 1 Gbit/s Interfering Streams (pcap files) Core Network 1 Gbit/s Access Network Interfering Streams (pcap files) Test Stream Figure 6: LAN-to-LAN Network Model 4.3 Models of Network Elements The various types of network elements considered in this model are listed as the columns in Table 1: core switches edge router access head end device o DSLAM o GPON OLT access subscriber end device o DSL modem o GPON ONT firewall (as part of residential gateway, for example) LAN wires between devices 7 ANSI/TIA-921-B Each of the network elements is modeled identically in the simulator: as the basic switch element shown in Figure 1. Only access head end devices (DSLAM or GPON OLT) implement multiple packet queues, one per QoS priority. Each packet queue is 65 × 1518 = 98,670 bytes. Table 1 rows list the attributes of each element in the network model: # switches: For the core section only, there are between 3 and 15 cascaded Gigabit Ethernet switches Link down rate: refers to the direction from the core toward the premises Link up rate: refers to the direction from the premises toward the core Delay: the one-way flat delay of the element QoS: Indicates that the element implements QoS priority scheduling BER: The bit error ratio of the physical access link # switches Link rate down (Mbit/s) Link rate up (Mbit/s) Delay LAN Firewall Wire GPON ONT GPON Access GPON OLT DSL Modem DSL Access DSLAM Wire Edge Router Wire Attribute Core switch Table 1: Network Model Element Attributes 3 to 15 1000 1000 3 to 33 5 to 50 100 100 1000 1000 1 to 3 2 to 35 100 100 10 to 300 ms 100 ns 1 ms 1 ms QoS BER 1 to 7 1 to 7 10-8 to 10-6 10-12 to 10-9 4.4 Interfering Stream Files The network traffic files used by the simulator are all of a standard packet capture format commonly known as pcap, as defined in file pcap.h (version 2.4) of libpcap. See http://wiki.wireshark.org/Development/LibpcapFileFormat . Usually the files have been captured at the endpoints of the network at client devices. These files are used as interfering traffic input to the simulation model. The following types of streams are included in the standard test cases: IPTV: SD and HD, CBR and VBR VoIP FoIP (fax over IP) Peer-to-peer file transfer HTTP OTT TCP video: SD and HD 8 ANSI/TIA-921-B These files have been anonymously captured by a variety of researchers and from a variety of sources as real examples of representative types of packet traffic. In general, the files are a reflection of the traffic patterns observed and have had the payloads stripped to protect the privacy and rights of the actual content as well as to keep the overall file size small. Note that even though the traffic source files omit the payloads, size information is maintained so that the full traffic is modeled by the simulation. Pcap files with payloads can be used as test streams or interfering streams, since the simulator does pass payload data. In addition to payload stripping, the pcap files have had a number of processing steps: Flow separation: The captured files are split into upstream (toward the core) and downstream (toward the client endpoint) files for simulation. Bandwidth analysis: The files are analyzed as to their overall and average bandwidth over finite time periods. As reference files, the microscopic and macroscopic bandwidth characteristics must be understood so that they can be applied reasonably to the various simulation test cases. In particular, the bandwidth characteristics of the files are highly dependent on factors such as the overall bandwidth capabilities and rate limitations of the network path, and the behavior and rate adaptation of higher layer network protocols. Smoothing: At a microscopic level, bandwidth analysis of some pcap files reveals that there are microbursts. A potential problem with these microbursts is that the instantaneous bandwidth requirement can overwhelm link or memory capacities of the scenario under test. This can be alleviated either through external smoothing of the file or by the rate shaping parameters in the simulation configuration file. Bandwidth scaling: The standard pcap files are specific captures intended to be representative of network usage. Since they are generic in nature, playback into the simulator is made by bandwidth scaling. This is accomplished by temporal dilation: playback of packets by a constant scale factor, faster or slower, achieves the desired network usage. Annex C describes the standard pcap files in detail, and includes the files as an electronic attachment. The average bandwidth of one example (using a five second non-overlapping window) is plotted in Figure 7. 9 ANSI/TIA-921-B Figure 7: Sample Interferer – OTT2 Downstream Flow 4.5 Simulation Inputs Table 2 lists the inputs to the simulation. The core-to-LAN network topology is assumed. One access technology (DSL or GPON) is selected. There are parameters for each network element and for each pcap file used as an interfering traffic stream. Traffic flows are assigned a priority that is essential in practical access networks to ensure that higher priority traffic from managed services is carried in preference to lower priority traffic. The simulator has 7 priority levels and no per-class bandwidth reservation. The simulation test cases are set as follows: 1: (highest priority) Managed voice traffic 2: Managed IPTV-type video traffic 3 - 6: Unused 7: (lowest priority) Best effort, OTT video, VoIP/FoIP, peer-to-peer 10 ANSI/TIA-921-B Table 2: Network Model Simulation Input Parameters Network Element Core Impairment / Interferer Number of Switches Total Core Link Delay (ms) Access (pick one technology) GPON Access Rate Down (Mbit/s) Access Rate Up (Mbit/s) Residual BER Delay (ms) DSL Access Rate Down (Mbit/s) Access Rate Up (Mbit/s) Residual BER Delay (ms) Parameter Range 3 to 15 10 to 250 5 to 50 2 to 35 10-12 to 10-9 1 3 to 33 1 to 3 10-8 to 10-6 1 Managed Bandwidth IPTV HD Stream 1 - CBR (qty) Downstream Rate (Mbit/s) IPTV HD Stream 2 - VBR (qty) Downstream Rate (Mbit/s) IPTV SD Stream 1 - CBR (qty) Downstream Rate (Mbit/s) IPTV SD Stream 2 - VBR (qty) Downstream Rate (Mbit/s) VoIP/Fax (qty) Rate down/up (Mbit/s) 0 to 1 (10 core-only) 8 0 to 1 (10 core-only) 8 0 to 1 (10 core-only) 2 0 to 1 (10 core-only) 2 0 to 1 (10 core-only) 0.064 / 0.064 Residual Bandwidth Peer-to-peer Rate Down / Up HTTP Rate Down / Up OTT1 Rate Down / Up OTT2 Rate Down / Up VoIP/FoIP Rate Down / Up 1.89 / 0.768 1.7 / 0.007 7 / 0.128 1 / 0.025 0.064 / 0.064 4.6 Simulation Outputs Output from the simulator is in the form of pcap files and “.out” files. The pcap files record the output packets along with their timestamps. Comparisons of input pcap and output pcap files can be performed to determine the effect of the impairment on, for example, video/audio quality or voice quality. Test stream pcap files with payloads can be input into the simulation and the 11 ANSI/TIA-921-B test stream output pcaps can be analyzed for video/audio quality or voice quality under different network conditions. The “.out” output files contain delay and packet loss information (in ASCII CSV format) about the simulation result. This information is also implicitly contained in the pcap file, but because it is not possible directly to indicate packet delay or loss in a pcap file, the “.out” files are helpful for post analysis. For example, because the “.out” files are in CSV format, they can be read into a spreadsheet programs for analysis. The “.out” output files also can be replayed in a real-time emulator as described in section 6.2. The examples in Table 3, Figure 8, and Figure 9 are from the same simulation. Table 3 shows a few packets from the “.out” file. Table 3: Example Simulator Output for Case Dw4, Stream HD_cbr Downstream Source: Creation Date: Description: Content-Encoding : Delay Unit: TIA TR30.3: TIA-921B 12/7/2010 Dw4-HDTV1 ASCII ms Time Delay 21.33439 21.33571 21.33703 21.33835 21.33967 21.34099 21.34363 21.34363 21.34495 77.69556 77.69556 78.00174 77.69556 77.69556 77.69556 77.69556 77.69556 77.69556 Drop 0 0 0 0 0 0 1 0 0 Figure 8 is a plot derived from the same csv file from which Table 3 is a tiny excerpt. Note the first dropped packet around 21 seconds. 12 ANSI/TIA-921-B Figure 8: Time Series Plot of Packet Delay and Loss The CSV file can be plotted and analyzed to show a time series of the delay patterns and loss bursts. Furthermore, Packet Delay Variation (PDV) histograms and Cumulative Distribution Functions (CDF) can be generated for these files to analyze network characteristics. Figure 9 is the PDV histogram from the same Dw4 simulation. 13 ANSI/TIA-921-B Figure 9: PDV Histogram Complete simulation output of the standard test cases are found in Annex D. 4.7 Packet Scheduling Algorithm Capitalized nouns in the following description refer to objects in the C++ simulator source code. A Packet is driven into the simulation from a PacketGenerator, usually by reading Packets from a PCAP file, and sending them into a Port on a Switch. The Switch receives the Packet, determines where it should go next, and Schedules it for transmission out one of its egress Ports. The egress Port is connected by a Wire to another Switch and the Wire schedules the packet for ingress on the next Switch after the wire’s delay. This process repeats for the entire network topology being simulated and for all packets being simulated. When packets reach their final destination, they are stored in a file for post-analysis. Annex B, included as an electronic attachment, contains the C++ source code of the simulator. Annex A is a detailed description of the simulator code. 14 ANSI/TIA-921-B 5 IP Network Impairment Level Requirements An implementation of the network model shall create impairments that conform to the impairment levels specified in this section. 5.1 Service Test Profiles Table 4 represents service test profiles and the applications, node mechanisms and network techniques associated with them. ITU-T Y.1541 uses a similar approach, but a one-to-one mapping to these service profiles may not be possible. Table 4: Service Test Profiles (from ITU-T Y.1541) Service Test Profiles Well-Managed IP Network (Profile A) PartiallyManaged IP Network (Profile B) Unmanaged IP Network, Internet (Profile C) Applications (Examples) High quality video and VoIP, VTC (Real-time applications, loss sensitive, jitter sensitive, high interaction) VoIP, VTC (Real-time applications, jitter sensitive, interactive) Lower quality video and VoIP, signaling, transaction data (highly interactive) Transaction data, interactive Short transactions, bulk data (low loss) Traditional Internet applications (default IP networks) Node Mechanisms Strict QoS, guaranteed no over subscription on links Separate queue with preferential servicing, traffic grooming Separate queue, drop priority Long queue, drop priority Separate queue (lowest priority) Network Techniques Constrained routing and distance Less constrained routing and distances Constrained routing and distance Less constrained routing and distances Any route/path Any route/path Table 5 shows industry accepted end-to-end LAN-to-LAN impairment levels, including LAN and access, that correspond to the Service Test Profiles. The total packet loss shown is the sum of the sequential packet loss and random packet loss. Note that service provider SLAs only guarantee characteristics of the core section of the network. 15 ANSI/TIA-921-B Table 5: End-to-End LAN-to-LAN Impairment Levels per Service Test Profile Impairment Type Units Profile A Well-Managed Range (min to max) Profile B Partially-Managed Range (min to max) Profile C Unmanaged Range (min to max) One Way Latency ms 20 to 100 (regional) 90 to 300 (intercontinental) 20 to 100 (regional) 90 to 400 (intercontinental) 20 to 500 Jitter (peak to peak) ms 0 to 50 0 to 150 0 to 500 Sequential Packet Loss ms Random loss only 40 to 200 40 to 10,000 Rate of Sequential Loss sec-1 Random loss only < 10-3 < 10-1 Random Packet Loss % 0 to 0.05 0 to 2 0 to 20 Reordered Packets % 0 to 0.001 0 to 0.01 0 to 0.1 5.2 Impairment Combination Standard Test Cases The standard test cases of this IP network model have the following characteristics for each Service Test Profile: Well-Managed Network (Profile A) – a network with no over-committed links that employs QoS edge routing. The well-managed test cases include managed voice and video services. Partially Managed Network (Profile B) – a network that minimizes over-committed links and has one or more links without QoS edge routing. The partially managed test cases include a mixture of managed voice and video services, and unmanaged / best-effort data and over-the-top video services Unmanaged Network (Profile C) – an unmanaged network such as the Internet that includes over-committed links and has one or more links without QoS edge routing. The unmanaged test cases include unmanaged data and over-the-top video services. The specific core network parameters, interferers, and access network parameters for each test case were selected so that the simulation results align with the impairment level requirements of section 5.1, with an adjustment to account for the fact that the simulations only cover the coreto-LAN topology. The interferers represent a realistic mix of typical traffic. The test cases span a range of impairment severities from mild to severe within each Service Test Profile. The test cases are specified in Table 6, Table 7, and Table 8. Each test case is labeled as follows: 16 ANSI/TIA-921-B The first character is either D for DSL or G for GPON. The access rates and impairments chosen represent typical values in 2010. (The single core-only test case, lacking an access network portion, is labeled simply “Core.”) The second character is one of the following: o w for well-managed profile A, highlighted in green in Table 6. o p for partially managed profile B, highlighted in yellow in Table 7. o u for unmanaged profile C, highlighted in red in Table 8. o c for the core-only case, highlighted in blue in Table 8. The third character is an ordinal digit, where a higher value generally corresponds to a higher severity (more difficult) test case. For example, test case Dw5 uses DSL access in a well-managed network with impairment severity 5. Note that all simulations (except the single core-only case) are for the core-to-LAN network topology of Figure 5. A given test case column uses the identical interfering streams and parameters between the DSL and GPON versions. Only the access technology parameters differ. The column “PCAP Avg BW” shows the long-term average bit rate of each pcap file after smoothing, but before scaling. The percentages shown for each pcap file under each test case are the time scale factors applied to the interferers by the packet generator. A higher percentage decreases the inter-packet time, which increases the effective bit rate of the interferer. 17 ANSI/TIA-921-B Table 6: Well-Managed Service Test Profile A Test Cases Well Managed Network Element Core Impairment / Interferer PCAP Avg BW (Mb/s) w1 Number of Switches Total Core Link Delay (ms) 3 10 Access (pick one technology) GPON Access Rate Down (Mbit/s) Access Rate Up (Mbit/s) Residual BER DSL Access Rate Down (Mbit/s) Access Rate Up (Mbit/s) Residual BER Managed Bandwidth IPTV HD Stream 1 - CBR (qty) IPTV HD Stream 2 - VBR (qty) IPTV SD Stream 1 - CBR (qty) IPTV SD Stream 2 - VBR (qty) VoIP/Fax (qty) Residual Bandwidth Peer-to-peer Rate Down Peer-to-peer Rate Up HTTP Rate Down HTTP Rate Up OTT1 Rate Down OTT1 Rate Up OTT2 Rate Down OTT2 Rate Up VoIP/Fax Rate Down VoIP/Fax Rate Down w2 w3 w4 4 25 5 50 50 50 25 25 1.E-12 1.E-12 33 33 3 3 1.E-08 1.E-08 w5 6 75 w6 w7 w8 7 85 8 100 9 125 10 150 35 25 1.E-11 35 25 25 25 1.E-10 1.E-10 25 25 1.E-09 25 15 25 5 1.E-09 1.E-09 33 3 1.E-08 22 16 2 1 1.E-08 1.E-07 16 1 1.E-07 16 10 1 1 1.E-07 1.E-07 (QoS Voice=1 Video=2) 8 8 2 2 0.064/0.064 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100% 100% 100% 100% 100% 100% 100% 100% 1 1 1 1 1 1 100% 100% 100% 100% 100% 100% 100% 100% QoS = 7 1.89 0.285 1.58 0.66 6.678 0.099 2.66 0.051 0.064 0.064 18 ANSI/TIA-921-B Table 7: Partially Managed Service Test Profile B Test Cases Partially Managed Network Element Core Impairment / Interferer PCAP Avg BW (Mb/s) Number of Switches Total Core Link Delay (ms) Access Rate Down (Mbit/s) Access Rate Up (Mbit/s) Residual BER Managed Bandwidth IPTV HD Stream 1 - CBR (qty) IPTV HD Stream 2 - VBR (qty) IPTV SD Stream 1 - CBR (qty) IPTV SD Stream 2 - VBR (qty) VoIP/Fax (qty) Residual Bandwidth Peer-to-peer Rate Down Peer-to-peer Rate Up HTTP Rate Down HTTP Rate Up OTT1 Rate Down OTT1 Rate Up OTT2 Rate Down OTT2 Rate Up VoIP/Fax Rate Down VoIP/Fax Rate Down p2 3 10 Access (pick one technology) GPON Access Rate Down (Mbit/s) Access Rate Up (Mbit/s) Residual BER DSL p1 p3 4 25 p4 5 50 p5 8 75 p6 10 100 12 200 35 35 25 35 15 25 1.E-12 1.E-12 1.E-11 15 5 5 2 1.E-09 1.E-09 15 5 1.E-09 24 18 12 3 1.5 1.5 1.E-08 1.E-07 1.E-07 6 3 1 1 1.E-06 1.E-06 6 1 1.E-06 (QoS Voice=1 Video=2) 8 8 2 2 0.064/0.064 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 50% 135% 100% 50% 25% 135% 40% 50% 20% 135% 20% 60% 25% 135% 40% 50% 100% 100% 100% 100% 100% 100% 10% 135% 10% 10% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% QoS = 7 1.89 0.285 1.58 0.66 6.678 0.099 2.66 0.051 0.064 0.064 19 ANSI/TIA-921-B Table 8: Unmanaged Service Test Profile C and Core-Only Test Cases Unmanaged Network Element Core Impairment / Interferer PCAP Avg BW (Mb/s) u1 Number of Switches Total Core Link Delay (ms) 3 10 Access (pick one technology) GPON Access Rate Down (Mbit/s) Access Rate Up (Mbit/s) Residual BER DSL Access Rate Down (Mbit/s) Access Rate Up (Mbit/s) Residual BER Managed Bandwidth IPTV HD Stream 1 - CBR (qty) IPTV HD Stream 2 - VBR (qty) IPTV SD Stream 1 - CBR (qty) IPTV SD Stream 2 - VBR (qty) VoIP/Fax (qty) Residual Bandwidth Peer-to-peer Rate Down Peer-to-peer Rate Up HTTP Rate Down HTTP Rate Up OTT1 Rate Down OTT1 Rate Up OTT2 Rate Down OTT2 Rate Up VoIP/Fax Rate Down VoIP/Fax Rate Down u2 4 25 u3 5 50 u4 Core u5 8 75 10 100 u6 12 200 u7 c1 15 250 3 150 35 35 25 15 5 15 5 35 15 25 5 2 5 2 1.E-12 1.E-12 1.E-11 1.E-09 1.E-09 1.E-09 1.E-09 1000 1000 1.E-12 24 18 12 6 3 6 3 3 1.5 1.5 1 1 1 1 1.E-08 1.E-07 1.E-07 1.E-06 1.E-06 1.E-06 1.E-06 1000 1000 1.E-12 (QoS Voice=1 Video=2) 8 8 2 2 0.064/0.064 10 10 10 10 10 QoS = 7 1.89 0.285 1.58 0.66 6.678 0.099 2.66 0.051 0.064 0.064 100% 100% 200% 200% 100% 100% 10% 135% 10% 10% 100% 100% 200% 200% 100% 100% 50% 135% 100% 50% 25% 135% 40% 50% 20% 135% 20% 60% 25% 135% 40% 50% 20% 135% 20% 60% 200% 200% 100% 100% 100% 100% 100% 100% 50% 50% 100% 100% 100% 100% 100% 100% 50% 50% 100% 100% 1000% 2000% 1000% 1000% 500% 500% 500% 500% 1000% 1000% Figure 10 shows the aggregate bit rate over time for the DSL well-managed profile. Test Profile A has the following characteristics: Bandwidth utilization is stable. Packet loss is low. Jitter is low. 20 ANSI/TIA-921-B Dw Series Tests 18000000 Aggregate BW (bits/s) 16000000 14000000 12000000 10000000 8000000 6000000 4000000 2000000 0 0 60 120 180 240 300 360 420 480 540 Dw7 Dw8 600 sec Dw1 Dw2 Dw3 Dw4 Dw5 Dw6 Figure 10: Aggregate Bit Rate over Time for DSL Well-Managed Profile A Figure 11 shows the aggregate bit rate over time for the DSL partially managed profile. Test Profile B has the following characteristics: Bandwidth can vary significantly. Packet loss is medium to high for the subset of unmanaged services. Jitter is medium to high for the subset of unmanaged services. Dp Series Tests 20000000 Aggregate BW (bits/s) 18000000 16000000 14000000 12000000 10000000 8000000 6000000 4000000 2000000 0 0 60 120 180 240 300 360 420 480 sec Dp1 Dp2 Dp3 Dp4 Dp5 Dp6 Figure 11: Aggregate Bit Rate over Time for DSL Partially Managed Profile B 21 540 600 ANSI/TIA-921-B Figure 12 shows the aggregate bit rate over time for the DSL unmanaged profile. Test Profile C has the following characteristics: Bandwidth can vary significantly. Packet loss is high. Jitter is high. Du Series Tests Aggregate BW (bits/s) 25000000 20000000 15000000 10000000 5000000 0 0 60 120 180 240 300 360 420 480 540 600 sec Du1 Du2 Du3 Du4 Du5 Du6 Du7 Figure 12: Aggregate Bit Rate over Time for DSL Unmanaged Profile C 6 Using the Network Model The network model can be used in two ways: 1. Evaluate a test stream using the simulator. 2. Run a test stream through a real-time hardware emulator. 6.1 Using the Simulator The simulator can be used in a number of ways: Select a standard test case. Generate a test pcap file that includes payload. The test stream should correspond to an existing standard pcap file included in the test case. Replace an existing pcap file with the test pcap file by editing a simulator parameter file. See Annex A section A.5. Run the simulation, which results in a .out file and a set of output pcap files. Evaluate the test output pcap file to assess network effects on the payload under this test condition. 6.2 Using a Real-Time Hardware Emulator Figure 13 shows an example of a lab test setup using a video stream played between a server and set-top box through a network emulator. 22 ANSI/TIA-921-B Device Under Test A (Video Server) Device Under Test B (Video Client STB) Impairment Emulator (.out files) Video Stream Video Stream Figure 13: Hardware Emulator Test Setup The emulator could be used as follows: Select a standard test case that includes a technology similar to the test stream. Configure the emulator with the standard .out file from Annex D for the selected test case. Run the test stream through the emulator, and evaluate the effect of the network impairments on the stream. 6.3 Hardware Emulator Considerations For a specified test case, the simulation produces delay and loss characteristics that can be used in a real-time emulator. The emulator accepts a packet stream under test, and plays out the same stream with packet delays and losses that match the corresponding simulation. The simulator creates .out files to represent the delay and loss experienced by each packet in a stream. These .out files can be used directly to control packet delay and loss in a real-time inline impairment emulator. In cases where the packet stream in the simulator is bursty, the delay and loss values in the .out file are non-uniform in time. Two methods to handle this situation are described in the following paragraphs. An impairment emulator shall provide Method 1 and may provide Method 2. Method 1: Resample the delay and loss values in the .out file so that they are uniformly sampled in time, and apply these in the inline impairment emulator using the resampled rate. For example, if the test stream is bursty with an average packet rate of 1000 packets per second, the .out file may be resampled using 1ms resample rate, and the resulting impairments could then be applied at 1ms update rate. This approach ensures that the resulting test always lasts the same amount of time, but some samples may apply to more than one packet, and other samples may not be applied to any packets, depending on the arrival time of packets at the inline impairment emulator. Method 2: Apply the delay and loss values from the .out files on a packet-by-packet basis. Each line in the .out file is applied to one packet without regard to the time value in the first column. This approach ensures that each delay and loss value is applied exactly once, but the test duration will vary inversely with the rate of packets applied to the inline impairment emulator. In other words, a higher packet rate applied to the emulator will consume the .out file samples more quickly, and thus the test finishes sooner. If a long duration test is required than the 10 minute length of the .out files the files should be looped. An impairment emulator shall shape the stream under test to account for the “self-interference” effect by traffic shaping using the token bucket method. The result of the token bucket shaping shall be equivalent to the result produced by the shaping code that is implemented in PacketGeneratorPCAP.cpp portion of the simulator source code. Packets that arrive too close 23 ANSI/TIA-921-B together in time contend for the available bandwidth in the emulated network. The amount of shaping depends on the effective bandwidth available to the stream under test in the given test case. This available capacity is the rate of the access link (the lowest-rate link in the network) less the sum of the rates of the interfering streams at QoS priority the same or higher than the stream under test. The test cases described in this document cover primarily CORE-TO-LAN configurations, and this is well suited for emulation of IPTV service. Test cases for LAN-TO-LAN configurations shall be constructed by concatenating two CORE-TO-LAN test cases. For example, a LAN-TO-LAN test case could be constructed by running Dw1 in series with Gp3. Such a test case is called Dw1-Gp3. The delay and loss values for a LAN-TO-LAN test case are calculated by first performing Method 1 on the individual test cases so that they have a common sample rate and then summing the delay values and logically OR-ing the loss values for the resulting individual test cases. The bandwidth limitation is calculated as the minimum of the effective bandwidth (EB) for the individual test cases. DelayDw1-Gp2 = DelayDw1 + DelayGp2 Loss Dw1-Gp2 = Loss Dw1 “or” LossGp2 BW Dw1-Gp2 = Min[EBDw1, EBGp2] 6.4 Advanced Uses of the Network Model User-Defined Test Cases: The user can define custom test cases by any of these methods: Replace any of the standard interferer pcap files Change the traffic mix Change network conditions: number of switches, bit error ratio, access technology parameters, etc. Network Load Generation: The output pcap files can be used as the basis of synthetic or dummy loads to inject onto networks to simulate different traffic mixes. 24 ANSI/TIA-921-B Annex A (Normative) – Description of Discrete Event Simulator A.1 Simulator Overview The TIA-921B impairment simulation is implemented as a general purpose discrete event simulator. This means that it contains discrete event models of generalized network elements, such as switches, routers and set top boxes, which are connected together by means of wires. Events in the simulation consist mainly of packet arrivals and departures from the different network elements, but other types of events are also possible. The simulator source code is implemented using object oriented design techniques in C++. A Packet is driven into the simulation from a PacketGenerator, usually by reading Packets from a PCAP file, and sending them into a Port on a Switch. The Switch receives the Packet, determines where it should go next, and Schedules it for transmission out one of its egress Ports. The egress Port is connected by a Wire to another Switch and the Wire schedules the packet for ingress on the next Switch after the wire’s delay. This process repeats for the entire network topology being simulated and for all packets being simulated. When packets reach their final destination, they are stored in a file for post-analysis. The inputs and outputs from the simulation are in the form of PCAP packet files. PCAP is a de-facto industry standard that can be read by a variety of commonly available tools such as wireshark and tcpreplay. A.2 Directory Structure ./ top level directory ./src subdirectory for simulator source code ./src/bin.debug subdirectory for simulator’s binary executable ./pcap subdirectory for input PCAP files ./tc subdirectory for test case parameter files ./tc/common.tcl shared TCL routines ./tc/Dw1.param input parameter file for test case Dw1 ./out subdirectory for outputs from test cases ./out/Dw1 sub-subdirectory for outputs from test case “Dw1” 25 ANSI/TIA-921-B A.3 Building the simulator The source code for the simulation is written in the C++ language and has been tested under Cygwin 1.7 on Windows XP and Windows 7, Ubuntu Jaunty Jackalope (x86_64), openSUSE 11.1 (i386) and Fedora Core 8. It has been built using GNU Make 3.81 and GCC/G++ version 3.4.4 or GCC version 4.3.4. The simulator uses the TCL interpreter for reading simulation parameters, so the machine on which the code is built must have the tcl.h header file and associated library to link against. This has been tested with the ActiveState TCL distribution under Windows and with the native Linux TCL. In either case versions 8.4 and 8.5 have been seen to work. The path to the tcl.h and the library file is specified in the Makefile. You may need to modify the Makefile to adjust the path to these two files on your system. Once the paths for the TCL files has been set and verified, building the simulation requires running “make” If the simulator is built successfully, there will be an executable program called CORE2LAN.exe in the sim/src/bin.debug subdirectory. The following shows the result of a successful compilation. $ make Generating Generating Generating Generating Generating Generating Generating Generating Generating Generating Generating Generating Generating Generating Generating dependencies dependencies dependencies dependencies dependencies dependencies dependencies dependencies dependencies dependencies dependencies dependencies dependencies dependencies dependencies for for for for for for for for for for for for for for for CORE2LAN.cpp redblack.c Wire.cpp Switch.cpp SimParam.cpp Port.cpp PacketQueue.cpp PacketMonitorPCAP.cpp PacketMonitor.cpp PacketGeneratorPCAP.cpp PacketGenerator.cpp Packet.cpp Event.cpp Dispatcher.cpp Clock.cpp -----------------------Compiling for debug - - - - - - - - - - - g++ -c -g -O2 -Wall -DDEBUG -I../lib -Isrc -I. -I/cygdrive/c/tcl/include -Wno-write-strings -o objs.debug/CORE2LAN.o CORE2LAN.cpp g++ -c -g -O2 -Wall -DDEBUG -I../lib -Isrc -I. -I/cygdrive/c/tcl/include -Wno-write-strings -o objs.debug/Clock.o Clock.cpp g++ -c -g -O2 -Wall -DDEBUG -I../lib -Isrc -I. -I/cygdrive/c/tcl/include -Wno-write-strings -o objs.debug/Dispatcher.o Dispatcher.cpp g++ -c -g -O2 -Wall -DDEBUG -I../lib -Isrc -I. -I/cygdrive/c/tcl/include -Wno-write-strings -o objs.debug/Event.o Event.cpp g++ -c -g -O2 -Wall -DDEBUG -I../lib -Isrc -I. -I/cygdrive/c/tcl/include -Wno-write-strings -o objs.debug/Packet.o Packet.cpp g++ -c -g -O2 -Wall -DDEBUG -I../lib -Isrc -I. -I/cygdrive/c/tcl/include -Wno-write-strings -o objs.debug/PacketGenerator.o PacketGenerator.cpp g++ -c -g -O2 -Wall -DDEBUG -I../lib -Isrc -I. -I/cygdrive/c/tcl/include -Wno-write-strings -o objs.debug/PacketGeneratorPCAP.o PacketGeneratorPCAP.cpp g++ -c -g -O2 -Wall -DDEBUG -I../lib -Isrc -I. -I/cygdrive/c/tcl/include 26 ANSI/TIA-921-B -Wno-write-strings -o objs.debug/PacketMonitor.o PacketMonitor.cpp g++ -c -g -O2 -Wall -DDEBUG -I../lib -Isrc -I. -I/cygdrive/c/tcl/include -Wno-write-strings -o objs.debug/PacketMonitorPCAP.o PacketMonitorPCAP.cpp g++ -c -g -O2 -Wall -DDEBUG -I../lib -Isrc -I. -I/cygdrive/c/tcl/include -Wno-write-strings -o objs.debug/PacketQueue.o PacketQueue.cpp g++ -c -g -O2 -Wall -DDEBUG -I../lib -Isrc -I. -I/cygdrive/c/tcl/include -Wno-write-strings -o objs.debug/Port.o Port.cpp g++ -c -g -O2 -Wall -DDEBUG -I../lib -Isrc -I. -I/cygdrive/c/tcl/include -Wno-write-strings -o objs.debug/SimParam.o SimParam.cpp g++ -c -g -O2 -Wall -DDEBUG -I../lib -Isrc -I. -I/cygdrive/c/tcl/include -Wno-write-strings -o objs.debug/Switch.o Switch.cpp g++ -c -g -O2 -Wall -DDEBUG -I../lib -Isrc -I. -I/cygdrive/c/tcl/include -Wno-write-strings -o objs.debug/Wire.o Wire.cpp gcc -c -g -O4 -Wall -DDEBUG -I../lib -Isrc -I. -I/cygdrive/c/tcl/include – o objs.debug/redblack.o redblack.c -----------------------Linking bin.debug/CORE2LAN.exe - - - - - - - - - - - g++ -lm -g -o bin.debug/CORE2LAN.exe objs.debug/CORE2LAN.o objs.debug/Clock.o objs.debug/Dispatcher.o objs.debug/Event.o objs.debug/Packet.o objs.debug/PacketGenerator.o objs.debug/PacketGeneratorPCAP.o objs.debug/PacketMonitor.o objs.debug/PacketMonitorPCAP.o objs.debug/PacketQueue.o objs.debug/Port.o objs.debug/SimParam.o objs.debug/Switch.o objs.debug/Wire.o objs.debug/redblack.o /cygdrive/c/tcl/bin/tcl84.dll A.4 Base CORE2LAN model The base simulator code contains the basic topology of a CORE-to-LAN configuration, with 15 nodes of a high speed core network, a high speed edge router, an access link (for example with a DSLAM and DSL modem), a residential firewall/gateway, a home LAN and 13 set top boxes and two PCs. A.5 Simulator Input Data Input to the simulator is in the form of PCAP files. These files are driven into the simulation as specified by the timestamps in PCAP files. The payload of the PCAP files, if present, is carried along with the packets in the simulation and placed in the output files. The simulation parameter settings can adjust the timing of the packets driven into the simulation, for example to speed up or slow down the playback, or to smooth out unintended burstiness. A full list of the adjustable parameters for the PCAP packet generator is given below. The parameters for running the simulation are given in a TCL file. The advantage of using TCL as a parameter file format is that it is a well-known file format, and it is extensible so that users can further customize the behavior of the simulation to suit their particular needs. An example of how this helps is that it gives a convenient way to comment out portions of code and to print messages to the screen for information or debugging. 27 ANSI/TIA-921-B At the very top of a parameter file, the user must include the common support routines from the file tc/common.tcl. source "tc/common.tcl" The first section of the parameter file consists of variable settings using the TCL “set” command. It is no different from setting a normal variable in TCL, except that the names of the variables are specific to the simulator. The example below sets the simulation length to 10 minutes (600 seconds) # - - - - - - - - - - - - - - - # Simulation length # - - - - - - - - - - - - - - - set SimLengthSeconds [expr 10*60] In most test cases, the above line is commented out so that a default simulation length from common.tcl can control the duration of the simulation. Note also in this example that a TCL expression computes the number of seconds in ten minutes. While it is also possible to also specify 600 seconds, using an expression in this way helps to make clear what is intended (10 minutes) and also serves an example of how to use TCL expressions in the parameter file. Next, set the Access and Core network parameters (this example is from test case Dp4): # - - - - - - - - - - - - - - - # Network Parameters # - - - - - - - - - - - - - - - Set_Access_Params dsl_p4_u4 Set_Core_Params p4_u4 The first line above sets parameters for the access network. The second line above sets parameters for the core network. The arguments to these two procedures is a text string that refers to a pre-defined combination of parameters that are given in common.tcl. Custom test cases can be created by setting the individual simulator control variables at this level. 28 ANSI/TIA-921-B The table below shows the names of the predefined access parameters, and the corresponding access parameters: Tech Param Name dsl_w1 dsl_w2 dsl_w3 dsl_w4 dsl_w5 dsl_w6 dsl_w7 dsl_w8 pon_w1 pon_w2 pon_w3 pon_w4 pon_w5 pon_w6 pon_w7 pon_w8 pon_p1_u1 pon_p2_u2 pon_p3_u3 pon_p4_u4 pon_p5_u5 pon_p6_u6 pon_p7_u7 dsl_p1_u1 dsl_p2_u2 dsl_p3_u3 dsl_p4_u4 dsl_p5_u5 dsl_p6_u6 dsl_p7_u7 Node RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC RACC SpeedDn SpeedUp BER_Fwd BER_Rev 3.30E+07 3.30E+07 3.30E+07 2.20E+07 1.60E+07 1.60E+07 1.60E+07 1.00E+07 5.00E+07 5.00E+07 3.50E+07 3.50E+07 2.50E+07 2.50E+07 2.50E+07 1.50E+07 3.50E+07 3.50E+07 2.50E+07 1.50E+07 5.00E+06 1.50E+07 5.00E+06 2.40E+07 1.80E+07 1.20E+07 6.00E+06 3.00E+06 6.00E+06 3.00E+06 3.00E+06 3.00E+06 3.00E+06 2.00E+06 1.00E+06 1.00E+06 1.00E+06 1.00E+06 2.50E+07 2.50E+07 2.50E+07 2.50E+07 2.50E+07 2.50E+07 2.50E+07 5.00E+06 3.50E+07 1.50E+07 2.50E+07 5.00E+06 2.00E+06 5.00E+06 2.00E+06 3.00E+06 1.50E+06 1.50E+06 1.00E+06 1.00E+06 1.00E+06 1.00E+06 29 1.00E-08 1.00E-08 1.00E-08 1.00E-08 1.00E-07 1.00E-07 1.00E-07 1.00E-07 1.00E-12 1.00E-12 1.00E-11 1.00E-11 1.00E-10 1.00E-09 1.00E-09 1.00E-09 1.00E-12 1.00E-12 1.00E-11 1.00E-09 1.00E-09 1.00E-09 1.00E-09 1.00E-08 1.00E-08 1.00E-08 1.00E-07 1.00E-07 1.00E-07 1.00E-07 1.00E-08 1.00E-08 1.00E-08 1.00E-08 1.00E-07 1.00E-07 1.00E-07 1.00E-07 1.00E-12 1.00E-12 1.00E-11 1.00E-11 1.00E-10 1.00E-09 1.00E-09 1.00E-09 1.00E-12 1.00E-12 1.00E-11 1.00E-09 1.00E-09 1.00E-09 1.00E-09 1.00E-08 1.00E-08 1.00E-08 1.00E-07 1.00E-07 1.00E-07 1.00E-07 LatcyDn 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 LatcyUp 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 1.00E-03 ANSI/TIA-921-B The table below shows the names of the predefined access parameters, and the corresponding access parameters: Name w1 w2 w3 w4 w5 w6 w7 w8 p1_u1 p2_u2 p3_u3 p4_u4 p5_u5 p6_u6 p7_u7 core_only NumCoreSW 3 4 5 6 7 8 9 10 3 4 5 8 10 12 15 5 Latency 10.0E-3 25.0E-3 50.0E-3 75.0E-3 85.0E-3 100.0E-3 125.0E-3 150.0E-3 10.0E-3 25.0E-3 50.0E-3 75.0E-3 100.0E-3 200.0E-3 250.0E-3 100.0E-3 Speed 1.00E+09 1.00E+09 1.00E+09 1.00E+09 1.00E+09 1.00E+09 1.00E+09 1.00E+09 1.00E+09 1.00E+09 1.00E+09 1.00E+09 1.00E+09 1.00E+09 1.00E+09 1.00E+09 The next section of the parameter file specifies the input and output packet streams. PacketGenerators read input PCAP files and drive them into the simulation. PacketMonitors receive packets from elements within the simulation and saves them into PCAP format, and also saves delay and packet loss information. An example of this for test case Dp4 shown in the box on the following page: 30 # ===================================================================================================================== # Residual Bandwidth PCAP Stream Generators and Monitors # # PPM Rand Prio Repeat Name PIR PBS File Start BW # --------------------------------------------------------------------------------------------------------------------PCAP_Generator -1 PktGenPCAPFwdI7 HTTP_Down 0.0 0.40 0.0 0.0 7 PCAP_Monitor PktMonPCAPFwdI7 HTTP_Down # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PCAP_Generator 0.50 -1 0.0 0.0 PktGenPCAPRevI7 7 HTTP_Up 0.0 PCAP_Monitor PktMonPCAPRevI7 HTTP_Up_out # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PCAP_Generator 2.0 -1 0.25 ;# 0.473 Mb/s 0.0 0.0 PktGenPCAPFwdI9 7 P2P_Down PCAP_Monitor PktMonPCAPFwdI9 P2P_Down # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PCAP_Generator -1 ;# 0.384 Mb/s P2P_Up PktGenPCAPRevI9 2.0 1.35 0.0 0.0 7 PCAP_Monitor PktMonPCAPRevI9 P2P_Up # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PCAP_Generator -1 PktGenPCAPFwdI8 ipfax_v34_t38_fwd 0.0 1.0 0.0 0.0 7 PCAP_Monitor PktMonPCAPFwdI8 Fax_v34_t38_Fwd PCAP_Generator -1 PktGenPCAPRevI8 ipfax_v34_t38_rev 0.0 1.0 0.0 0.0 7 PCAP_Monitor PktMonPCAPRevI8 Fax_v34_t38_Rev # ===================================================================================================================== # Managed Bandwidth PCAP Stream Generators and Monitors # # Name File Start BW PPM Rand Prio Repeat PIR PBS # --------------------------------------------------------------------------------------------------------------------PCAP_Generator -1 PktGenPCAPFwdI1 voip_g729_fwd 2.0 1.0 0.0 0.0 1 PCAP_Monitor PktMonPCAPFwdI1 VoIP1_Fwd PCAP_Generator -1 PktGenPCAPRevI1 voip_g729_rev 2.0 1.0 0.0 0.0 1 PCAP_Monitor PktMonPCAPRevI1 VoIP1_Rev # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PCAP_Generator -1 ;# 2.0Mb/s PktGenPCAPFwdI4 SD_cbr 5.0 0.260 0.0 0.0 2 PCAP_Monitor PktMonPCAPFwdI4 SDTV1_Down # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PCAP_Generator -1 ;# 2.0Mb/s PktGenPCAPFwdI5 SD_vbr 5.0 0.361 0.0 0.0 2 PCAP_Monitor PktMonPCAPFwdI5 SDTV2_Down ANSI/TIA-921-B 31 ANSI/TIA-921-B The parameters for the input PCAP generators are specified in columns as shown above. The meanings of the columns is described briefly below Instance Name – the instance name of the generator. This depends on the specific top level simulation file. Filename – the file name of the input PCAP file. Assumes that the PCAP file is in the ./pcap subdirectory and has a .pcap suffix so neither of these needs to be specified in the parameter file. Start Delay – the relative delay, in seconds, before starting generator. Bandwidth Scale Factor – a scale factor that divides the relative timestamps in the PCAP file. A value of 1.0 makes no change to the timing of the packets. A value of 2.0 causes the packets to be transmitted twice as fast by dividing the timestamps in the PCAP file by 2.0. PPM offset – this is similar to the Bandwidth Scale Factor, but is expressed in units of parts per million. A value of 0 ppm makes no change to the rate at which packets are generated. A value of 100ppm reduces the timestamps in the PCAP file by 100 ppm, which causes the file to be transmitted 100 ppm faster than nominal. Randomness – this is a value from 0.0 to 1.0 that adds a percentage of randomness to the interpacket times. A value of 0.5 represents 50% randomness for inter-packet timing. For example, if the time between two consecutive packets in the PCAP file is 1 millisecond, and the randomness is 0.5, then the actual time between those two consecutive packets could be in the range 500 microsecond to 1.5 millisecond. Priority – this is the assigned priority of the packets Repeat Count – this is the number of times to repeat the PCAP file. A value of 0 or 1 means to play the file once, a value of two or more will play the file that many times, and a value of -1 will repeat the file forever. Shaper PIR and Shaper PBS – these parameters control a shaper that is built into the PacketGeneratorPCAP object. The PIR is the Peak Information Rate and is expressed in bits per second, so the value 10E6 represents 10 million bits per second. The PBS is the Peak Burst Size and is expressed in bits. Normally the PIR should be set safely above (e.g. 2.5x) the bit rate of a VBR video stream, unless the goal is to smooth out microbursts. 32 ANSI/TIA-921-B The Packet Monitors that write output PCAP files and “.out” files. There are only two parameters for the PCAP monitor command Instance Name – the instance name of the monitor. This depends on the specific top level simulation file. File Name – the base name of the output files. The output files will be placed into the same directory as the parameter file and will have suffixes .pcap and .out. Note that if a PCAP_Monitor line is commented out or not present, the output files will not be written. This is helpful in situations where only a subset of the output files is needed so that disk space can be saved. The simulation predefines two global variables for use by the TCL code in the parameter file $paramfile – this is the name of the parameter file $paramdir – this is the directory name of the parameter file $outdir – this is the output directory name, and is set based on $paramfile in common.tcl. 33 ANSI/TIA-921-B A.6 Running the simulation with convenience scripts Two convenience scripts are provided to help automate the process of running a simulation and plotting results. The first is a shell script to run one test case from the command line. To use this script, type the command: ./runone.ss Dw1 Similarly, there is a convenience shell script to run all test cases that match a given shell filename pattern. To use this script, type the command: ./runall.ss [GD]w[1-3] (this runs GPON and DSL well managed cases number 1 through 3). When the simulation is run, it prints a variety of messages to help the user understand what is happening. At the beginning of the simulation, it prints out information regarding the input PCAP files, and the output PCAP files. Then during the simulation, it prints some special characters to give an indication of simulation progress, specifically: A “.” is printed after every 100,000 events have been processed by the simulation dispatcher. This character indicates that the simulation is progressing A “D” is printed whenever a packet is dropped due to queue overflow An “E” is printed whenever a packet is lost due to a bit error on a wire (BER) An “^” (caret) is printed whenever a PCAP input file reaches the end and is restarted. This characters is always printed at the beginning of a line. An “X” is printed whenever a packet is dropped because it’s destination ID (address) is larger than the forwarding table in a Switch (this should never happen in a properly configured simulation) An “N” is printed whenever a packet is dropped because the forwarding rule in a Switch has no entry for the packet’s destination ID (address). 34 ANSI/TIA-921-B An example simulation output is shown below $ ./runone.ss Du1 + cd src + make + src/bin.debug/CORE2LAN tc/Dw1.param INFO: PacketMonitorPCAP saving CSV stats to out/Dw1/VoIP1_Fwd.out INFO: PacketMonitorPCAP saving PCAP output to out/Dw1/VoIP1_Fwd.pcap INFO: PacketMonitorPCAP saving CSV stats to out/Dw1/HDTV1_Down.out INFO: PacketMonitorPCAP saving PCAP output to out/Dw1/HDTV1_Down.pcap INFO: PacketMonitorPCAP saving CSV stats to out/Dw1/Fax_v34_t38_Fwd.out INFO: PacketMonitorPCAP saving PCAP output to out/Dw1/Fax_v34_t38_Fwd.pcap INFO: PacketMonitorPCAP saving CSV stats to out/Dw1/VoIP1_Rev.out INFO: PacketMonitorPCAP saving PCAP output to out/Dw1/VoIP1_Rev.pcap INFO: PacketMonitorPCAP saving CSV stats to out/Dw1/Fax_v34_t38_Rev.out INFO: PacketMonitorPCAP saving PCAP output to out/Dw1/Fax_v34_t38_Rev.pcap ..E...E.. ^..EE... ^.EE..E..EE. ^....E..E. ^E...EEE. ^......E..E. ^. ^ ^E.E ^..E....E ^.E..E.. ^... ^.... ^.E.EE..E.E.E.... ^. ^.E...E.E..EE.E.. ^ ^.E. ^.EE.E ^E..EE.E.EE.E.. ^...... ^.E.E. ^.. ^....E.E.E.E. ^ 35 ANSI/TIA-921-B A.7 Simulator Output All output files for test case tcname are placed in the ./out/tcname subdirectory. By placing the output results for each test case in their own directory, it is easier to keep them organized. By placing the outputs in a separate directory from the input parameter settings, the output results can be easily cleaned up, and it is easier to manage the parameter files. Output from the simulator is in the form of PCAP files and “.out” files. The PCAP files record the output packets along with their timestamps. Comparisons of input PCAP and output PCAP files can be performed to determine the effect of the impairment on, for example, video quality. The “.out” output files contain delay and packet loss information (in ASCII CSV format) about the simulation result. This information is also implicitly contained in the PCAP file, but because it is not possible to directly indicate packet delay or loss in a PCAP file, the “.out” files are helpful for post analysis. For example, because the “.out” files are in CSV format, they can be read into a spreadsheet programs for analysis. As described in the section above on the Parameter File, it is not necessary to save output for all of the streams being tested. This can be helpful in conserving disk space, as the output files can be quite large. 36 ANSI/TIA-921-B A.8 Plotting Results Scripts are also provided to create plots of packet delay/loss versus time from the “.out” files, as well as plots of packet delay variation (PDV). The script “runone.ss” automatically runs these scripts after running the simulator. These scripts are written in the “perl” language and depend upon the “gnuplot” utility. Therefore it is necessary to have both perl and gnuplot installed on the machine which will run the post-analysis. On Windows machines, this needs to be the cygwin version of gnuplot because the perl script pipes the gnuplot commands into gnuplot using a pipe. The version of gnuplot that is used is 4.2. To make a PNG plot of delay and packet loss from a “.out” file use the “out2png.pl” script. To run this script type the following command: ./src/out2png2.pl out/Dw1/HDTV1_Down.out To make a PNG plot of the PDV is a two step process. First calculate the histogram statistics using the “out2histo.pl” script, which creates a CSV file. This CSV file can then be plotted with the “histo2png.pl” script: ./src/out2histo.pl out/Dw1/HDTV1_Down.out > out/Dw1/HDTV1_Down-PDV.csv ./histo2png.pl tc/sev1/HDTV1_Down-PDV.csv 37 ANSI/TIA-921-B A.9 Simulator Internal Conventions A.9.1 Time Time in the simulator is represented in units of seconds, and with the type SimTime which is defined as double. A.9.2 Bits and Bytes Packets lengths are measured in units of Bytes, and variable names that contain byte quantities include the word “Bytes” in order to make it clear what the units are. In other places, bits are used (for example in burst sizes for the shaper). A.9.3 Bit rates Bit rates in the simulator are represented in units of bits per second, and with the type Bitrate_t which is defined as double. A.9.4 Priority Priority levels in the simulator are represented as integers, with smaller numbers representing higher priority packets. A.9.5 Addresses Endpoints in the simulation are assigned unique identifiers so that packets may be assigned a source and destination ID. The identifiers are relatively small integer values that serve the same function that L2 or L3 addresses would serve in a real network. Because the simulation model is much simpler than a real L2 or L3 network, and because efficiency of the simulation is important, these identifiers are used instead of actual L2 or L3 addresses. 38 ANSI/TIA-921-B A.10 Simulator Objects for Network Elements A.10.1 Packet A Packet object contains the data for a packet. The members of a Packet object are described briefly in the table below. Packet Transmit Timestamp Sequence Number Priority Source Node ID Destination Node ID Original Packet Length in bytes Next pointer (for PacketQueue) Payload Bytes For efficiency in the simulation, movement of packets is done by passing a pointer to a packet from one object to another. Usually a packet is constructed by a PacketGenerator from a PCAP file, and it is usually deleted when it is received by a PacketMonitor. However, packets can also be lost as a result of Physical link errors (BER) or as a result of Queue congestion. The Packet Object is derived from the MemRecycler base class. 39 ANSI/TIA-921-B A.10.2 Port Base Class Simulator objects such as a Switches or Wires have connection points called Ports. Port objects hold the information necessary to maintain a bidirectional connection between two ports. The transmit side of one port is connected to the receive side of another port at a specified bit rate. Usually the connection is symmetric, but in certain cases, connections can be asymmetric. One example of asymmetry occurs in a typical access link, where the downstream connection operates at a higher bit rate than the upstream connection. Another example of asymmetry occurs in the simulation for packet generation or monitoring, because a packet generator does not receive packets. Ports never exist as stand-alone entities. The Port base class is always used by derived port types for other objects, , such as WirePorts and SwitchPorts. When a port on derived object is created (such as on a Wire) that derived object defines the Receive action to take when a packet is received. However, the transmit action for a port is not known until two ports are connected together. Indeed, the notion of connecting two ports together is simply a matter of setting the TxAction pointer on one port to point to the Receive action on another port. The receive action associated with a port is actually a Functor object. Functors are described in more detail later in this document. The purpose of a functor in the Port object is to maintain two pointers: the first is a pointer to the function in the derived port type that will handle the received packet and the second is a pointer to the port itself, so that (for example) the function responsible for receiving packets can keep per-port queue information. Port TxAction pointer RxAction TxBitrate RxBitrate 40 ANSI/TIA-921-B A.10.3 Wire A Wire object represents a bidirectional physical connection between two network elements, such as switches, routers and firewalls. For each direction, a wire has two properties, delay and bit error rate. Tx BER[0] Delay[0] Wire Port[1] R x Wire Port[0] Wire BER[1] Delay[1] Tx R x The delay of a packet is given in seconds and is independent of bit rate. This makes sense, because for example, the bit rate of an optical fiber or of a twisted pair copper cable is not specified. Instead its physical properties such as propagation speed, bandwidth and loss. The bit rate of a connection is controlled by the endpoints to which it is connected. Wire WirePort[0] WirePort[1] OtherPort Pointer Delay BER TxAction pointer (inherited) RxAction (inherited) OtherPort Pointer Delay BER TxAction pointer (inherited) RxAction (inherited) The wire class also contains two static methods called receive and transmit. The RxAction functor is initialized with 1) a pointer to the receive method, and 2) a pointer to the associated WirePort. When a packet is received on a port, the receive method is called, and it is passed a pointer to the WirePort object as well as a pointer to the Packet. The receive function looks up the appropriate delay value and (assuming it is not lost due to BER) schedules it to be transmitted by telling the dispatcher enqueue an action for this packet at the appropriate time in the future. Packet loss due to BER is simulated as a function of packet size according to the following formula Pdrop = 1 – (1 - BER)PktLenBits It is important to note that unlike with a Queue, packets that are dropped due to BER cannot change the transmit time of subsequent packets over that wire. This makes sense because packet loss due to BER cannot be determined until the packet is received and checked (e.g. with frame checksum). The Wire object has two static methods: 41 ANSI/TIA-921-B 1. receive – receives packets and schedules forwarding 2. transmit – transmits them to the next port A.10.4 Switch A Switch object can represent any network element having two or more ports. The purpose of the Switch object is to model common characteristics of network elements, such as store and forward delay, queuing delay, and strict priority QoS. If a Switch object has just two ports, it can model a network element such as a firewall or modem. If a switch object has more than two ports, it can model a L2 switch or L3 router. A high level view of a switch object is shown below: Tx Switch Port[3] R x Forwarding Table DID Eport 100 0 101 0 10 1 11 1 12 1 13 DROP Tx Switch Port[2] Tx Switch Port[0] R x Switch Port[1] Switch (example with 4 ports) Tx Each SwitchPort within a switch contains one or more configurable egress queues. 42 R x R x ANSI/TIA-921-B Switch NumPorts Port[] MaxAddr FwdTable Id SwitchPort[0] SwitchPort[1] SwitchPort[2] MySwitch Pointer NumQueues Queue[] PortState (IDLE or ACTIVE) PortNum TxAction pointer (inherited) RxAction (inherited) MySwitch Pointer NumQueues Queue[] PortState (IDLE or ACTIVE) PortNum TxAction pointer (inherited) RxAction (inherited) MySwitch Pointer NumQueues Queue[] PortState (IDLE or ACTIVE) PortNum TxAction pointer (inherited) RxAction (inherited) The Switch object has three static methods: 1. receive – implements store/fwd delay and schedules forwarding 2. forward – implements forwarding decision and enqueues in the appropriate egress queue 3. transmit – read packets from highest priority non-empty egress queue and transmit them Like the Wire object, the switch object initializes the RxAction for each port with a receive function pointer and a pointer to the SwitchPort object. The receive method calculates the store and forward delay associated with each packet by dividing the packet length in bits by the ingress bit rate of the port. After the store and forward delay, the packet is ready to get a forwarding decision. This is implemented by scheduling an event to call the packet forwarding method after an appropriate store and forward delay, and passing pointers to both the switch object and the packet to the forwarding method. The forwarding method reads the DID (destination ID) of the packet and performs a lookup in the forwarding table. The forwarding table is statically pre-configured by the top-level simulation according to the simulation topology. If the DID is out of range, or if there is no forwarding rule for the specified address, the packet is dropped. Otherwise, the packet is enqueued in the appropriate egress queue (based on the priority of the packet and the availability of Queues). If the egress port is in the IDLE state, its state is changed to ACTIVE and the transmit method is called. 43 ANSI/TIA-921-B The transmit method examines the output queues and dequeues the highest priority available packet. It then performs the transmit action associated with that port and schedules itself to be called again after the serialization delay of the packet. If there are no packets available to transmit, the egress port marks itself as IDLE and does not schedule itself to be called again. This model of a switch can be extended in the future to incorporate other features found in more advanced network elements, such as more advanced QoS mechanisms. 44 ANSI/TIA-921-B A.10.5 PacketQueue A packet queue object represents a FIFO with limited depth. The elements of a packet queue are as follows: PacketQueue Head Pointer Tail Pointer Fullness (Bytes) MaxDepth (Bytes) The Head and Tail pointers are simply pointers to the first and last packet in the queue. Packets may be enqueued if there is enough space available in the queue to hold the packet. It is assumed that packets can be packed into the queue memory without wasting any memory. The packets in the queue are maintained as a conventional linked list. 45 ANSI/TIA-921-B A.11 Simulator Input and Output Objects A.11.1 PacketGeneratorPCAP The PacketGeneratorPCAP object reads packets from a PCAP file and drives them into the simulation. It is derived from a Port object. The following table shows the parameters, internal states and inherited members for it. PacketGeneratorPCAP Parameters Internal State Inherited Members Filename File pointer TxAction pointer SID / DID Sequence Number RxAction Start Delay LittleEndian TxBitrate Bandwidth Scale Factor NanoTime RxBitrate PPM Offset First Packet Timestamp Randomness Shaper State Priority Repeat Count Shaper PIR Shaper PBS Filename – the file name of the input PCAP file (may be relative or absolute). DID/SID – the source and destination ID of the packets that this PacketGeneratorPCAP sends. It has no relation to the actual addresses of the packets in the file. See the section on Address conventions for more information. Start Delay – the relative delay, in seconds, before starting generator. Bandwidth Scale Factor – a scale factor that divides the relative timestamps in the PCAP file. A value of 1.0 makes no change to the timing of the packets. A value of 2.0 causes the packets to be transmitted twice as fast by dividing the timestamps in the PCAP file by 2.0. 46 ANSI/TIA-921-B PPM offset – this is similar to the Bandwidth Scale Factor, but is expressed in units of parts per million. A value of 0 ppm makes no change to the rate at which packets are generated. A value of 100ppm reduces the timestamps in the PCAP file by 100 ppm, which causes the file to be transmitted 100 ppm faster than nominal. Randomness – this is a value from 0.0 to 1.0 that adds a percentage of randomness to the interpacket times. A value of 0.5 represents 50% randomness for inter-packet timing. What this means, is that if the time between two consecutive packets in the PCAP file is 1 millisecond, and the randomness is 0.5, then the actual time between those two consecutive packets could be in the range 500 microsecond to 1.5 millisecond. Priority – this is the assigned priority of the packets Repeat Count – this is the number of times to repeat the PCAP file. A value of 0 or 1 means to play the file once, a value of two or more will play the file that many times, and a value of -1 will repeat the file forever. Shaper PIR and Shaper PBS – these parameters control a shaper that is built into the PacketGeneratorPCAP object. The PIR is the Peak Information Rate and is expressed in bits per second, so the value 10E6 represents 10 million bits per second. The PBS is the Peak Burst Size and is expressed in bits. These options are useful if the PCAP file is has bursts or microbursts. 47 ANSI/TIA-921-B A.11.2 PacketMonitorPCAP The PacketMonitorPCAP object receives packets from a Switch and saves them to an output PCAP file, and also saves the delay and loss information for those packets to an ASCII CSV “.out” file. The following table shows the parameters, internal states and inherited members for it. PacketMonitorPCAP Parameters Internal State Inherited Members CSV File Name CSV File pointer TxAction pointer PCAP File Name PCAP File Pointer RxAction SID / DID Packet Count TxBitrate Description Last Seq Number RxBitrate CSV File Name – this is the name of the “.out” CSV file PCAP File Name – this is the name of the PCAP output file SID/DID – this is source and destination ID pair that this monitor should look for. It will ignore all packets that do not match the SID/DID that is configured. Description – this is a description of the output that is placed at the top of the “.out” file 48 ANSI/TIA-921-B A.11.3 “.out” File Format The “.out” file format is a standard ASCII CSV format with three columns. The first column is the simulation time in seconds that the packet was transmitted, the second column is usually Delay (usually in milliseconds, other units can be specified in the header) and the third column is usually a Drop flag (1 means drop, 0 means successful delivery). The delay units and column order can be changed by adjusting the column headings and the Delay Unit header field. The “.out” file has a header with additional information. An example is shown below: Source:,"TIA TR30.3: TIA-921B" Creation Date:,05/05/2010 Description:, out/tc/basename Content-Encoding :, ASCII Delay Unit:,ms Time, Delay, Drop 0.000000000,22.518541212,0 0.019323502,22.518541212,0 0.021047588,22.518541212,0 0.021869050,22.518541212,0 0.023355058,22.518541212,0 0.025128660,22.518541212,0 2.000000000,14.241843818,0 2.217940424,14.022805455,0 2.221329923,14.145793333,0 2.292414978,14.102274545,0 2.559969646,14.023562303,0 3.161421736,21.071927650,0 3.235437406,30.352536693,0 3.236295847,30.536035327,1 3.414751156,18.975278612,0 3.563506112,36.299552277,0 3.678545565,17.087872868,0 3.964892379,14.022805455,0 3.970588431,14.573034303,0 3.972389489,14.573034303,0 3.974369414,15.531071169,0 3.975693763,14.578600829,0 4.010895351,14.573034303,0 4.011520585,15.026588428,0 4.026753201,21.923139616,1 4.910704084,14.106815636,0 49 ANSI/TIA-921-B A.12 Other Base Classes A.12.1 MemRecycler MemRecycler is a template base class that overrides the default new and delete operators. The replacement new and delete operators maintain a stack of available memory buffers that can be very quickly O(1) accessed. If there are no buffers available in the linked list, then another one is obtained from malloc(). This strategy works well in situations where a few types of fixed size objects must be quickly created and destroyed for three reasons 1. It avoids the overhead of using malloc() for every allocation. For many situations, the MemRecycler object will reach a point where enough buffers of each type have been allocated and these buffers keep being reused for the remainder of program execution. 2. There is a separate stack for each template type, meaning that every element in the stack is exactly the right size. 3. The elements in the stack are used in LIFO order, which may help maintain locality of reference for efficient use of virtual memory and/or CPU cache. 50 ANSI/TIA-921-B A.13 Simulator Objects for Discrete Event Simulation A.13.1 Action An Action is simply a pointer to a function taking two void pointers. Example actions include the receive and transmit methods for Wire and Switch objects. typedef void (*Action)(void *, void *); A.13.2 Functor In this simulation, a Functor object is a combination of an Action pointer and an object pointer. The function call operator is overloaded in the Functor class, so that “calling” a Functor object with a void pointer results in invoking the function referred to by the Action pointer, and providing the object pointer as the first argument and the void pointer as the second argument. class Functor { public: Functor(Action action, void *arg1) : mAction(action), mArg1(arg1) { }; inline void operator()(void *arg2) { (*mAction)(mArg1,arg2); } private: Action mAction; void *mArg1; } The purpose of a functor is to encapsulate the function pointer and the first argument pointer for that function. This is a common way to mimic the behavior of a closure in C++. A.13.3 Event An Event object holds an action, the arguments for the Action and the time at which to execute the action. The purpose of an event is to encapsulate something that needs to happen at a time in the future. The event object is derived from the MemRecycler base class for efficiency reasons. Event objects have a Doit() method that invokes the specified Action with the specified arguments. 51 ANSI/TIA-921-B A.13.4 Dispatcher/Scheduler The Dispatcher object maintains a list of events in sorted order, with the soonest event first. Other objects in the simulator, such as Wires and Switches may schedule events by calling the Scheduler routines. There are two scheduler routines: 1. ScheduleAt – Schedules an event to occur at an absolute time in the future. This can be used to schedule events to occur at precise times that are not dependent on the current simulation time. 2. ScheduleIn – Schedules an event to occur at a relative time in the future. This can be used to schedule events to occur at a precise amount of time after the current simulator time. The event list maintained by the scheduler is held in a Red-Black tree. The initialization routine for the Dispatcher must be called early in the simulation to ensure that it is ready to receive events. This can be done with the following code Dispatcher::Initialize(); The dispatcher can be started in one of two ways: 1. RunTill(T) – Invokes the dispatcher to execute events until the time reaches T, or there are no more events to execute 2. RunFor(T) – Invokes the dispatcher to execute events for T seconds, or there are no more events to execute. When running, the dispatcher removes the event with the smallest time from the event list. If that event is at a time in the future, the Dispatcher sets the simulator’s current time to the time of that event and then it executes the event. At the end of a simulation, it is good practice to shut down the Dispatcher by calling the ShutDown method Dispatcher::ShutDown(); The dispatcher object is a singleton class. 52 ANSI/TIA-921-B A.13.5 Red-Black Tree As mentioned above, the Dispatcher keeps a list of Events in sorted order. It uses a Red-Black tree to do this. A Red-Black tree is a type of binary tree which is partially balanced. Specifically, the tree is balanced such that the in the worst case, the longest root-to-leaf path is no more than twice as long as the shortest root-to-leaf path. This ensures that insertion, deletion and other operations are always O(log N) in complexity. Because the worst case performance of operations on the Red-Black tree is guaranteed to be O(log N), and because the additional overhead of the self-balancing is relatively minor, Red-Black trees are well suited for a variety of applications, such as scheduling events. For more information on Red-Black trees, refer to http://en.wikipedia.org/wiki/Red-black_tree 53 ANSI/TIA-921-B A.14 Numbering conventions in the top Level Simulator (CORE2LAN.cpp) The general numbering convention for source ID and destination ID is to assign IDs from 1 to 50 to nodes in the core of the network, and to assign IDs from 100 to 150 to the Remote LAN network (inside the home). The reason for doing this is that it makes it easy to configure the forwarding tables inside the switches, routers, modems, firewalls etc within the simulation. There are 15 IDs in the core of the network IDs in the Network Core Name SRV1 SRV2 SRV3 SRV4 SRV5 SRV6 SRV7 SRV8 SRV9 SRV10 SRV11 SRV12 SRV13 SRV14 SRV15 ID 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Description Server 1 at CoreSw[0].Port(2) Server 2 at CoreSw[0].Port(3) Server 3 at CoreSw[0].Port(4) Server 4 at CoreSw[0].Port(5) Server 5 at CoreSw[0].Port(6) Server 6 at CoreSw[0].Port(7) Server 7 at CoreSw[0].Port(8) Server 8 at CoreSw[0].Port(9) Server 9 at CoreSw[0].Port(10) Server 10 at CoreSw[0].Port(11) Server 11 at CoreSw[0].Port(12) Server 12 at CoreSw[0].Port(13) Server 13 at CoreSw[0].Port(14) Server 14 at CoreSw[0].Port(15) Server 15 at CoreSw[0].Port(16) There are 15 IDs in the remote (home) network IDs in the Remote (Home) Name PC1 PC2 STB1 STB2 STB3 STB4 STB5 STB6 STB7 STB8 STB9 STB10 STB11 STB12 STB13 ID 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 Description Home PC #1 Home PC #2 Set Top Box #1 Set Top Box #2 Set Top Box #3 Set Top Box #4 Set Top Box #5 Set Top Box #6 Set Top Box #7 Set Top Box #8 Set Top Box #9 Set Top Box #10 Set Top Box #11 Set Top Box #12 Set Top Box #13 54 ANSI/TIA-921-B The assignment of PacketGenerator instance names to IDs is as follows: Packet Generator Instance Name to SID/DID Name SID DID PktGenPCAPFwdI1 PktGenPCAPFwdI2 PktGenPCAPFwdI3 PktGenPCAPFwdI4 PktGenPCAPFwdI5 PktGenPCAPFwdI6 PktGenPCAPFwdI7 PktGenPCAPFwdI8 PktGenPCAPFwdI9 PktGenPCAPFwdI10 PktGenPCAPFwdI11 PktGenPCAPFwdI12 PktGenPCAPFwdI13 PktGenPCAPFwdI14 PktGenPCAPFwdI15 SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) PC1 (101) PC2 (102) STB1 (103) STB2 (104) STB3 (105) STB4 (106) STB5 (107) STB6 (108) STB7 (109) STB8 (110) STB8 (110) STB8 (110) STB8 (110) STB8 (110) STB8 (110) The assignment of PacketMonitor instance names to IDs is as follows: Packet Monitor Instance Name to SID/DID Name SID DID PktMonPCAPFwdI1 PktMonPCAPFwdI2 PktMonPCAPFwdI3 PktMonPCAPFwdI4 PktMonPCAPFwdI5 PktMonPCAPFwdI6 PktMonPCAPFwdI7 PktMonPCAPFwdI8 PktMonPCAPFwdI9 PktMonPCAPFwdI10 SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) SRV1 (10) PC1 (101) PC2 (102) STB1 (103) STB2 (104) STB3 (105) STB4 (106) STB5 (107) STB6 (108) STB7 (109) STB8 (110) 55 ANSI/TIA-921-B A.15 File List The following is a list of files that make up the simulator from the top level directory “./”. There are four primary subdirectories of sim, namely the pcap input files, the simulator source code, the test case parameter files (tc) and the output results directory. ./pcap ./src ./tc ./out Within the top level “./” directory, there are also two convenience scripts for running the simulator, as described earlier: ./runall.ss ./runone.ss The simulator input PCAP files are in the pcap/ subdirectory. Since these files are large, they are typically distributed separately from the model source code, and often the pcap subdirectory is a soft-link to a separate directory. Here is a list of typical input PCAP files. pcap/HD_cbr.pcap pcap/HD_vbr.pcap pcap/SD_cbr.pcap pcap/SD_vbr.pcap pcap/P2P_Down.pcap pcap/P2P_Up.pcap pcap/OTT1_Down.pcap pcap/OTT1_Up.pcap pcap/OTT2_Down.pcap pcap/OTT2_Up.pcap pcap/voip_g729_fwd.pcap pcap/voip_g729_rev.pcap pcap/ipfax_v34_t38_fwd.pcap pcap/ipfax_v34_t38_rev.pcap The C++ and C source code is in the sim/src directory: ./src/Action.h ./src/Bitrate.h ./src/CORE2LAN.cpp ./src/CORE2LAN_Defaults.h ./src/Clock.cpp ./src/Clock.h ./src/Dispatcher.cpp ./src/Dispatcher.h ./src/Event.cpp ./src/Event.h 56 ANSI/TIA-921-B ./src/Functor.h ./src/Makefile ./src/MemRecycler.h ./src/PCAP.h ./src/Packet.cpp ./src/Packet.h ./src/PacketGenerator.cpp ./src/PacketGenerator.h ./src/PacketGeneratorPCAP.cpp ./src/PacketGeneratorPCAP.h ./src/PacketMonitor.cpp ./src/PacketMonitor.h ./src/PacketMonitorPCAP.cpp ./src/PacketMonitorPCAP.h ./src/PacketQueue.cpp ./src/PacketQueue.h ./src/PacketRO.cpp ./src/PacketRO.h ./src/Port.cpp ./src/Port.h ./src/SimParam.cpp ./src/SimParam.h ./src/Switch.cpp ./src/Switch.h ./src/Wire.cpp ./src/Wire.h ./src/bin.debug ./src/bin.debug/CORE2LAN.exe ./src/histo2png.pl ./src/out2histo.pl ./src/out2png2.pl ./src/proc.info.pl ./src/redblack.c ./src/redblack.h Within the source subdirectory there are several plotting utilities written in Perl ./src/histo2png.pl ./src/out2histo.pl ./src/out2png2.pl The individual test case parameter files are in the sim/tc directory.: ./tc/Dp1.param ./tc/Dp2.param ./tc/Dp3.param ./tc/Dp4.param ./tc/Dp5.param ./tc/Dp6.param 57 ANSI/TIA-921-B ./tc/Dp7.param ./tc/Du1.param ./tc/Du2.param ./tc/Du3.param ./tc/Du4.param ./tc/Du5.param ./tc/Du6.param ./tc/Du7.param ./tc/Dw1.param ./tc/Dw2.param ./tc/Dw3.param ./tc/Dw4.param ./tc/Dw5.param ./tc/Dw6.param ./tc/Dw7.param ./tc/Dw8.param ./tc/Gp1.param ./tc/Gp2.param ./tc/Gp3.param ./tc/Gp4.param ./tc/Gp5.param ./tc/Gp6.param ./tc/Gp7.param ./tc/Gu1.param ./tc/Gu2.param ./tc/Gu3.param ./tc/Gu4.param ./tc/Gu5.param ./tc/Gu6.param ./tc/Gu7.param ./tc/Gw1.param ./tc/Gw2.param ./tc/Gw3.param ./tc/Gw4.param ./tc/Gw5.param ./tc/Gw6.param ./tc/Gw7.param ./tc/Gw8.param ./tc/core.param When a test case is run a log file of results is maintained in the info.log file. This is mainly for regression testing the simulation. ./info.log The output results for each test case are placed in a subdirectory of the “sim/out” directory. For each PacketMonitorPCAP that Is configured in the parameter file, there is an output PCAP file and an output “.out” file (described below). The scripts for automatically running the simulation and postprocesses 58 ANSI/TIA-921-B create plots of delay/jitter and packet loss versus time and also plot a histogram of delay. The plots are in PNG format. ./out/Dw1 ./out/Dw1/Dw1-Fax_v34_t38_Fwd-PDV.png ./out/Dw1/Dw1-Fax_v34_t38_Fwd.png ./out/Dw1/Dw1-Fax_v34_t38_Rev-PDV.png ./out/Dw1/Dw1-Fax_v34_t38_Rev.png ./out/Dw1/Dw1-HDTV1_Down-PDV.png ./out/Dw1/Dw1-HDTV1_Down.png ./out/Dw1/Dw1-VoIP1_Fwd-PDV.png ./out/Dw1/Dw1-VoIP1_Fwd.png ./out/Dw1/Dw1-VoIP1_Rev-PDV.png ./out/Dw1/Dw1-VoIP1_Rev.png ./out/Dw1/Fax_v34_t38_Fwd-PDV.csv ./out/Dw1/Fax_v34_t38_Fwd.out ./out/Dw1/Fax_v34_t38_Fwd.pcap ./out/Dw1/Fax_v34_t38_Rev-PDV.csv ./out/Dw1/Fax_v34_t38_Rev.out ./out/Dw1/Fax_v34_t38_Rev.pcap ./out/Dw1/HDTV1_Down-PDV.csv ./out/Dw1/HDTV1_Down.out ./out/Dw1/HDTV1_Down.pcap ./out/Dw1/VoIP1_Fwd-PDV.csv ./out/Dw1/VoIP1_Fwd.out ./out/Dw1/VoIP1_Fwd.pcap ./out/Dw1/VoIP1_Rev-PDV.csv ./out/Dw1/VoIP1_Rev.out ./out/Dw1/VoIP1_Rev.pcap ./out/Dw1/info.log ./tc/common.tcl There are two convenience scripts to help run the simulation and plot results runcl.ss runcl_plotone.ss A.16 Common TCL file There is one TCL support file that helps with setting up simulation parameters ./tc/common.tcl The common TCL support file “common.tcl” helps simplify the process of setting variables for the PCAP generators and monitors. The first thing that the common.tcl file does is create the output directory and set the variable $outdir 59 ANSI/TIA-921-B # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Create the output directory # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - set outroot "out" set outdir [file join $outroot [file rootname [file tail $paramfile]]] file mkdir $outdir The next routine “gset” is a general purpose routine for setting a global variable # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # gset -- set a variable at global scope # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - proc gset {name value} { upvar \#0 $name $name set $name $value } The next routine defines parameters for a PCAP generator # - - - - - - - - # Define parameters # - - - - - - - - proc PCAP_Generator if if if if if if if if {$start {$bwscale {$ppm {$rand {$prio {$rept {$PIR {$PBS != != != != != != != != - - for a - - {name {rand ""} ""} ""} ""} ""} ""} ""} ""} { { { { { { { { - - - - - - - - - - - - - - - - - - - PCAP Generator - - - - - - - - - - - - - - - - - - - file {start ""} {bwscale ""} {ppm ""} \ ""} {prio ""} {rept ""} {PIR ""} {PBS ""}} { gset ${name}_FileName "pcap/$file.pcap" gset ${name}_StartDelay $start } gset ${name}_BW_Scale $bwscale } gset ${name}_PPM_Offset $ppm } gset ${name}_Randomness $rand } gset ${name}_Priority $prio } gset ${name}_RepeatCnt $rept } gset ${name}_ShaperPIR $PIR } gset ${name}_ShaperPBS $PBS } } The next routine defines parameters for a PCAP monitor # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Define parameters for a PCAP Monitor # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - proc PCAP_Monitor {name file} { global outdir gset ${name}_OutFileName "$outdir/$file.out" gset ${name}_PCAPFileName "$outdir/$file.pcap" } 60 ANSI/TIA-921-B The next routines help to set network parameters for the access link # - - - - - - - - - - - - - - - - - - - - - - - - - - # Set Global Vars for Access Link Parameters # - - - - - - - - - - - - - - - - - - - - - - - - - - proc _Access_Params {name {SpeedDown ""} {SpeedUp ""} {BER_Fwd ""} {BER_Rev ""} {LatencyDown ""} {LatencyUp ""}} { if {$SpeedDown != ""} { gset ${name}_SpeedDown if {$SpeedUp != ""} { gset ${name}_SpeedUp if {$BER_Fwd != ""} { gset ${name}_BER_Fwd if {$BER_Rev != ""} { gset ${name}_BER_Rev if {$LatencyDown != ""} { gset ${name}_LatencyDown if {$LatencyUp != ""} { gset ${name}_LatencyUp if {$ReorderProb != ""} { gset RO_Fwd_Prob if {$ReorderProb != ""} { gset RO_Rev_Prob } - - - - - - - - - $SpeedDown $SpeedUp $BER_Fwd $BER_Rev $LatencyDown $LatencyUp $ReorderProb $ReorderProb } } } } } } } } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Select a set of access link parameters based on name # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - proc Set_Access_Params {paramset} { # Node SpdDn SpdUp BER_Fwd BER_Rev LatcyDn LatcyUp if {$paramset == "dsl_w1"} { _Access_Params RACC 33e6 3e6 1e-8 1e-8 1e-3 1e-3 } elseif {$paramset == "dsl_w2"} { _Access_Params RACC 33e6 3e6 1e-8 1e-8 1e-3 1e-3 } elseif {$paramset == "dsl_w3"} { _Access_Params RACC 33e6 3e6 1e-8 1e-8 1e-3 1e-3 } elseif {$paramset == "dsl_w4"} { _Access_Params RACC 22e6 2e6 1e-8 1e-8 1e-3 1e-3 } elseif {$paramset == "dsl_w5"} { _Access_Params RACC 16e6 1e6 1e-7 1e-7 1e-3 1e-3 } elseif {$paramset == "dsl_w6"} { _Access_Params RACC 16e6 1e6 1e-7 1e-7 1e-3 1e-3 } elseif {$paramset == "dsl_w7"} { _Access_Params RACC 16e6 1e6 1e-7 1e-7 1e-3 1e-3 } elseif {$paramset == "dsl_w8"} { _Access_Params RACC 10e6 1e6 1e-7 1e-7 1e-3 1e-3 } elseif {$paramset == "pon_w1"} { _Access_Params RACC 50e6 25e6 1e-12 1e-12 1e-3 1e-3 } elseif {$paramset == "pon_w2"} { _Access_Params RACC 50e6 25e6 1e-12 1e-12 1e-3 1e-3 } elseif {$paramset == "pon_w3"} { _Access_Params RACC 35e6 25e6 1e-11 1e-11 1e-3 1e-3 } elseif {$paramset == "pon_w4"} { _Access_Params RACC 35e6 25e6 1e-11 1e-11 1e-3 1e-3 } elseif {$paramset == "pon_w5"} { _Access_Params RACC 25e6 25e6 1e-10 1e-10 1e-3 1e-3 } elseif {$paramset == "pon_w6"} { _Access_Params RACC 25e6 25e6 1e-9 1e-9 1e-3 1e-3 } elseif {$paramset == "pon_w7"} { _Access_Params RACC 25e6 25e6 1e-9 1e-9 1e-3 1e-3 } elseif {$paramset == "pon_w8"} { _Access_Params RACC 15e6 5e6 1e-9 1e-9 1e-3 1e-3 } elseif {$paramset == "pon_p1_u1"} { _Access_Params RACC 35e6 35e6 1e-12 1e-12 1e-3 1e-3 } elseif {$paramset == "pon_p2_u2"} { _Access_Params RACC 35e6 15e6 1e-12 1e-12 1e-3 1e-3 } elseif {$paramset == "pon_p3_u3"} { _Access_Params RACC 25e6 25e6 1e-11 1e-11 1e-3 1e-3 } elseif {$paramset == "pon_p4_u4"} { _Access_Params RACC 15e6 5e6 1e-9 1e-9 1e-3 1e-3 } elseif {$paramset == "pon_p5_u5"} { _Access_Params RACC 5e6 2e6 1e-9 1e-9 1e-3 1e-3 } elseif {$paramset == "pon_p6_u6"} { _Access_Params RACC 15e6 5e6 1e-9 1e-9 1e-3 1e-3 } elseif {$paramset == "pon_p7_u7"} { _Access_Params RACC 5e6 2e6 1e-9 1e-9 1e-3 1e-3 } elseif {$paramset == "dsl_p1_u1"} { _Access_Params RACC 24e6 3.0e6 1e-8 1e-8 1e-3 1e-3 } elseif {$paramset == "dsl_p2_u2"} { _Access_Params RACC 18e6 1.5e6 1e-7 1e-7 1e-3 1e-3 } elseif {$paramset == "dsl_p3_u3"} { _Access_Params RACC 12e6 1.5e6 1e-7 1e-7 1e-3 1e-3 } elseif {$paramset == "dsl_p4_u4"} { _Access_Params RACC 6e6 1.0e6 1e-6 1e-6 1e-3 1e-3 } elseif {$paramset == "dsl_p5_u5"} { _Access_Params RACC 3e6 1.0e6 1e-6 1e-6 1e-3 1e-3 } elseif {$paramset == "dsl_p6_u6"} { _Access_Params RACC 6e6 1.0e6 1e-6 1e-6 1e-3 1e-3 } elseif {$paramset == "dsl_p7_u7"} { _Access_Params RACC 3e6 1.0e6 1e-6 1e-6 1e-3 1e-3 } elseif {$paramset == "core_only"} { _Access_Params RACC 1e9 1e9 1e-12 1e-12 0 0 } else { error "ERROR: Invalid Net_Param name $paramset." } } 61 ANSI/TIA-921-B The next routines help to set network parameters for the core # - - - - - - - # Set Global Vars # - - - - - - - proc _Core_Params if {$numsw if {$Latency if {$Speed - - - - - - - - - - - - - - - - - - - - - - - for Access Link Parameters - - - - - - - - - - - - - - - - - - - - - - - {{numsw ""} {Latency ""} {Speed ""}} { != ""} { gset NumCoreSW $numsw } != ""} { gset CORE_Latency $Latency } != ""} { gset CORE_Speed $Speed } } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Select a set of core parameters based on name # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - proc Set_Core_Params {paramset} { # NumCoreSW if {$paramset == "w1"} { _Core_Params 3 } elseif {$paramset == "w2"} { _Core_Params 4 } elseif {$paramset == "w3"} { _Core_Params 5 } elseif {$paramset == "w4"} { _Core_Params 6 } elseif {$paramset == "w5"} { _Core_Params 7 } elseif {$paramset == "w6"} { _Core_Params 8 } elseif {$paramset == "w7"} { _Core_Params 9 } elseif {$paramset == "w8"} { _Core_Params 10 } } } } } } } elseif elseif elseif elseif elseif elseif elseif {$paramset {$paramset {$paramset {$paramset {$paramset {$paramset {$paramset == == == == == == == "p1_u1"} "p2_u2"} "p3_u3"} "p4_u4"} "p5_u5"} "p6_u6"} "p7_u7"} { { { { { { { _Core_Params _Core_Params _Core_Params _Core_Params _Core_Params _Core_Params _Core_Params } elseif {$paramset == "core_only"} { _Core_Params } else { error "ERROR: Invalid Net_Param name $paramset." } } # - - - - - - - - - - - - - - - # Other Misc parameter settings # - - - - - - - - - - - - - - - set CORESW_BufSizeBytes [expr set DSLAM_BufSizeBytes [expr set Firewall_BufSizeBytes [expr set Modem_BufSizeBytes [expr set RLAN_Speed 65*1518] 65*1518] 65*1518] 65*1518] 100E6 # - - - - - - - - - - - - - - - # Set Default Simulation length # - - - - - - - - - - - - - - - set SimLengthSeconds [expr 10*60] 62 3 4 5 8 10 12 15 5 Latency 10e-3 25e-3 50e-3 75e-3 85e-3 100e-3 125e-3 150e-3 Speed 1e9 1e9 1e9 1e9 1e9 1e9 1e9 1e9 10e-3 25e-3 50e-3 75e-3 100e-3 200e-3 250e-3 1e9 1e9 1e9 1e9 1e9 1e9 1e9 100e-3 1e9 ANSI/TIA-921-B Annex B (Normative) – C++ Source Code of Discrete Event Simulator The C++ source code of the simulator is included in folder ./src of the electronic attachment, Annex F 63 ANSI/TIA-921-B Annex C (Normative) – Packet Capture Files of Interfering Traffic Table C.1 lists the pcap files used in the standard test cases. These files are included in folder ./pcap in the electronic attachment, Annex F. Table C.1: PCAP Files of Interfering Traffic QoS PCAP File Avg Packet Avg Bit Data Size Packets Duration Pkt Rate Rate Size 2 HD_cbr 275756340 201282 142 1370 2 HD_vbr 196918938 143737 142 1370 2 SD_cbr 274844350 200617 285 1370 2 7 SD_vbr OTT1_Down 197616080 119929381 144246 79619 285 1370 144 1506 7 7 OTT1_Up OTT2_Down 1777873 110344529 32832 73522 144 54 331 1501 7 7 OTT2_Up P2P_Down 2100467 34546941 36356 30000 332 58 147 1152 7 7 P2P_Up HTTP_Down 5412102 27377604 25500 20000 152 212 138 1369 7 7 7 1 1 HTTP_Up ipfax_v34_t38_fwd ipfax_v34_t38_rev voip_g729_fwd voip_g729_rev 1451588 53619 31376 603120 602784 15000 278 156 7180 7176 176 49 46 215 215 97 193 201 84 84 5s peak 1s peak Description High Definition IPTV Flow, Constant Bit 1419 15555964 15558816 15574160 Rate High Definition IPTV Flow, Variable Bit 1014 11112049 13112544 18555280 Rate Standard Definition IPTV Flow, Constant Bit 703 7702130 7704880 7715840 Rate Standard Definition IPTV Flow, Variable Bit 507 5553410 6608880 8789920 Rate 554 6678690 7160352 7327760 Progressive Downloaded Over-TheTop High Definition 229 99008 115257 121824 Video 222 2662988 12364163 13938272 Adaptively Streamed Over-theTop Standard Definition 110 50663 229643 272608 Video 205 1885957 3261356 3903608 Peer-to-Peer File Download 168 285154 530008 703416 and Sharing 145 1582495 2167475 4646512 Web Browser 85 65997 89577 193624 Transactions 6 8809 50820 88000 Fax-over-IP 3 5468 45320 85600 33 22406 22444 22848 G.729 Voice33 22403 22444 22848 over-IP The following plots show the bit rate of each pcap stream averaged over 1 second and 5 second non-overlapping windows. 64 ANSI/TIA-921-B Figure C.1: IPTV HD Input PCAP Bandwidth Figure C.2: IPTV SD Input PCAP Bandwidth 65 ANSI/TIA-921-B Figure C.3: Progressive Download OTT HD Input PCAP Bandwidth Figure C.4: Adaptive Streaming OTT SD Input PCAP Bandwidth 66 ANSI/TIA-921-B Figure C.5: Peer-to-Peer Input PCAP Bandwidth Figure C.6: HTTP Input PCAP Bandwidth 67 ANSI/TIA-921-B Figure C.7: Fax over IP Input PCAP Bandwidth Figure C.8: Voice over IP Input PCAP Bandwidth 68 ANSI/TIA-921-B Annex D (Normative) – Simulator Output Simulation results are found in the ./out directory of the model directory of the electronic attachment, Annex F. The simulation control scripts generate result files with the following naming conventions: The results for each test case are found in a separate directory with the name of the test case. Each monitor specified in the test case represents a particular flow. Files are generated as follows: $TC - test case name (./tc/$TC.param). These match the column headings in Table 6, Table 7, and Table 8. $FLOW - name of monitor/flow in test case. These match the PCAP file names listed in Annex E. ./out/ ./out/$TC/ ./out/$TC/$FLOW.pcap ./out/$TC/$FLOW.out ./out/$TC/$FLOW-PDV.csv ./out/$TC/$TC-$FLOW.png ./out/$TC/$TC-$FLOW-PDV.png Simulation results directory Test case $TC directory Output .pcap file of flow Output .out delay-loss schedule Packet Delay Variation (PDV) file Time series plot of .out file PDV plot of delay-loss file Table E.1 summarizes these simulation results. Each row in the spreadsheet corresponds to a specific flow of a specific test case. Each flow results in the five files indicated above. 69 ANSI/TIA-921-B Annex E (Normative) – Simulation Results Summary Table E.1 is a summary of simulation results. Each row of the table represents a single flow of a test case. The table has been sorted by flow so that the behavior can be observed across a flow type with increasing impairment severity. The coloration is an indication of the test profile (green - well managed, yellow - partially managed, red - unmanaged). Description of columns: Case File n1 min max drop seq drop % seq % max-min - test case name - output file name root (flow) - number of packets - min delay (ms) - max delay (ms) - total number of packets lost - number of packets lost in sequential events - total percentage of packets lost - percentage of packets lost sequentially - peak delay variation (ms) Table E.1: Simulation Results Summary Case File (Flow) n1 min max drop seq drop % seq % max-min core Fax_v34_t38_Fwd 1721 101.00 101.19 0 0 0.000% 0.000% 0.19 Dp1 Fax_v34_t38_Fwd 2372 12.03 39.27 1 0 0.042% 0.000% 27.25 Dp2 Fax_v34_t38_Fwd 2368 27.03 87.38 5 4 0.210% 0.168% 60.35 Dp3 Fax_v34_t38_Fwd 2364 52.05 174.78 9 2 0.378% 0.084% 122.73 Dp4 Fax_v34_t38_Fwd 2346 77.09 782.76 27 13 1.134% 0.546% 705.67 Dp5 Fax_v34_t38_Fwd 2285 102.17 4131.36 88 74 3.697% 3.109% 4029.19 Dp6 Fax_v34_t38_Fwd 2345 202.09 907.81 28 13 1.176% 0.546% 705.72 Du1 Fax_v34_t38_Fwd 2373 12.03 45.01 0 0 0.000% 0.000% 32.98 Du2 Fax_v34_t38_Fwd 2367 27.03 72.11 6 0 0.252% 0.000% 45.08 Du3 Fax_v34_t38_Fwd 2352 52.05 119.51 21 14 0.882% 0.588% 67.46 Du4 Fax_v34_t38_Fwd 2303 77.09 212.54 70 42 2.941% 1.765% 135.45 Du5 Fax_v34_t38_Fwd 2296 102.17 372.74 77 46 3.235% 1.933% 270.57 Du6 Fax_v34_t38_Fwd 2305 202.09 337.59 68 45 2.857% 1.891% 135.50 Du7 Fax_v34_t38_Fwd 2300 252.17 522.80 73 46 3.067% 1.933% 270.63 Dw1 Fax_v34_t38_Fwd 2373 12.02 12.71 0 0 0.000% 0.000% 0.69 Dw2 Fax_v34_t38_Fwd 2373 27.02 27.87 0 0 0.000% 0.000% 0.84 Dw3 Fax_v34_t38_Fwd 2373 52.02 70.22 0 0 0.000% 0.000% 18.19 Dw4 Fax_v34_t38_Fwd 2373 77.03 79.25 0 0 0.000% 0.000% 2.22 Dw5 Fax_v34_t38_Fwd 2372 87.04 89.33 1 0 0.042% 0.000% 2.29 Dw6 Fax_v34_t38_Fwd 2372 102.04 152.66 1 0 0.042% 0.000% 50.62 Dw7 Fax_v34_t38_Fwd 2373 127.04 177.67 0 0 0.000% 0.000% 50.63 Dw8 Fax_v34_t38_Fwd 2373 152.06 156.28 0 0 0.000% 0.000% 4.22 70 ANSI/TIA-921-B Case File (Flow) n1 min max drop seq drop % seq % max-min Gp1 Fax_v34_t38_Fwd 2373 12.02 20.74 0 0 0.000% 0.000% 8.72 Gp2 Fax_v34_t38_Fwd 2373 27.02 35.75 0 0 0.000% 0.000% 8.73 Gp3 Fax_v34_t38_Fwd 2373 52.03 89.20 0 0 0.000% 0.000% 37.17 Gp4 Fax_v34_t38_Fwd 2373 77.04 103.92 0 0 0.000% 0.000% 26.88 Gp5 Fax_v34_t38_Fwd 2373 102.11 273.69 0 0 0.000% 0.000% 171.58 Gp6 Fax_v34_t38_Fwd 2373 202.04 228.97 0 0 0.000% 0.000% 26.92 Gu1 Fax_v34_t38_Fwd 2373 12.02 19.19 0 0 0.000% 0.000% 7.17 Gu2 Fax_v34_t38_Fwd 2373 27.02 38.64 0 0 0.000% 0.000% 11.62 Gu3 Fax_v34_t38_Fwd 2373 52.03 76.25 0 0 0.000% 0.000% 24.23 Gu4 Fax_v34_t38_Fwd 2373 77.04 112.56 0 0 0.000% 0.000% 35.52 Gu5 Fax_v34_t38_Fwd 2341 102.11 264.16 32 16 1.345% 0.672% 162.06 Gu6 Fax_v34_t38_Fwd 2373 202.04 237.61 0 0 0.000% 0.000% 35.56 Gu7 Fax_v34_t38_Fwd 2339 252.11 414.23 34 16 1.429% 0.672% 162.12 Gw1 Fax_v34_t38_Fwd 2373 12.02 12.50 0 0 0.000% 0.000% 0.48 Gw2 Fax_v34_t38_Fwd 2373 27.02 27.62 0 0 0.000% 0.000% 0.60 Gw3 Fax_v34_t38_Fwd 2373 52.02 54.88 0 0 0.000% 0.000% 2.86 Gw4 Fax_v34_t38_Fwd 2373 77.02 78.17 0 0 0.000% 0.000% 1.15 Gw5 Fax_v34_t38_Fwd 2373 87.03 88.16 0 0 0.000% 0.000% 1.13 Gw6 Fax_v34_t38_Fwd 2373 102.03 103.94 0 0 0.000% 0.000% 1.91 Gw7 Fax_v34_t38_Fwd 2373 127.03 128.95 0 0 0.000% 0.000% 1.92 Gw8 Fax_v34_t38_Fwd 2373 152.04 153.50 0 0 0.000% 0.000% 1.46 core Fax_v34_t38_Rev 1267 101.00 101.46 0 0 0.000% 0.000% 0.46 Dp1 Fax_v34_t38_Rev 1708 12.03 12.39 0 0 0.000% 0.000% 0.36 Dp2 Fax_v34_t38_Rev 1707 27.03 31.17 1 0 0.058% 0.000% 4.14 Dp3 Fax_v34_t38_Rev 1708 52.05 59.19 0 0 0.000% 0.000% 7.14 Dp4 Fax_v34_t38_Rev 1706 77.09 93.24 2 0 0.117% 0.000% 16.15 Dp5 Fax_v34_t38_Rev 1707 102.17 138.30 1 0 0.058% 0.000% 36.13 Dp6 Fax_v34_t38_Rev 1707 202.09 217.74 1 0 0.058% 0.000% 15.65 Du1 Fax_v34_t38_Rev 1708 12.03 12.39 0 0 0.000% 0.000% 0.36 Du2 Fax_v34_t38_Rev 1708 27.03 31.17 0 0 0.000% 0.000% 4.14 Du3 Fax_v34_t38_Rev 1708 52.05 59.19 0 0 0.000% 0.000% 7.14 Du4 Fax_v34_t38_Rev 1698 77.09 93.24 10 0 0.583% 0.000% 16.15 Du5 Fax_v34_t38_Rev 1703 102.17 138.70 5 0 0.292% 0.000% 36.53 Du6 Fax_v34_t38_Rev 1706 202.09 218.66 2 0 0.117% 0.000% 16.56 Du7 Fax_v34_t38_Rev 1706 252.17 288.71 2 0 0.117% 0.000% 36.53 Dw1 Fax_v34_t38_Rev 1708 12.02 12.31 0 0 0.000% 0.000% 0.29 Dw2 Fax_v34_t38_Rev 1708 27.02 27.32 0 0 0.000% 0.000% 0.30 Dw3 Fax_v34_t38_Rev 1708 52.02 52.33 0 0 0.000% 0.000% 0.30 Dw4 Fax_v34_t38_Rev 1708 77.03 77.44 0 0 0.000% 0.000% 0.41 Dw5 Fax_v34_t38_Rev 1707 87.04 87.56 1 0 0.058% 0.000% 0.52 71 ANSI/TIA-921-B Case File (Flow) n1 min max drop seq drop % seq % max-min Dw6 Fax_v34_t38_Rev 1707 102.04 102.57 1 0 0.058% 0.000% 0.53 Dw7 Fax_v34_t38_Rev 1707 127.04 127.58 1 0 0.058% 0.000% 0.54 Dw8 Fax_v34_t38_Rev 1708 152.06 152.84 0 0 0.000% 0.000% 0.78 Gp1 Fax_v34_t38_Rev 1708 12.02 12.30 0 0 0.000% 0.000% 0.28 Gp2 Fax_v34_t38_Rev 1708 27.02 29.25 0 0 0.000% 0.000% 2.23 Gp3 Fax_v34_t38_Rev 1708 52.03 54.98 0 0 0.000% 0.000% 2.95 Gp4 Fax_v34_t38_Rev 1708 77.04 82.76 0 0 0.000% 0.000% 5.71 Gp5 Fax_v34_t38_Rev 1708 102.11 121.94 0 0 0.000% 0.000% 19.83 Gp6 Fax_v34_t38_Rev 1708 202.04 208.18 0 0 0.000% 0.000% 6.13 Gu1 Fax_v34_t38_Rev 1708 12.02 12.30 0 0 0.000% 0.000% 0.28 Gu2 Fax_v34_t38_Rev 1708 27.02 29.25 0 0 0.000% 0.000% 2.23 Gu3 Fax_v34_t38_Rev 1708 52.03 54.98 0 0 0.000% 0.000% 2.95 Gu4 Fax_v34_t38_Rev 1708 77.04 82.76 0 0 0.000% 0.000% 5.71 Gu5 Fax_v34_t38_Rev 1708 102.11 121.94 0 0 0.000% 0.000% 19.83 Gu6 Fax_v34_t38_Rev 1708 202.04 208.18 0 0 0.000% 0.000% 6.13 Gu7 Fax_v34_t38_Rev 1708 252.11 272.46 0 0 0.000% 0.000% 20.35 Gw1 Fax_v34_t38_Rev 1708 12.02 12.24 0 0 0.000% 0.000% 0.22 Gw2 Fax_v34_t38_Rev 1708 27.02 27.25 0 0 0.000% 0.000% 0.23 Gw3 Fax_v34_t38_Rev 1708 52.02 52.31 0 0 0.000% 0.000% 0.29 Gw4 Fax_v34_t38_Rev 1708 77.02 77.32 0 0 0.000% 0.000% 0.30 Gw5 Fax_v34_t38_Rev 1708 87.03 87.41 0 0 0.000% 0.000% 0.38 Gw6 Fax_v34_t38_Rev 1708 102.03 102.41 0 0 0.000% 0.000% 0.38 Gw7 Fax_v34_t38_Rev 1708 127.03 127.42 0 0 0.000% 0.000% 0.39 Gw8 Fax_v34_t38_Rev 1708 152.04 152.61 0 0 0.000% 0.000% 0.57 core HDTV1_Down 566298 101.10 101.43 0 0 0.000% 0.000% 0.34 Dw1 HDTV1_Down 434003 12.50 13.97 47 0 0.011% 0.000% 1.47 Dw2 HDTV1_Down 433993 27.51 29.31 47 0 0.011% 0.000% 1.81 Dw3 HDTV1_Down 433970 52.52 67.52 52 0 0.012% 0.000% 15.01 Dw4 HDTV1_Down 433944 77.70 106.95 59 0 0.014% 0.000% 29.25 Dw5 HDTV1_Down 433522 87.89 94.71 474 2 0.109% 0.000% 6.82 Dw6 HDTV1_Down 433541 102.90 153.04 444 8 0.102% 0.002% 50.14 Dw7 HDTV1_Down 433486 127.92 178.05 481 8 0.111% 0.002% 50.14 Dw8 HDTV1_Down 433491 153.34 164.97 456 2 0.105% 0.000% 11.63 Gw1 HDTV1_Down 434050 12.38 12.59 0 0 0.000% 0.000% 0.21 Gw2 HDTV1_Down 434040 27.39 27.63 0 0 0.000% 0.000% 0.24 Gw3 HDTV1_Down 434022 52.50 64.25 0 0 0.000% 0.000% 11.75 Gw4 HDTV1_Down 434003 77.51 79.11 0 0 0.000% 0.000% 1.60 Gw5 HDTV1_Down 433996 87.65 90.96 0 0 0.000% 0.000% 3.32 Gw6 HDTV1_Down 433979 102.66 117.95 7 0 0.002% 0.000% 15.30 72 ANSI/TIA-921-B Case File (Flow) n1 min max drop seq drop % seq % max-min Gw7 HDTV1_Down 433963 127.67 142.96 4 0 0.001% 0.000% 15.30 Gw8 HDTV1_Down 433945 152.97 159.70 3 0 0.001% 0.000% 6.73 core HDTV2_Down 409693 101.09 101.45 0 0 0.000% 0.000% 0.36 Dw3 HDTV2_Down 375393 52.31 67.41 40 0 0.011% 0.000% 15.10 Gw3 HDTV2_Down 375433 52.29 64.17 0 0 0.000% 0.000% 11.88 64463 101.00 101.45 0 0 0.000% 0.000% 0.44 283 166 3.202% 1.878% 68.48 Dp3 HTTP_Down 67783 52.05 365.11 19052 16865 21.939% 19.420% 313.05 Dp4 HTTP_Down 26136 77.10 896.87 8690 7585 24.948% 21.775% 819.77 Dp5 HTTP_Down 10709 102.18 4679.42 6624 6206 38.201% 35.790% 4577.23 Dp6 HTTP_Down 26112 202.10 1021.91 8702 7604 24.991% 21.837% core HTTP_Down Dp2 HTTP_Down Du2 HTTP_Down 8547 27.04 8426 27.04 95.51 72.26 404 819.81 195 4.572% 2.207% 45.22 Du3 HTTP_Down 71890 52.05 119.90 14945 12712 17.209% 14.638% 67.85 Du4 HTTP_Down 26590 77.10 212.76 8239 7377 23.651% 21.176% 135.67 Du5 HTTP_Down 15122 102.18 373.16 2211 1922 12.751% 11.084% 270.98 Du6 HTTP_Down 26548 202.10 337.81 8267 7375 23.741% 21.179% 135.71 Du7 HTTP_Down 15100 252.18 523.22 2233 1914 12.878% 11.038% 271.04 Gp2 HTTP_Down 8830 27.02 41.74 0 0 0.000% 0.000% 14.72 Gp3 HTTP_Down 86828 52.03 99.78 7 6 0.008% 0.007% 47.75 Gp4 HTTP_Down 34828 77.04 111.88 1 0 0.003% 0.000% 34.84 Gp5 HTTP_Down 17332 102.11 949.39 1 0 0.006% 0.000% 847.27 Gp6 HTTP_Down 34814 202.05 236.93 1 0 0.003% 0.000% 34.88 Gu2 HTTP_Down 8830 27.02 40.22 0 0 0.000% 0.000% 13.20 Gu3 HTTP_Down 86768 52.03 84.64 67 45 0.077% 0.052% 32.61 Gu4 HTTP_Down 34824 77.04 131.13 5 2 0.014% 0.006% 54.09 Gu5 HTTP_Down 15984 102.11 264.67 1349 1192 7.780% 6.874% 162.56 Gu6 HTTP_Down 34811 202.05 256.18 2 0.011% 0.006% 54.14 Gu7 HTTP_Down 15982 252.12 414.73 1351 1194 7.791% 6.886% 162.62 core HTTP_Up_out 38327 101.00 101.65 4 0 0 0.000% 0.000% 0.65 Dp2 HTTP_Up_out 5213 27.04 39.86 0 0 0.000% 0.000% 12.83 Dp3 HTTP_Up_out 25506 52.05 70.94 1 0 0.004% 0.000% 18.89 Dp4 HTTP_Up_out 25484 77.10 117.26 18 0 0.071% 0.000% 40.17 Dp5 HTTP_Up_out 30802 102.18 184.72 33 0 0.107% 0.000% 82.54 Dp6 HTTP_Up_out 25462 202.10 242.50 19 0 0.075% 0.000% 40.40 Du2 HTTP_Up_out 5213 27.04 39.86 0 0 0.000% 0.000% 12.83 Du3 HTTP_Up_out 25505 52.05 70.94 2 0 0.008% 0.000% 18.89 Du4 HTTP_Up_out 25479 77.10 117.26 23 0 0.090% 0.000% 40.17 Du5 HTTP_Up_out 30801 102.18 184.67 34 0 0.110% 0.000% 82.49 Du6 HTTP_Up_out 25468 202.10 241.85 13 0 0.051% 0.000% 39.76 Du7 HTTP_Up_out 30796 252.18 335.01 26 0 0.084% 0.000% 82.83 73 ANSI/TIA-921-B Case File (Flow) n1 min max drop seq drop % seq % max-min Gp2 HTTP_Up_out 5213 27.02 32.81 0 0 0.000% 0.000% 5.79 Gp3 HTTP_Up_out 25507 52.03 59.95 0 0 0.000% 0.000% 7.92 Gp4 HTTP_Up_out 25502 77.04 91.89 0 0 0.000% 0.000% 14.84 Gp5 HTTP_Up_out 30835 102.11 150.89 0 0 0.000% 0.000% 48.77 Gp6 HTTP_Up_out 25481 202.05 217.12 0 0 0.000% 0.000% 15.08 Gu2 HTTP_Up_out 5213 27.02 32.83 0 0 0.000% 0.000% 5.80 Gu3 HTTP_Up_out 25507 52.03 59.95 0 0 0.000% 0.000% 7.92 Gu4 HTTP_Up_out 25502 77.04 91.89 0 0 0.000% 0.000% 14.84 Gu5 HTTP_Up_out 30835 102.11 150.89 0 0 0.000% 0.000% 48.77 Gu6 HTTP_Up_out 25481 202.05 217.12 0 0 0.000% 0.000% 15.08 Gu7 HTTP_Up_out 30822 252.12 301.18 0 0 0.000% 0.000% 49.06 core OTT1_1080p_Down 119836 101.00 101.43 0 0 0.000% 0.000% 0.43 43 0 0.013% 0.000% 55.19 Dp2 OTT1_1080p_Down 329117 27.03 163.81 2284 1235 0.689% 0.373% 136.77 Dp1 OTT1_1080p_Down 331368 12.03 67.21 Du1 OTT1_1080p_Down 331282 12.03 45.98 51 0.039% 0.015% 33.95 Du2 OTT1_1080p_Down 325297 27.03 72.30 6104 2814 1.842% 0.849% 45.27 Gp1 OTT1_1080p_Down 331411 12.02 29.78 0 0 0.000% 0.000% 17.76 Gp2 OTT1_1080p_Down 331401 27.02 44.79 0 0 0.000% 0.000% 17.77 Gu1 OTT1_1080p_Down 331411 12.02 29.77 0 0 0.000% 0.000% 17.75 Gu2 OTT1_1080p_Down 331401 27.02 45.25 0 0 0.000% 0.000% 18.23 51117 101.00 101.89 0 0 0.000% 0.000% 0.88 core OTT1_1080p_Up 129 Dp1 OTT1_1080p_Up 137366 12.02 13.19 0 0 0.000% 0.000% 1.16 Dp2 OTT1_1080p_Up 137354 27.03 40.36 8 0 0.006% 0.000% 13.33 Du1 OTT1_1080p_Up 137366 12.02 13.19 0 0 0.000% 0.000% 1.16 Du2 OTT1_1080p_Up 137356 27.03 40.36 6 0 0.004% 0.000% 13.33 Gp1 OTT1_1080p_Up 137366 12.02 12.87 0 0 0.000% 0.000% 0.85 Gp2 OTT1_1080p_Up 137362 27.02 33.42 0 0 0.000% 0.000% 6.40 Gu1 OTT1_1080p_Up 137366 12.02 12.87 0 0 0.000% 0.000% 0.85 Gu2 OTT1_1080p_Up 137362 27.02 33.42 0 0 0.000% 0.000% 6.40 55086 101.00 101.44 0 0 0.000% 0.000% 0.43 19 0 0.015% 0.000% 41.22 Dp2 OTT2_480p_Down 121279 27.03 141.79 1730 766 1.406% 0.623% 114.75 Dp3 OTT2_480p_Down 114097 52.05 327.86 8912 5669 7.245% 4.608% 275.81 core OTT2_480p_Down Dp1 OTT2_480p_Down 122990 12.03 53.25 Du1 OTT2_480p_Down 122899 12.03 45.97 110 55 0.089% 0.045% 33.94 Du2 OTT2_480p_Down 119444 27.03 72.30 3565 1268 2.898% 1.031% 45.27 Du3 OTT2_480p_Down 115446 52.05 119.94 7563 4304 6.148% 3.499% 67.90 Du4 OTT2_480p_Down 108993 77.09 212.81 14016 6473 11.394% 5.262% 135.72 Du5 OTT2_480p_Down 35592 102.17 373.86 31776 22939 47.163% 34.047% 271.69 Du6 OTT2_480p_Down 108934 202.09 337.80 14075 6463 11.442% 5.254% 135.71 Du7 OTT2_480p_Down 271.75 35605 252.17 523.92 31763 23066 47.144% 34.235% 74 ANSI/TIA-921-B Case File (Flow) n1 min max drop seq drop % seq % max-min Gp1 OTT2_480p_Down 123009 12.02 29.47 0 0 0.000% 0.000% 17.45 Gp2 OTT2_480p_Down 123009 27.02 44.48 0 0 0.000% 0.000% 17.46 Gp3 OTT2_480p_Down 122999 52.03 93.32 10 10 0.008% 0.008% 41.29 Gu1 OTT2_480p_Down 123009 12.02 29.81 0 0 0.000% 0.000% 17.79 Gu2 OTT2_480p_Down 123009 27.02 45.15 0 0 0.000% 0.000% 18.13 Gu3 OTT2_480p_Down 122975 52.03 84.65 34 15 0.028% 0.012% 32.62 Gu4 OTT2_480p_Down 123007 77.04 131.15 2 0 0.002% 0.000% 54.11 55229 102.11 264.87 12140 3590 18.018% 5.328% 162.77 Gu5 OTT2_480p_Down Gu6 OTT2_480p_Down 123007 202.04 256.20 2 0 0.002% 0.000% 54.15 Gu7 OTT2_480p_Down 55233 252.11 414.93 12136 3585 18.012% 5.321% 162.83 core OTT2_480p_Up 27453 101.00 101.74 0 0 0.000% 0.000% 0.73 Dp1 OTT2_480p_Up 67444 12.02 12.47 0 0 0.000% 0.000% 0.44 Dp2 OTT2_480p_Up 67441 27.03 40.95 3 0 0.004% 0.000% 13.92 Dp3 OTT2_480p_Up 67440 52.04 73.06 4 0 0.006% 0.000% 21.01 Du1 OTT2_480p_Up 67444 12.02 12.47 0 0 0.000% 0.000% 0.44 Du2 OTT2_480p_Up 67441 27.03 40.95 3 0 0.004% 0.000% 13.92 Du3 OTT2_480p_Up 67438 52.04 73.06 6 0 0.009% 0.000% 21.01 Du4 OTT2_480p_Up 67410 77.08 119.38 34 0 0.050% 0.000% 42.30 Du5 OTT2_480p_Up 33614 102.15 188.65 20 0 0.059% 0.000% 86.49 Du6 OTT2_480p_Up 67407 202.08 244.61 37 0 0.055% 0.000% 42.53 Du7 OTT2_480p_Up 33614 252.16 338.65 20 0 0.059% 0.000% 86.49 Gp1 OTT2_480p_Up 67444 12.02 12.23 0 0 0.000% 0.000% 0.22 Gp2 OTT2_480p_Up 67444 27.02 34.10 0 0 0.000% 0.000% 7.08 Gp3 OTT2_480p_Up 67444 52.02 62.06 0 0 0.000% 0.000% 10.04 Gu1 OTT2_480p_Up 67444 12.02 12.25 0 0 0.000% 0.000% 0.23 Gu2 OTT2_480p_Up 67444 27.02 34.10 0 0 0.000% 0.000% 7.08 Gu3 OTT2_480p_Up 67444 52.02 62.06 0 0 0.000% 0.000% 10.04 Gu4 OTT2_480p_Up 67444 77.04 94.00 0 0 0.000% 0.000% 16.97 Gu5 OTT2_480p_Up 33634 102.10 153.80 0 0 0.000% 0.000% 51.71 Gu6 OTT2_480p_Up 67444 202.04 219.24 0 0 0.000% 0.000% 17.20 Gu7 OTT2_480p_Up 33634 252.10 303.81 0 0 0.000% 0.000% 51.71 83 Du1 OTT2a_480p_Down 116589 12.03 45.93 32 0.071% 0.027% 33.91 Du2 OTT2a_480p_Down 115669 27.03 72.31 3310 1318 2.782% 1.108% 45.27 Du3 OTT2a_480p_Down 111037 52.05 119.95 7525 4269 6.347% 3.600% 67.90 Gu1 OTT2a_480p_Down 118812 12.02 30.02 0 0 0.000% 0.000% 18.00 Gu2 OTT2a_480p_Down 116672 27.02 45.05 0 0 0.000% 0.000% 18.03 Gu3 OTT2a_480p_Down 117345 52.03 84.62 17 4 0.014% 0.003% 32.59 Du1 OTT2a_480p_Up 63260 12.02 12.92 1 0 0.002% 0.000% 0.90 Du2 OTT2a_480p_Up 62815 27.03 40.50 2 0 0.003% 0.000% 13.46 Du3 OTT2a_480p_Up 63578 52.04 73.28 4 0 0.006% 0.000% 21.23 75 ANSI/TIA-921-B Case File (Flow) n1 min max drop seq drop % seq % max-min Gu1 OTT2a_480p_Up 64186 12.02 12.24 0 0 0.000% 0.000% 0.22 Gu2 OTT2a_480p_Up 62817 27.02 34.48 0 0 0.000% 0.000% 7.46 Gu3 OTT2a_480p_Up 63582 52.02 61.51 0 0 0.000% 0.000% 9.48 core P2P_Down 87715 101.00 101.41 0 0 0.000% 0.000% 0.40 Dp2 P2P_Down 10346 27.04 34 0 0.327% 0.000% 66.63 Dp3 P2P_Down 58059 52.05 361.12 2107 1067 3.502% 1.773% 309.07 Dp4 P2P_Down 29007 77.09 1623.38 1072 Dp5 P2P_Down 22178 102.21 4569.94 2026 1437 8.368% 5.935% 4467.73 Dp6 P2P_Down 28992 202.09 1748.43 1086 Du2 P2P_Down 10259 27.04 35 1.165% 0.337% 45.25 Du3 P2P_Down 57879 52.05 119.91 2287 1142 3.801% 1.898% 67.86 Du4 P2P_Down 26293 77.09 212.83 3786 2365 12.584% 7.861% 135.73 Du5 P2P_Down 22172 102.18 373.19 2035 1481 8.404% 6.116% 271.01 Du6 P2P_Down 26308 202.09 337.87 3770 2343 12.531% 7.788% 135.78 Du7 P2P_Down 22181 252.18 523.25 2022 1476 8.352% 6.097% 271.07 Gp2 P2P_Down 10380 27.02 39.54 0 0 0.000% 0.000% 12.52 Gp3 P2P_Down 60166 52.03 93.57 0 0 0.000% 0.000% 41.54 Gp4 P2P_Down 30079 77.04 108.33 0 0 0.000% 0.000% 31.29 Gp5 P2P_Down 24207 102.11 905.27 0 0 0.000% 0.000% 803.16 Gp6 P2P_Down 30078 202.05 233.38 0 0 0.000% 0.000% 31.33 Gu2 P2P_Down 10380 27.02 42.64 0 0 0.000% 0.000% 15.62 Gu3 P2P_Down 60162 52.03 84.41 4 0 0.007% 0.000% 32.39 Gu4 P2P_Down 30079 77.04 122.68 0 0 0.000% 0.000% 45.64 Gu5 P2P_Down 23206 102.11 264.74 1001 706 4.134% 2.916% 162.63 Gu6 P2P_Down 30078 202.05 247.73 0 0 0.000% 0.000% 45.68 Gu7 P2P_Down 23200 252.11 414.80 1003 713 4.143% 2.945% 162.68 0 0 0.000% 0.000% 1.04 93.68 72.28 121 577 3.563% 1.918% 1546.29 574 3.610% 1.908% 1546.33 core P2P_Up 141533 101.00 102.05 Dp2 P2P_Up 131807 27.03 41.80 30 0 0.023% 0.000% 14.77 Dp3 P2P_Up 131800 52.05 73.99 34 0 0.026% 0.000% 21.94 Dp4 P2P_Up 131587 77.09 120.59 242 0 0.184% 0.000% 43.50 Dp5 P2P_Up 131604 102.17 189.15 224 0 0.170% 0.000% 86.98 Dp6 P2P_Up 131591 202.09 245.60 232 2 0.176% 0.002% 43.51 Du2 P2P_Up 131811 27.03 41.80 26 0 0.020% 0.000% 14.77 Du3 P2P_Up 131814 52.05 73.99 20 0 0.015% 0.000% 21.94 Du4 P2P_Up 131568 77.09 120.54 261 2 0.198% 0.002% 43.45 Du5 P2P_Up 131606 102.17 188.87 222 2 0.168% 0.002% 86.70 Du6 P2P_Up 131573 202.09 245.59 250 0 0.190% 0.000% 43.50 Du7 P2P_Up 131599 252.17 338.88 219 2 0.166% 0.002% 86.70 Gp2 P2P_Up 131837 27.02 34.87 0 0 0.000% 0.000% 7.85 Gp3 P2P_Up 131834 52.03 62.83 0 0 0.000% 0.000% 10.80 76 ANSI/TIA-921-B Case File (Flow) n1 min max drop seq drop % seq % max-min Gp4 P2P_Up 131829 77.04 94.77 0 0 0.000% 0.000% 17.73 Gp5 P2P_Up 131828 102.11 154.29 0 0 0.000% 0.000% 52.18 Gp6 P2P_Up 131823 202.04 220.00 0 0 0.000% 0.000% 17.96 Gu2 P2P_Up 131837 27.02 34.87 0 0 0.000% 0.000% 7.85 Gu3 P2P_Up 131834 52.03 62.85 0 0 0.000% 0.000% 10.82 Gu4 P2P_Up 131829 77.04 94.77 0 0 0.000% 0.000% 17.73 Gu5 P2P_Up 131828 102.11 154.17 0 0 0.000% 0.000% 52.07 Gu6 P2P_Up 131823 202.04 220.00 0 0 0.000% 0.000% 17.96 Gu7 P2P_Up 131818 252.11 304.23 0 0 0.000% 0.000% 52.12 core SDTV1_Down 280384 101.10 101.45 0 0 0.000% 0.000% 0.35 Dp1 SDTV1_Down 108699 12.62 15.07 9 0 0.008% 0.000% 2.45 Dp2 SDTV1_Down 108576 27.78 45.43 129 0 0.119% 0.000% 17.64 Dp3 SDTV1_Down 108600 53.10 119.89 100 0 0.092% 0.000% 66.79 Dp4 SDTV1_Down 107405 79.05 213.03 1290 48 1.187% 0.044% 133.99 Dp6 SDTV1_Down 107407 204.09 338.08 1265 50 1.164% 0.046% 133.99 Dw2 SDTV1_Down 108689 27.51 28.86 16 0 0.015% 0.000% 1.36 Dw4 SDTV1_Down 108686 77.70 106.53 10 0 0.009% 0.000% 28.83 Dw5 SDTV1_Down 108585 87.89 93.79 109 0 0.100% 0.000% 5.90 Dw6 SDTV1_Down 108570 102.90 152.98 121 3 0.111% 0.003% 50.07 Dw7 SDTV1_Down 108576 127.92 177.99 111 3 0.102% 0.003% 50.07 Gp1 SDTV1_Down 108708 12.48 13.15 0 0 0.000% 0.000% 0.67 Gp2 SDTV1_Down 108705 27.49 28.16 0 0 0.000% 0.000% 0.67 Gp3 SDTV1_Down 108700 52.62 53.57 0 0 0.000% 0.000% 0.94 Gp4 SDTV1_Down 108695 77.95 113.95 1 0 0.001% 0.000% 36.00 Gp6 SDTV1_Down 108671 202.99 239.00 2 0 0.002% 0.000% 36.00 Gw2 SDTV1_Down 108705 27.39 27.63 0 0 0.000% 0.000% 0.24 Gw4 SDTV1_Down 108696 77.51 78.65 0 0 0.000% 0.000% 1.14 Gw5 SDTV1_Down 108694 87.65 90.19 0 0 0.000% 0.000% 2.54 Gw6 SDTV1_Down 108690 102.66 117.93 1 0 0.001% 0.000% 15.27 Gw7 SDTV1_Down 108686 127.67 142.94 1 0 0.001% 0.000% 15.27 core SDTV2_Down 178507 101.09 101.44 0 0 0.000% 0.000% 0.35 Dp1 SDTV2_Down 110327 12.62 15.45 12 0 0.011% 0.000% 2.83 Dp2 SDTV2_Down 110207 27.78 45.76 129 0 0.117% 0.000% 17.98 Dp3 SDTV2_Down 110196 53.10 119.95 134 0 0.121% 0.000% 66.85 Dp4 SDTV2_Down 109015 79.05 213.13 1309 69 1.186% 0.063% 134.09 Dp5 SDTV2_Down 108813 105.89 375.24 1505 168 1.364% 0.152% 269.35 Dp6 SDTV2_Down 109009 204.09 338.18 1288 49 1.168% 0.044% 134.09 Dw4 SDTV2_Down 110317 77.70 106.88 7 0 0.006% 0.000% 29.19 Dw6 SDTV2_Down 110142 102.90 153.05 177 8 0.160% 0.007% 50.14 Dw7 SDTV2_Down 110157 127.92 178.06 156 8 0.141% 0.007% 50.14 77 ANSI/TIA-921-B Case File (Flow) n1 min max drop seq drop % seq % max-min Gp1 SDTV2_Down 110339 12.48 13.15 0 0 0.000% 0.000% 0.67 Gp2 SDTV2_Down 110336 27.49 28.16 0 0 0.000% 0.000% 0.67 Gp3 SDTV2_Down 110330 52.62 53.63 0 0 0.000% 0.000% 1.00 Gp4 SDTV2_Down 110324 77.95 114.10 0 0 0.000% 0.000% 36.15 Gp5 SDTV2_Down 110254 104.43 265.54 64 47 0.058% 0.043% 161.11 Gp6 SDTV2_Down 110298 202.99 239.15 0 0 0.000% 0.000% 36.15 Gw4 SDTV2_Down 110324 77.51 78.89 0 0 0.000% 0.000% 1.38 Gw6 SDTV2_Down 110319 102.66 118.19 0 0 0.000% 0.000% 15.54 Gw7 SDTV2_Down 110310 127.67 143.20 3 0 0.003% 0.000% 15.54 core VoIP1_Fwd 14303 101.01 101.27 0 0 0.000% 0.000% 0.26 Dp1 VoIP1_Fwd 19938 12.04 12.68 0 0 0.000% 0.000% 0.64 Dp2 VoIP1_Fwd 19937 27.05 27.86 0 0 0.000% 0.000% 0.81 Dp3 VoIP1_Fwd 19937 52.07 53.21 0 0 0.000% 0.000% 1.15 Dp4 VoIP1_Fwd 19920 77.13 79.25 16 0 0.080% 0.000% 2.12 Dp5 VoIP1_Fwd 19917 102.24 106.44 18 0 0.090% 0.000% 4.20 Dp6 VoIP1_Fwd 19921 202.13 204.30 11 0 0.055% 0.000% 2.17 Dw1 VoIP1_Fwd 19938 12.03 12.49 0 0 0.000% 0.000% 0.46 Dw2 VoIP1_Fwd 19937 27.03 27.51 0 0 0.000% 0.000% 0.47 Dw3 VoIP1_Fwd 19937 52.03 52.52 0 0 0.000% 0.000% 0.48 Dw4 VoIP1_Fwd 19936 77.04 77.69 0 0 0.000% 0.000% 0.65 Dw5 VoIP1_Fwd 19934 87.05 87.89 1 0 0.005% 0.000% 0.84 Dw6 VoIP1_Fwd 19934 102.06 102.90 1 0 0.005% 0.000% 0.85 Dw7 VoIP1_Fwd 19932 127.06 127.91 2 0 0.010% 0.000% 0.86 Dw8 VoIP1_Fwd 19930 152.08 153.34 3 0 0.015% 0.000% 1.25 Gp1 VoIP1_Fwd 19938 12.03 12.52 0 0 0.000% 0.000% 0.50 Gp2 VoIP1_Fwd 19937 27.03 27.54 0 0 0.000% 0.000% 0.51 Gp3 VoIP1_Fwd 19937 52.04 52.69 0 0 0.000% 0.000% 0.65 Gp4 VoIP1_Fwd 19936 77.06 78.05 0 0 0.000% 0.000% 0.99 Gp5 VoIP1_Fwd 19935 102.15 104.73 0 0 0.000% 0.000% 2.58 Gp6 VoIP1_Fwd 19932 202.06 203.10 0 0 0.000% 0.000% 1.04 Gw1 VoIP1_Fwd 19938 12.02 12.38 0 0 0.000% 0.000% 0.36 Gw2 VoIP1_Fwd 19937 27.02 27.39 0 0 0.000% 0.000% 0.37 Gw3 VoIP1_Fwd 19937 52.03 52.50 0 0 0.000% 0.000% 0.47 Gw4 VoIP1_Fwd 19936 77.03 77.51 0 0 0.000% 0.000% 0.48 Gw5 VoIP1_Fwd 19935 87.04 87.64 0 0 0.000% 0.000% 0.61 Gw6 VoIP1_Fwd 19935 102.04 102.66 0 0 0.000% 0.000% 0.62 Gw7 VoIP1_Fwd 19934 127.04 127.67 0 0 0.000% 0.000% 0.63 Gw8 VoIP1_Fwd 19933 152.06 152.97 0 0 0.000% 0.000% 0.91 core VoIP1_Rev 14301 101.01 101.55 0 0 0.000% 0.000% 0.55 78 ANSI/TIA-921-B Case File (Flow) n1 min max drop seq drop % seq % max-min Dp1 VoIP1_Rev 19935 12.04 12.58 0 0 0.000% 0.000% 0.54 Dp2 VoIP1_Rev 19930 27.05 41.69 5 0 0.025% 0.000% 14.64 Dp3 VoIP1_Rev 19931 52.07 73.87 3 0 0.015% 0.000% 21.80 Dp4 VoIP1_Rev 19916 77.13 120.46 17 0 0.085% 0.000% 43.33 Dp5 VoIP1_Rev 19925 102.24 188.64 7 0 0.035% 0.000% 86.40 Dp6 VoIP1_Rev 19910 202.13 245.47 19 0 0.095% 0.000% 43.35 Dw1 VoIP1_Rev 19935 12.03 12.07 0 0 0.000% 0.000% 0.04 Dw2 VoIP1_Rev 19935 27.03 27.07 0 0 0.000% 0.000% 0.04 Dw3 VoIP1_Rev 19934 52.03 52.07 0 0 0.000% 0.000% 0.04 Dw4 VoIP1_Rev 19933 77.04 77.14 0 0 0.000% 0.000% 0.10 Dw5 VoIP1_Rev 19930 87.05 87.22 3 0 0.015% 0.000% 0.16 Dw6 VoIP1_Rev 19932 102.06 102.22 0 0 0.000% 0.000% 0.16 Dw7 VoIP1_Rev 19931 127.06 127.22 1 0 0.005% 0.000% 0.16 Dw8 VoIP1_Rev 19928 152.08 152.39 3 0 0.015% 0.000% 0.30 Gp1 VoIP1_Rev 19935 12.03 12.37 0 0 0.000% 0.000% 0.34 Gp2 VoIP1_Rev 19935 27.03 34.72 0 0 0.000% 0.000% 7.69 Gp3 VoIP1_Rev 19934 52.04 62.68 0 0 0.000% 0.000% 10.64 Gp4 VoIP1_Rev 19933 77.06 94.60 0 0 0.000% 0.000% 17.55 Gp5 VoIP1_Rev 19932 102.15 154.10 0 0 0.000% 0.000% 51.95 Gp6 VoIP1_Rev 19929 202.06 219.65 0 0 0.000% 0.000% 17.59 Gw1 VoIP1_Rev 19935 12.02 12.04 0 0 0.000% 0.000% 0.02 Gw2 VoIP1_Rev 19935 27.02 27.04 0 0 0.000% 0.000% 0.02 Gw3 VoIP1_Rev 19934 52.03 52.07 0 0 0.000% 0.000% 0.04 Gw4 VoIP1_Rev 19933 77.03 77.07 0 0 0.000% 0.000% 0.04 Gw5 VoIP1_Rev 19933 87.04 87.12 0 0 0.000% 0.000% 0.08 Gw6 VoIP1_Rev 19932 102.04 102.12 0 0 0.000% 0.000% 0.08 Gw7 VoIP1_Rev 19932 127.04 127.12 0 0 0.000% 0.000% 0.08 Gw8 VoIP1_Rev 19931 152.06 152.24 0 0 0.000% 0.000% 0.18 79 ANSI/TIA-921-B Annex F (Normative) – Electronic Attachment The electronic attachment is either a DVD data disk, or else an ISO 9660 format file that may be converted into a DVD. The data disk contents are described on the disk itself and have the following subdirectories: ./src ./pcap ./tc ./out Discrete Event Simulator Source (Annex B) Input Packet Capture Files of Interfering Traffic (Annex C) Impairment Combination Standard Test Cases (section 5.2) Simulator Output (Annex D) ____________________ 80