You are on page 1of 58

Spirent TestCenter

Stream Blocks

www.spirentcampus.com
Topic Overview
„ What is a Stream Block?
„ Configuring Stream Blocks
„ Transmitting and Analyzing Stream Blocks

2
Spirent TestCenter Stream Blocks
Configuration Hierarchy
„ A Stream Block is a "summary" definition can represent a single stream
on a single port, or many of streams across multiple ports.
Hosts
Modifiers Streams

Port
X

Stream Block
Definition Routes
Modifiers Streams

Port
Y

3
Spirent TestCenter Stream Blocks
What is a Stream Block?
„ The Traffic Pattern
‹ Sources and Destinations
„ Generator Parameters
‹ Frame Length (fixed, random, increment, decrement, auto)
‹ Load/Rate (% of line rate, bits/kbits/Mbits/sec, IFG, frames/sec)
‹ Duration (continuous, bursts, seconds)
‹ Scheduling mode (Port, Rate, or Priority based)
„ Frame Structure
‹ including Modifier placement, ranges, modes, etc.
„ A set of streams that share (or “inherit”) the above
‹ Could be a single stream or 100s of 1000s (or more) of streams
4
Spirent TestCenter Stream Blocks
Stream Blocks – Traffic Pattern

„ Sources and Destinations, Distribution, Encapsulation

5
Spirent TestCenter Stream Blocks
Stream Blocks – General Parameters

„ Frame Size, Load, Payload Fill

6
Spirent TestCenter Stream Blocks
Stream Blocks – Frame Definition

„ Header Bits and Bytes, Modifiers

7
Spirent TestCenter Stream Blocks
Stream Blocks and the Big Bang Theory

„ A Stream Block definition get's broken out ("exploded") on


the hardware.
„ This could result in 100s of 1000s (or more) streams and/or
variations across 100s of ports.
„ Yet the summary definition may have only consumed ~2K of
memory.

P
o
r
t
Stream Explosion
Block P
o
r
t

Software Hardware
8
Spirent TestCenter Stream Blocks
Why Stream Blocks?
„ Reduce Time to Test
‹ “Explode” small number of blocks into large number of streams
‹ Use multiple CPUs on test modules rather than a single CPU on the
user’s PC
‹ Reduce data transferred between the user’s PC and the Spirent
TestCenter system
„ Arbitrary Frames
‹ Frame definition attached to each stream block
‹ Consumes ~ 2K of memory per Frame definition
„ Increase Scale
‹ Support large stream count and port count tests while…
‹ Providing tools for easier and faster test configuration

9
Spirent TestCenter Stream Blocks
Create Stream Blocks Based on the
Test Plan
„ Break it down to the smallest common units you can (e.g., TCP port 80
traffic at 1000 fps for one of the sets).
„ Next, associate the end-points (i.e., Hosts or Routes) using the Traffic
Wizard and Bound Stream Blocks.
„ Use the Traffic Wizard once for each set you define.

Spirent TestCenter Device Under Test (DUT)

10
Spirent TestCenter Stream Blocks
What is a Stream Then?
„ Streams are same as they’ve always been.
„ They are unique, trackable entities.
„ Each Port can generate 16 or 32 thousand individual
streams:
‹ 1000 vs. 2000 series modules
‹ or A vs. B packages
„ Each Port can analyze (i.e., track separately) 64 thousand
individual streams.
„ All packets associated with one particular steam have a
signature field with the same stream ID.
‹ Stream Statistics and Histograms create a unique entry for each ID.
‹ The sequence number and latency timestamp is updated for each
subsequent packet separately for each stream.
11
Spirent TestCenter Stream Blocks
The Spirent TestCenter Signature Field

Stream ID (MSB) Stream ID Stream ID


Inverse of Sequence Byte0 Stream ID (MSB) Stream ID Stream ID
Inverse of Sequence Byte0 Byte3 Byte2 Byte1
Byte3 Byte2 Byte1
Stream ID Sequence (MSB) Sequence Sequence
Stream ID Sequence (MSB) Sequence Sequence
Byte0 Byte5 Byte4 Byte3
Byte0 Byte5 Byte4 Byte3
Sequence Sequence Sequence Timestamp (2.5ns)
Sequence Sequence Sequence Timestamp (2.5ns)
Byte2 Byte1 Byte0 Byte3
Byte2 Byte1 Byte0 Byte3
Timestamp (2.5ns) Timestamp (2.5ns) Timestamp (2.5ns) TS (2.5ns) PR las
Timestamp (2.5ns) Timestamp (2.5ns) Timestamp (2.5ns) TS (2.5ns) BSPRtlas
Byte2 Byte1 Byte0 (bits 37:32) BS t
Byte2 Byte1 Byte0 (bits 37:32)
TCP UDP Checksum TCP UDP Checksum
Crc16 Crc16 TCP UDP Checksum TCP UDP Checksum
Crc16 Crc16 Cheater Cheater
Byte1 Byte0 Cheater Cheater
Byte1 Byte0 (Byte1) (Byte0)
(Byte1) (Byte0)

• 20 bytes oriented at the end of the Datagram (IP packet)


¾ Ethernet padding does not affect the signature
• 32 bits of stream ID (up to 4 billion streams per test possible)
• 10 nanosecond resolution (can be enhanced to 2.5ns for > 10 Gig)
• Built in UDP/TCP checksum cheater field (allows real-time modifications)
• Signature is scrambled so not to influence repetitive patterns

12
Spirent TestCenter Stream Blocks
Streams are Created by Stream Blocks
„ Stream Blocks help you to quickly and easily configure a
large number of streams.
„ Stream Blocks help you to rapidly download these
configurations to the hardware.
„ Each Stream Block will contain an “algorithm” for generating
streams that belong to the block
„ Stream Block configuration screens allow users to configure
the algorithm.
„ Streams are no longer generated on the user’s PC.
„ Only the general parameters, frame definition and algorithm
are transmitted from the user’s PC to the Spirent TestCenter
system.
13
Spirent TestCenter Stream Blocks
Topic Overview
„ What is a Stream Block?
„ Configuring Stream Blocks
„ Transmitting and Analyzing Stream Blocks

14
Spirent TestCenter Stream Blocks
Creating Stream Blocks
„ There are two types of Stream Blocks:
‹ Bound
‹ Raw
„ There are four ways to create
Bound Stream Blocks:
‹ All Stream Blocks
‹ Each port’s Traffic Generator
‹ Traffic Wizard
‹ Test Wizard
„ Raw Stream Blocks are created
directly from each port’s
Traffic Generator.
15
Spirent TestCenter Stream Blocks
Raw Stream Blocks

„ Raw Stream Blocks are generally used when you want to


create custom frames.
„ A Raw Stream Block has no end points so they are basically
“raw” data that can have whatever you want in them.
„ Raw Stream Blocks can only be created under each port’s
Traffic Generator as opposed to Bound Stream Blocks which
can be created a number of ways.

16
Spirent TestCenter Stream Blocks
Raw Stream Blocks

1. Expand the port.


2. Go to Traffic Generator.
3. Drop down “Add…”
3
4. Add Raw Stream Block.
4

2
1

17
Spirent TestCenter Stream Blocks
Raw Stream Block Editor – General

Set a single frame size Or automatically configured


based on frame contents

Or set the start, step and max

Or set the minimum and Choose how to fill the frames


maximum value for Random
18
Spirent TestCenter Stream Blocks
Raw Stream Block Editor – Rates
„ Rates can be set a number of ways (Port, Rate, or Priority based).
„ In this example it is set using the Port Load button since the Scheduling
mode is set to Port Based.

19
Spirent TestCenter Stream Blocks
Raw Stream Block Editor – Frame
„ Everything needs to be configured statically.
„ However, the destination (Gateway’s) MAC can be still be resolved via
ARP.

20
Spirent TestCenter Stream Blocks
Raw Stream Editor – New Frame

„ Create new frames based on templates.

21
Spirent TestCenter Stream Blocks
Raw Stream Editor – Custom Frame

„ Quick Select

22
Spirent TestCenter Stream Blocks
Raw Stream Editor – Advanced

„ Advanced

23
Spirent TestCenter Stream Blocks
Bound Stream Blocks

„ Bound Stream Blocks are used when you want to create


automatic traffic patterns.
„ Bound Stream Blocks are “bound” between hosts, routers,
and/or route blocks.
„ They inherit their attributes (source/destination addresses)
from their associated entity.
„ This could include IP addresses automatically assigned by
PPP or DCHP, and/or destination MAC addresses resolved
by ARP/ND.
„ Bound Stream Blocks are created using the Traffic Wizard
which can be initiated a variety of ways.

24
Spirent TestCenter Stream Blocks
Bound Stream Blocks – All Stream
Blocks
„ Go to All Ports > All Stream Blocks > Add
„ The Traffic Wizard starts

25
Spirent TestCenter Stream Blocks
Bound Stream Blocks – Port Traffic
Generator
„ From Port > Traffic Generator > Add Bound Stream Block...
„ The Traffic Wizard starts

26
Spirent TestCenter Stream Blocks
Bound Stream Blocks – Wizards

„ Go to Wizards > Traffic Wizard


„ Choose the ports you want to set up
„ Other Configuration or Test Wizards (such as RFC 2544) will
also produce Bound Stream Blocks

27
Spirent TestCenter Stream Blocks
Traffic Wizard – End Points

28
Spirent TestCenter Stream Blocks
End Points Defined
„ Bound Stream Blocks are associated with End Points.
„ End Points can be any one of the following:
‹ Hosts
‹ Routers
‹ Routes (including multicast)
‹ MPLS Label Switched Paths (LSPs)
„ End Points need to be defined first.
„ They inherit (i.e., bind) their parameters from these End
Points.
‹ Addresses and or Labels
‹ Encapsulation
‹ Priority settings
29
Spirent TestCenter Stream Blocks
End Points – Encapsulation

„ Choose how the endpoints are configured.


„ First select an encapsulation.

30
Spirent TestCenter Stream Blocks
End Points – Encapsulation continued
„ When setting up the endpoints you have a choice for
Encapsulation.
„ The type of test (Layer 2, Layer 3, Access, etc.) you are
running dictates the encapsulation you most likely should
use.
‹ It should also be noted, once encapsulated, other layers may or may
not be editable in the frame editor tool.
‹ Also, even if a Host was created as Layer 3, if you select a Layer 2
encapsulation there will be no IP header.
„ The Protocol filter, located directly above the encapsulation
is simply for filtering based on the traffic types (e.g. Host or
Router traffic).
‹ The default is for all types traffic.

31
Spirent TestCenter Stream Blocks
End Points – Distribution and Direction

32
Spirent TestCenter Stream Blocks
MPLS Binding

„ Usually not applicable unless you are associating an wend


point with a preestablished Label Switched Path (LSP).
„ Use the “Auto Select Tunnel” button if you like
„ Notice the “Bottom label”

33
Spirent TestCenter Stream Blocks
Frame Size and Load

34
Spirent TestCenter Stream Blocks
Frame Template

35
Spirent TestCenter Stream Blocks
Frame Template – Modifiers

Used to vary fields


in stream blocks.

36
Spirent TestCenter Stream Blocks
Modifier Parameters
„ Increment/Decrement – increase or decrease the next value by X.
„ List – Manually enter a list of specific values.
„ Random – Randomly generates values.
„ Shuffle – Generates values alternating from low to high while alternately
incrementing, then decrementing. (Think of this as how one might shuffle a deck
of cards. You split the deck and then alternate the cards (values) from the two
halves of the deck.)
„ Count – How many values total
„ Step – How to increment/decrement (by 1, 2, 5 etc)
„ Repeat – How many times to repeat a value. This gets repeated immediately, not
like a cycle repeat. E.g., 1,1,2,2,3,3… not 1,2,3,1,2,3…
„ Mask – How many bits (contiguous) in each octet to use for the value generation.
A value of zero means that octet will be 0.
„ Value(s) – Start value or specific values (when using list).
„ Use Streams – Whether or not you wish to have unique signature fields to track
each variation individually, or one common signature field for all streams within
that stream block. 37
Spirent TestCenter Stream Blocks
Multiple Streams

„ You can create multiple Streams within a Stream Block


using two different methods:
‹ Multiple Devices defined within the Host Object (Bound Stream
Block)
‹ Stream Block Modifiers (Bound or Raw Stream Blocks) and the “Use
Streams option.

38
Spirent TestCenter Stream Blocks
Modifier – Use Streams

39
Spirent TestCenter Stream Blocks
Modifier – Don’t Use Streams

40
Spirent TestCenter Stream Blocks
Use Streams Option

Use Streams Checked Use Streams Unchecked


Flow #1 #2 #3 #4 #5 Flow #1 #2 #3 #4 #5

Inserted Sequence Number


Inserted Sequence Number

1 1 1 1 1 1 2 3 4 5

For Aggregate Flows


For Individual Flows

2 2 2 2 2 6 7 8 9 10
3 3 3 3 3 11 12 13 14 15
4 4 4 4 4 16 17 18 19 20
5 5 5 5 5 21 22 23 24 25
6 6 6 6 6 26 27 28 29 30

41
Spirent TestCenter Stream Blocks
Bound Stream Blocks – Test Wizard
„ You can “Use existing endpoints” to bind the addresses based on port
selection (i.e., all Host Blocks preconfigured on the ports will be used).
„ Or you can have the Wizard “Create new endpoints.”

42
Spirent TestCenter Stream Blocks
All Stream Blocks Grid View
„ Same Parameters as in the Traffic Wizard but multiple rows/columns can
be changed in Spreadsheet like fashion.
„ Notice the difference between the Bound versus Raw Stream Blocks.
„ Use the Edit button to modify an existing Stream Block.

43
Spirent TestCenter Stream Blocks
Bound Stream Block Editor Tabs
„ General – Frame Size, Load, Fill Pattern
„ Source and Destination – End Point’s associations
„ Frame – Template selector and Frame Editor
„ Groups – Traffic groups (different then you may think)
„ Rx Port – Ports that expect to receive stream block
„ Preview – Shows streams and sub-streams within the block

44
Spirent TestCenter Stream Blocks
Raw Stream Blocks Editor Tabs

„ What’s missing and why?

No “endpoints” (i.e., sources and destinations)

45
Spirent TestCenter Stream Blocks
Topic Overview
„ What is a Stream Block?
„ Configuring Stream Blocks

„ Transmitting and Analyzing Stream Blocks

46
Spirent TestCenter Stream Blocks
Starting a Steam Block

„ Starting a Steam Block is essentially sending Test Traffic.


„ Before starting a Steam Block, any control plane actions,
and there associated bindings, need to be initiated first.
„ This applies to ARP, IGMP, DHCP, PPPoX, etc.
„ There are essentially three ways to start a Steam Block:
1. Right-clink on an object
2. Short-cut buttons
3. The Command Sequencer

NOTE: Don’t forget to Apply first!

47
Spirent TestCenter Stream Blocks
Control Plane – ARP
„ The graphic below shows both the right-click and short-cut methods.
„ The short-cut method will start ARP on everything configured (including
Hosts and Routers).

48
Spirent TestCenter Stream Blocks
L2 (Layer 2) Learning
„ As its name implies, L2 Learning is for Layer 2 Testing.
„ The idea is to pre-populate the devises MAC address table.
„ The Stream Block’s MAC address need to be statically configured (i.e., they do
not use ARP).

49
Spirent TestCenter Stream Blocks
Starting a Stream Block
„ The graphic below shows both the right-click and short-cut methods.
„ The short-cut method will start ALL Stream Blocks

50
Spirent TestCenter Stream Blocks
Viewing Results
„ Real-time results are viewed via the Results Browser.
„ Host results can be viewed a Varity of ways.
„ Use “Change Results View” to select what is most
interesting to you at the time.

51
Spirent TestCenter Stream Blocks
Port Traffic Results

„ An aggregate of all the traffic on a Port.


„ However, does not differentiate one Stream Block from
another.

52
Spirent TestCenter Stream Blocks
Stream Results

„ Different then Stream Block results in that they are real-time,


the individual stream statistics are broken out separately,
and the individual stream statistics are more detailed (see
next slide).

53
Spirent TestCenter Stream Blocks
Detailed Stream Results
The following statistics are available for each stream; it depends on the
Analyzer “mode” though.
„ Tx/Rx Frames (rate) „ Last Arrival Time
„ Tx/Rx Bytes (rate) „ Min/Max/Ave Inter-arrival Time
„ Packet Loss (rate) „ Min/Max/Ave Latency
„ In Order Packets (rate) „ Invalid FCS (rate)
„ Reordered Packets (rate) „ Min/Max/Ave Jitter
„ Duplicate Packets (rate) „ Histograms (inter-arrival time, latency,
jitter, frame length, sequence run
„ Late Packets (rate) length, sequence difference check)
„ Dropped Packets (rate) „ IPv4 Errors (rate)
„ In Sequence Packets (rate) „ TCP/UDP Errors (rate)
„ Out of Sequence Packets (rate) „ PRBS Errored Bits (rate)
„ First Arrival Time „ PRBS Fill Byte Count (rate)
RED = always trackable, even without the signature field; think analyzer filters! 54
Spirent TestCenter Stream Blocks
Custom Analyzer Filters
S2 D1 Q2 L3 1 F1
Just a few examples of the many Spirent
S3 D1 Q1 L3 3 F2 TestCenter analysis possibilities!
S1 D2 Q1 L3 2 F3 Source Destination QoS Level L3 Protocol
S2 D3 Q2 L3 2 F4
S1 D1 Q1 L3 3 F5 S1 D1 Q1 L3 1
S4 D3 Q2 L3 2 F6
S2 D2 Q2 L3 2
S2 D2 Q1 L3 1 F7
S3 D3 L3 3
S4 D2 Q1 L3 1 F8
S4 D1 Q1 L3 1 F9 S4

S3 D3 Q2 L3 2 F 10
Source/Destination Source & QoS L3 Protocol &
S1 D1 Q1 L3 2 F 11
Pairs QoS
S1 D2 Q1 L3 1 F 12
S2 D1 Q2 L3 3 F1
S1 D2 Q1 L3 1 F2 S1 D1 S1 Q1 L3 1 Q1
S4 D2 Q1 L3 3 F3 S1 D2 S1 Q2 L3 1 Q2
S3 D3 Q2 L3 3 F4 S1 D3 S2 Q1 L3 2 Q1
S2 D2 Q2 L3 2 F5 S2 D1 S2 Q2 L3 2 Q2
S3 D1 Q1 L3 1 F6
S2 D2 S3 Q1 L3 3 Q1
S2 D3 Q1 L3 2 F7
S2 D3 S3 Q2 L3 3 Q2
S3 D2 Q1 L3 2 F8
S3 D1 S4 Q1
S4 D2 Q2 L3 3 F9
S2 D1 Q1 L3 1 F 10 S3 D2 S4 Q2
S2 D1 Q1 L3 3 F 11 S3 D3

S3 D2 Q2 L3 2 F 12 S4 D1
S4 D2
55
Spirent TestCenter Stream Blocks
Filtered Stream Results
„ If Traffic Analyzer Filters are enabled, they can provide more information
regarding the received frames (such as the IP address, see next slide).

Viewed one port


at a time since
each port can be
set to a different
filter criteria.

56
Spirent TestCenter Stream Blocks
Stream Block Results

„ Pretty much the same results as with Port Traffic except


broken out individually for each Stream Block.
„ Since a single Stream Block can consist of 100s or 1000s of
streams; therefore the results cannot be updated in real-time.

57
Spirent TestCenter Stream Blocks
End of Topic

www.spirentcampus.com
58
Spirent TestCenter Stream Blocks

You might also like