Ixia Tcl Development Guide Release 3.50 Part No. 909-0003 Rev B February 5, 2002
Copyright © 1998-2/5/02 Ixia. All rights reserved. Ixia and its licensors retain all ownership rights to the IXIA 100, 400 and 1600 hardware and software and its documentation. Use of Ixia hardware and software is governed by the license agreement accompanying your original purchase. This manual, as well as the hardware and software described in it, is furnished under license and may only be used or copied in accordance with the terms of such license. The information in this manual is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by Ixia. Ixia assumes no responsibility or liability for any errors or inaccuracies that may appear in this book. Except as permitted by such license, no part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, recording, or otherwise, without the prior written permission of Ixia. RESTRICTED RIGHTS LEGEND Use, duplication, or disclosure by the U.S. Government is subject to restrictions as set forth in subparagraph 14(g)(iii) at FAR 52.227 and subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013. The following are trademarks of Ixia: IXIA 100, IXIA 400, IXIA 1600, Optixia, and the Ixia logo. All other companies and product names and logos are trademarks or registered trademarks of their respective holders. Part No. 909-0003 Rev B February 5, 2002
Contacting Ixia Corporate Headquarters
26601 W. Agoura Rd. Calabasas, CA 91302 USA
Telephone
1 (877) FOR IXIA (877-367-4942) + 1 (818) 871 1800 (International)
Fax
(818) 871-1805
Website
www.ixiacom.com
General
[email protected]
Investor Relations
[email protected]
Sales
[email protected]
Customer Support
[email protected]
Training
[email protected]
ii
Ixia Tcl Development Guide
Table of Contents Chapter 1
Introduction
The Ixia System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 ScriptGen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 Layout of This Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 Advice to Readers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6
Chapter 2
Quick Start
Development Environment . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1 Test Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3 IxSampleTcl Test Program. . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Chapter 3
Theory of Operation
Ixia Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 Chassis Chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 Chassis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2
Ixia Tcl Development Guide
iii
Table of Contents
Load Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-3 Port Hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-4 Port Transmit Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Streams and Flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Packet Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Packet Flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 Advanced Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 Bursts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 Packets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 Frame Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 PPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 Transmit Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 Port Data Capture Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 Continuous vs. Trigger Capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 Port Capture Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10 Forced Collision Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10 Packet Group Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11 Latency Measurements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11 Sequence Checking Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13 Data Integrity Checking Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13 Port Statistics Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14 Round Trip TCP Flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14
Protocol Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15 IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ARP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IGMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OSPF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BGP4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Internal Versus External BGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IBGP Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Communities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BGP Router Test Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IS-IS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RSVP-TE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PATH Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Explicit_Route. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RESV Message. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Other Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ixia Test Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-17 3-17 3-17 3-17 3-19 3-20 3-20 3-21 3-21 3-23 3-24 3-27 3-29 3-29 3-30 3-31 3-31
PPP Protocol Negotiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-32 LCP – Link Control Protocol Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33 Maximum Receive Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-36 Asynchronous Control Character Map . . . . . . . . . . . . . . . . . . . . . . . . . . 3-37
iv
Ixia Tcl Development Guide
Table of Contents
Magic Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-37 NCP – Network Control Protocols. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-38 IPCP – Internet Protocol Control Protocol Options. . . . . . . . . . . . . . . . . .3-38 IP Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-38 OSINLCP - OSI Network Layer Control Protocol . . . . . . . . . . . . . . . . . . .3-39 MPLSCP - MPLS Network Control Protocol . . . . . . . . . . . . . . . . . . . . . . .3-39 Retry Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-39
Chassis Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-40 Worldwide Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-40 Independent Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-42 Ixia 100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-42 IxClock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-43
Bit Error Rate Testing (BERT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-44 Available / Unavailable Seconds. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-46
Ixia Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-48 Tcl Software Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-49 Operation on the Ixia Chassis . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operation on a Windows Client . . . . . . . . . . . . . . . . . . . . . . . . . . . Operation on a Unix Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Multiple Client Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 4
3-50 3-51 3-52 3-53
Programming
API Structure and Conventions . . . . . . . . . . . . . . . . . . . . . . . 4-1 Standard Sub-Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
Sequence of Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4 How to write efficient scripts . . . . . . . . . . . . . . . . . . . . . . . . 4-10 Multi-Client Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11 Mpexpr versus Expr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11
Ixia Tcl Development Guide
v
Table of Contents
Chapter 5
IxTclHal API Description
Chassis, Cards and Ports . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-2 version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-2 chassisChain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-3 timeServer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-3 chassis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-4 card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-4 port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-4 mii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7 mii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 miiae . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 mmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9 mmdRegister. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9 USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 Packet over Sonet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 sonet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 sonetError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-11 ppp and pppStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-12 hdlc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14 frameRelay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14 bert and bertErrorGeneration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15
portGroups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15
Data Transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17 Streams and Flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17 stream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17
Frame Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21 Misc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . udf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . tcpRoundTripFlows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . packetGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dataIntegrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sequence Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . forcedCollisions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Link Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . isl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vlan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . mpls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vi
5-21 5-21 5-22 5-23 5-24 5-24 5-25 5-25 5-25 5-26 5-26 5-26 5-27
Ixia Tcl Development Guide
Table of Contents
mplsLabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-27 IPX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-28 ipx. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-28 ARP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-29 arp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-29 IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-30 ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-30 tcp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-31 udp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-32 igmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-33 icmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-33 rip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-34 ripRoute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-34 dhcp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-35
Data Capture and Statistics. . . . . . . . . . . . . . . . . . . . . . . . . 5-36 filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . filterPallette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . capture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . captureBuffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . stat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . statGroup and statList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . qos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . packetGroupStats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-36 5-37 5-38 5-39 5-41 5-42 5-43 5-43
Protocol Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-45 protocolServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-45 IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-45 ipAddressTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-45 ipAddressTableItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-47
ARP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-48 arpServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-48 arpAddressTableEntry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-49
IGMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-50 igmpServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-50 igmpAddressTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-51 igmpAddressTableItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-52
BGP4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-53 bgp4Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-53 bgp4InternalTable / bgp4ExternalTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-54 bgp4InternalNeighborItem / bgp4ExternalNeighborItem. . . . . . . . . . . . . . . . .5-54 bgp4RouteItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-55
Ixia Tcl Development Guide
vii
Table of Contents
bpg4AsPathItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-57 bgp4StatsQuery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-57
OSPF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-58 ospfServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ospfRouter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ospfRouteRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ospfInterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ospfUserLSAGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ospfUserLSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ospfRouterLSAInterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-58 5-59 5-61 5-62 5-64 5-64 5-65
IS-IS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-66 isisServer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . isisRouter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . isisRouteRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . isisInterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-66 5-67 5-69 5-69
RSVP-TE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-71 rsvpServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . rsvpNeighborPair. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . rsvpDestinationRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . rsvpSenderRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . rsvpEroItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . rsvpRroItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-71 5-72 5-74 5-77 5-78 5-79
RIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-80 ripServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-80 ripInterfaceRouter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-81 ripRouteRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-83
Chapter 6
High-Level and Utility API Description
Initialization and Setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3 Mapping and Port Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-3 map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5 ixCreatePortListWildCard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5 ixCreateSortedPortList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6
Including Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-6 ixSource. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6
Chassis and TclServer Connection . . . . . . . . . . . . . . . . . . . . . . . . . .6-6 ixInitialize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ixConnectToTclServer / ixDisconnectTclServer . . . . . . . . . . . . . . . . . . . . . . . ixProxyConnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ixConnectToChassis / ixDisconnectFromChassis . . . . . . . . . . . . . . . . . . . . . . ixGetChassisID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
viii
6-7 6-7 6-7 6-8 6-8
Ixia Tcl Development Guide
Table of Contents
user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-8
General Purpose Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9 ixWriteConfigToHardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-9 ixWritePortsToHardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-9
Port Ownership . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-10 ixLogin / ixLogout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-10 ixCheckOwnership. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-10 ixPortTakeOwnership / ixTakeOwnership / ixPortClearOwnership / ixClearOwnership . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-10
Data Transmission. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12 Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12 ixCheckLinkState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-12 ixCheckPPPState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-13 ixSetPortPacketFlowMode / ixSetPacketFlowMode . . . . . . . . . . . . . . . . . . . .6-13 ixSetPortPacketStreamMode / ixSetPacketStreamMode . . . . . . . . . . . . . . . .6-13 ixSetPortTcpRoundTripFlowMode / ixSetTcpRoundTripFlowMode . . . . . . . .6-14 disableUdfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-14
Start Transmit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14 ixStartPortTransmit / ixStartTransmit / ixStopPortTransmit / ixStopTransmit .6-14 ixStartStaggeredTransmit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-15 ixCheckPortTransmitDone / ixCheckTransmitDone . . . . . . . . . . . . . . . . . . . .6-15 ixStartPortCollisions / ixStartCollisions / ixStopPortCollisions / ixStopCollisions . 6-15
Calculation Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16 calculateFrameRate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-16 calculateGap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-16 validateFramesize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-16 validatePreamblesize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-16 host2addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-17 byte2IpAddr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-17 dectohex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-17 hextodec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-17
Data Capture and Statistics. . . . . . . . . . . . . . . . . . . . . . . . . 6-18 Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-18 ixSetPortCaptureMode / ixSetCaptureMode . . . . . . . . . . . . . . . . . . . . . . . . . .6-18 ixSetPortPacketGroupMode / ixSetPacketGroupMode. . . . . . . . . . . . . . . . . .6-18 ixClearTimeStamp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-19 ixClearPortStats / ixClearStats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-19 ixResetSequenceIndex / ixResetPortSequenceIndex. . . . . . . . . . . . . . . . . . .6-19
Ixia Tcl Development Guide
ix
Table of Contents
Capture Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-20 ixStartPortCapture / ixStartCapture / ixStopPortCapture / ixStopCapture. . . 6-20 ixStartPortPacketGroups / ixStartPacketGroups / ixStopPortPacketGroups / ixStopPacketGroups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-20
Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-20 ixCollectStats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-20
Protocol Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-22 Check for Installed Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-22 ixUtils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-22 isArpInstalled / isBgpInstalled / isIgmpInstalled / isIsisInstalled / isOspfInstalled / isRipInstalled / isRsvpInstalled. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-23
ARP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-23 ixEnableArpResponse / ixEnablePortArpResponse . . . . . . . . . . . . . . . . . . . ixDisableArpResponse / ixDisablePortArpResponse . . . . . . . . . . . . . . . . . . ixClearPortArpTable / ixClearArpTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ixTransmitPortArpRequest / ixTransmitArpRequest . . . . . . . . . . . . . . . . . . .
6-23 6-23 6-23 6-24
IGMP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-24 ixTransmitIgmpJoin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-24 ixTransmitIgmpLeave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-24
BGP4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-25 ixStartBGP4 / ixStopBGP4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-25
OSPF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-25 ixStartOSPF / ixStopOSPF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-25
ISIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-25 ixStartISIS / ixStopISIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-25
RIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-25 ixStartRIP / ixStopRIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-25
RSVP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-25 ixStartRSVP / ixStopRSVP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-25
Console Output and Logging . . . . . . . . . . . . . . . . . . . . . . . 6-27 Console Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-27 ixPuts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-27
Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-27 logOn / logOff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-27 logMsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-27 logger. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-28
x
Ixia Tcl Development Guide
Table of Contents
Appendix A
IxTclHAL Commands
arp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-2 arpAddressTableEntry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-7 arpServer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-8 bert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-12 bertErrorGeneration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-16 bgp4AsPathItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-19 bgp4ExternalNeighborItem . . . . . . . . . . . . . . . . . . . . . . . . .A-21 bgp4ExternalTable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-23 bgp4InternalNeighborItem. . . . . . . . . . . . . . . . . . . . . . . . . .A-25 bgp4InternalTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-27 bgp4RouteItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-29 bgp4Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-33 bgp4StatsQuery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-37 capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-45 captureBuffer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-49 card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-53 chassis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-57
Ixia Tcl Development Guide
xi
Table of Contents
chassisChain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-62 collisionBackoff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-64 dataIntegrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-65 dhcp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-69 filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-76 filterPallette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-83 forcedCollisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-87 frameRelay. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-90 hdlc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-93 icmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-98 igmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-102 igmpAddressTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-105 igmpAddressTableItem . . . . . . . . . . . . . . . . . . . . . . . . . . A-107 igmpServer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-109 ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-112 ipAddressTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-118 ipAddressTableItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-120 ipx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-122 isisInterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-128 xii
Ixia Tcl Development Guide
Table of Contents
isisRouter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-130 isisRouteRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-133 isisServer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-134 isl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-139 mii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-142 miiae . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-146 mmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-149 mmdRegister . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-150 mpls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-151 mplsLabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-154 ospfInterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-156 ospfRouter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-159 ospfRouteRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-163 ospfRouterLsaInterface . . . . . . . . . . . . . . . . . . . . . . . . . . .A-164 ospfServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-166 ospfUserLsa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-171 ospfUserLsaGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-176 packetGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-178 packetGroupStats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-183 Ixia Tcl Development Guide
xiii
Table of Contents
port. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-185 portGroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-201 ppp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-205 pppStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-210 protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-213 protocolServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-216 qos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-219 rip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-222 ripRoute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-225 ripInterfaceRouter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-227 ripRouteRange. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-230 ripServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-231 rsvpDestinationRange . . . . . . . . . . . . . . . . . . . . . . . . . . . A-235 rsvpEroItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-239 rsvpNeighborPair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-241 rsvpRroItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-244 rsvpSenderRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-246 rsvpServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-248 session. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-252 xiv
Ixia Tcl Development Guide
Table of Contents
sonet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-254 sonetError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-258 stat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-262 statGroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-279 statList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-281 stream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-282 tcp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-291 tcpRoundTripFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-294 timeServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-299 udf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-303 udp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-307 usb. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-310 version. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-312 vlan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-314
Appendix B
Utility Commands
byte2IpAddr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B-2 calculateFrameRate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B-3 calculateGap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B-4
Ixia Tcl Development Guide
xv
Table of Contents
dectohex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-5 disableUdfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-6 fastpath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-7 hextodec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-8 host2addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-9 learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-10 logMsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-12 logOff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-13 logOn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-14 logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-15 map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-16 mpexpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-18 user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-19 validateFramesize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-20 validatePreamblesize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-21
Appendix C
High-Level API
ixCheckLinkState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-2 ixCheckOwnership . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-4
xvi
Ixia Tcl Development Guide
Table of Contents
ixCheckPPPState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-6 ixCheckPortTransmitDone . . . . . . . . . . . . . . . . . . . . . . . . . .C-7 ixCheckTransmitDone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-9 ixClearArpTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-11 ixClearOwnership . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-12 ixClearPortArpTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-13 ixClearPortStats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-14 ixClearStats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-15 ixClearTimeStamp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-17 ixCollectStats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-19 ixConnectToChassis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-21 ixConnectToTclServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-23 ixCreatePortListWildCard . . . . . . . . . . . . . . . . . . . . . . . . . .C-24 ixCreateSortedPortList . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-25 ixDisableArpResponse . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-26 ixDisablePortArpResponse . . . . . . . . . . . . . . . . . . . . . . . . .C-28 ixDisconnectFromChassis. . . . . . . . . . . . . . . . . . . . . . . . . .C-29 ixDisconnectTclServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-30 ixEnableArpResponse. . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-31 Ixia Tcl Development Guide
xvii
Table of Contents
ixEnablePortArpResponse. . . . . . . . . . . . . . . . . . . . . . . . . C-33 ixGetChassisID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-35 ixInitialize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-36 ixIsArpInstalled. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-38 ixIsBgpInstalled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-39 ixIsIgmpInstalled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-40 ixIsIsisInstalled. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-41 ixIsIsisInstalled. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-42 ixIsRipInstalled. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-43 ixIsRsvpInstalled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-44 ixGetLineUtilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-45 ixLogin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-46 ixLogout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-47 ixPortClearOwnership . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-48 ixPortTakeOwnership . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-49 ixProxyConnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-50 ixPuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-52 ixResetPortSequenceIndex . . . . . . . . . . . . . . . . . . . . . . . . C-53 ixResetSequenceIndex . . . . . . . . . . . . . . . . . . . . . . . . . . . C-54 xviii
Ixia Tcl Development Guide
Table of Contents
ixSetCaptureMode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-56 ixSetPacketFlowMode. . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-58 ixSetPacketGroupMode . . . . . . . . . . . . . . . . . . . . . . . . . . .C-60 ixSetPacketStreamMode . . . . . . . . . . . . . . . . . . . . . . . . . . .C-62 ixSetPortCaptureMode . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-64 ixSetPortPacketFlowMode . . . . . . . . . . . . . . . . . . . . . . . . .C-65 ixSetPortPacketGroupMode . . . . . . . . . . . . . . . . . . . . . . . .C-66 ixSetPortPacketStreamMode . . . . . . . . . . . . . . . . . . . . . . .C-67 ixSetPortTcpRoundTripFlowMode . . . . . . . . . . . . . . . . . . . .C-68 ixSetTcpRoundTripFlowMode . . . . . . . . . . . . . . . . . . . . . . .C-69 ixSource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-71 ixStartBGP4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-72 ixStartCapture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-74 ixStartCollisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-76 ixStartIsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-78 ixStartOspf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-80 ixStartPacketGroups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-82 ixStartPortCapture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-84 ixStartPortCollisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-85 Ixia Tcl Development Guide
xix
Table of Contents
ixStartPortPacketGroups . . . . . . . . . . . . . . . . . . . . . . . . . . C-87 ixStartPortTransmit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-89 ixStartRip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-90 ixStartRsvp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-92 ixStartStaggeredTransmit. . . . . . . . . . . . . . . . . . . . . . . . . . C-94 ixStartTransmit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-96 ixStopBGP4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-98 ixStopCapture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-100 ixStopCollisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-102 ixStopIsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-104 ixStopOspf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-106 ixStopPacketGroups . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-108 ixStopPortCapture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-110 ixStopPortCollisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-112 ixStopPortPacketGroups . . . . . . . . . . . . . . . . . . . . . . . . . C-114 ixStopPortTransmit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-116 ixStopRip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-117 ixStopRsvp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-119 ixStopTransmit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-121 xx
Ixia Tcl Development Guide
Table of Contents
ixTakeOwnership . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-123 ixTransmitArpRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-124 ixTransmitIgmpJoin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-126 ixTransmitIgmpLeave . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-128 ixTransmitPortArpRequest . . . . . . . . . . . . . . . . . . . . . . . .C-130 ixUtils. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C-131 ixWriteConfigToHardware . . . . . . . . . . . . . . . . . . . . . . . . .C-133 ixWritePortsToHardware . . . . . . . . . . . . . . . . . . . . . . . . . .C-135
Appendix D
Miscellaneous Unsupported Commands
send_arp_frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-2 send_fastpath_frames. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-3 send_learn_frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-4 send_ripx_frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-5
Appendix E
ScriptGen Usage
ScriptGen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .E-1 Invoking ScriptGen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . E-1 Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . E-1 Unix Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . E-2
Appendix F
TclServer Usage
TclServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-1 Ixia Tcl Development Guide
xxi
Table of Contents
Installation and Invocation . . . . . . . . . . . . . . . . . . . . . . . . . . F-2 Tcl Server Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-3 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .F-4 Advance Usage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .F-5
Appendix G
Available Statistics
Table Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-2 IxExplorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-2 Statistics Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-2 Extra Statistics Checkboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-2 Receive Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-3 Key To Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-3
TCL Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-4 Statistics Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-4 Extra Statistics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-4 Receive Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-5
C++ Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-5 Statistics Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-5 Extra Statistics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-5 Receive Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-6
Description of Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-6 Notes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-19
xxii
Ixia Tcl Development Guide
List of Figures Figure 1-1.
System Overview Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-2
Figure 2-2.
Expected Output from IxSampleTcl.tcl Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-2
Figure 2-3.
Sample Test Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-3
Figure 3-4.
Ixia Chassis Chain and Control Workstation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-2
Figure 3-5.
Ixia 1600 Interior View (Top View) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-3
Figure 3-6.
Inter-Stream Gap (ISG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-6
Figure 3-7.
Inter-Burst Gap (IBG)/Burst Gap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-6
Figure 3-8.
Inter-Packet Gap (IPG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-7
Figure 3-9.
Forced Collisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11
Figure 3-10. Packet Format for Packet Groups/Latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11 Figure 3-11. Multiple Latency Time Measurements - Example . . . . . . . . . . . . . . . . . . . . . . . . . . .3-12 Figure 3-12. Packet Format for Sequence Checking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-13 Figure 3-13. Packet Format for Data Integrity Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-14 Figure 3-14. RoundTrip TCP Flows Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-15 Figure 3-15. Sample OSPF Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-19 Figure 3-16. EBGP versus IBGP Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-20 Figure 3-17. BGP Interconnection Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-21 Figure 3-18. Generation of Network Addresses in BGP UPDATE Messages . . . . . . . . . . . . . . . .3-22 Figure 3-19. IS-IS Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-26 Figure 3-20. RSVP-TE Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-27 Figure 3-21. Worldwide Deployment of Synchronized Chassis . . . . . . . . . . . . . . . . . . . . . . . . . . .3-40 Figure 3-22. Independent Chassis Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-42 Figure 3-23. Chassis Timing Using an Ixia 100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-43 Figure 3-24. IxClock Chassis Timing Choices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-44 Figure 3-25. BERT Inserted Error Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-45 Figure 3-26. BERT- Unavailable/Available Periods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-47 Figure 3-27. Software Modules used on an Ixia Chassis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-50 Figure 3-28. Software Modules used on a Windows Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-51
Ixia Tcl Development Guide
xxiii
List of Figures
Figure 3-29. Software Modules used on a Unix Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-52 Figure 3-30. Multi-Client Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-53 Figure 4-31. Standard Method Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3 Figure 5-32. IGMP Command Hierarchy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-50 Figure 5-33. BGP4 Command Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-53 Figure 5-34. OSPF Command Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-58 Figure 5-35. ISIS Command Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-66 Figure 5-36. RSVP Command Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-71 Figure 5-37. RIP Command Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-80 Figure 6-1.
Traffic Mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4
Figure E-1.
Wish Console Icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .E-1
Figure E-2.
ScriptGen Usage Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .E-2
Figure F-1.
Tcl Server on an Ixia Chassis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-1
Figure F-2.
Tcl Server on an Independent Windows Host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-2
Figure F-3.
Initial Tcl Server Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-3
Figure F-4.
Tcl Server with Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-3
Figure F-5.
IxTclServer Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-4
Figure F-6.
Serial Port Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-6
Figure G-7.
Statistics Mode Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-2
Figure G-8.
Receive Mode Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-3
xxiv
Ixia Tcl Development Guide
List of Tables TABLE 4-1. TABLE 4-2. TABLE 5-20. TABLE 5-21. TABLE 5-22. TABLE 5-23. TABLE 5-24. TABLE 5-25. TABLE 5-26. TABLE 5-27. TABLE 5-28. TABLE 5-29. TABLE 5-30. TABLE 5-31. TABLE 5-32. TABLE 5-33. TABLE 5-34. TABLE 5-35. TABLE 5-36. TABLE 5-37. TABLE 5-38. TABLE 5-39. TABLE 5-40. TABLE 5-41. TABLE 5-42. TABLE 5-43. TABLE 5-44. TABLE 5-45. TABLE 5-46. TABLE 5-47.
Standard Options4-1 Traffic Map Array4-5 session Options5-2 session Sub-Commands5-2 chassisChain Options5-3 chassisChain Sub-Commands5-3 timeServer Command Options5-3 chassis Options5-4 chassis Sub-Commands5-4 card Options5-4 port Options5-5 port Sub-Commands5-7 mii Options5-8 mii Sub-Commands5-8 miiae Options5-8 miiae Sub-Commands5-8 mmd Options5-9 mmd Sub-Commands5-9 mmdRegister Options5-9 usb Options5-10 usb Sub-Commands5-10 sonet Options5-11 sonetError Options5-12 sonetError Sub-Commands5-12 ppp/pppStatus Options5-12 hdlc Options5-14 hdlc Sub-Commands5-14 frameRelay Options5-14 bert Options5-15 bertErrorGeneration Options5-15
Ixia Tcl Development Guide
xxv
List of Figures
TABLE 5-48. TABLE 5-49. TABLE 5-50. TABLE 5-51. TABLE 5-52. TABLE 5-53. TABLE 5-54. TABLE 5-55. TABLE 5-56. TABLE 5-57. TABLE 5-58. TABLE 5-59. TABLE 5-60. TABLE 5-61. TABLE 5-62. TABLE 5-63. TABLE 5-64. TABLE 5-65. TABLE 5-66. TABLE 5-67. TABLE 5-68. TABLE 5-69. TABLE 5-70. TABLE 5-71. TABLE 5-72. TABLE 5-73. TABLE 5-74. TABLE 5-75. TABLE 5-76. TABLE 5-77. TABLE 5-78. TABLE 5-79. TABLE 5-80. TABLE 5-81. TABLE 5-82. TABLE 5-83. TABLE 5-84. TABLE 5-85. TABLE 5-86. TABLE 5-87. TABLE 5-88. TABLE 5-89. TABLE 5-90. TABLE 5-91. TABLE 5-92.
xxvi
bertErrorGeneration Sub-Commands5-15 portGroup Options5-16 portGroup Sub-Commands5-16 stream Options5-18 stream Sub-Commands5-21 udf Options5-21 tcpRoundTripFlows options5-22 packetGroup Options5-23 packetGroup Sub-Commands5-23 dataIntegrity Options5-24 dataIntegrity Sub-Commands5-24 forcedCollisions Members5-25 protocol Options5-25 isl Options5-26 vlan Options5-26 mpls Options5-27 mpls Options5-27 ipx options5-28 arp options5-29 ip Options5-30 tcp options5-31 udp Options5-32 igmp Options5-33 icmp Options5-33 rip Options5-34 ripRoute Options5-34 dhcp Options5-35 dhcp Sub-Commands5-35 filter Options5-37 filterPallete Options - DA/SA5-38 filterPallette Options - Pattern 1/25-38 capture Options5-38 captureBuffer Options5-39 captureBuffer Sub-Commands5-40 statistics Options5-41 statistics Sub-Commands5-41 statGroup Options5-42 statGroup Sub-Commands5-42 statList Options5-42 statList Sub-Commands5-42 qos Options5-43 qos Sub-Commands5-43 packetGroupStats options5-43 packetGroupStats Sub-Commands5-44 protocolServer Options5-45
Ixia Tcl Development Guide
List of Tables
TABLE 5-93. TABLE 5-94. TABLE 5-96. TABLE 5-97. TABLE 5-95. TABLE 5-98. TABLE 5-99. TABLE 5-101. TABLE 5-100. TABLE 5-102. TABLE 5-103. TABLE 5-104. TABLE 5-105. TABLE 5-106. TABLE 5-107. TABLE 5-108. TABLE 5-109. TABLE 5-110. TABLE 5-112. TABLE 5-113. TABLE 5-114. TABLE 5-111. TABLE 5-115. TABLE 5-116. TABLE 5-117. TABLE 5-118. TABLE 5-119. TABLE 5-120. TABLE 5-121. TABLE 5-122. TABLE 5-123. TABLE 5-124. TABLE 5-125. TABLE 5-126. TABLE 5-127. TABLE 5-128. TABLE 5-129. TABLE 5-130. TABLE 5-131. TABLE 5-132. TABLE 5-133. TABLE 5-134. TABLE 5-135. TABLE 5-136. TABLE 5-137.
Typical Address Table Operations5-46 ipAddressTable Options5-46 addressTableItem Options5-47 addressTableItem Sub-Commands5-47 ipAddressTable Sub-Commands5-47 Typical Address Table Operations5-48 arpServer Options5-48 arpAddressTableEntry Options5-49 arpServer Sub-Commands5-49 igmpServer Options5-50 Typical Address Table Operations5-51 igmpAddressTable Sub-Commands5-52 igmpAddressTableItem Options5-52 bgp4InternalTable / bgp4ExternalTable Options5-54 bgp4InternalTable / bgp4ExternalTable Sub-Commands5-54 bgp4InternalNeighborItem / bgp4ExternalNeighborItem Options5-55 bgp4InternalNeighborItem / bgp4ExternalNeighborItem Sub-Commands5-55 bgp4RouteItem Options5-56 bgp4AsPathItem Options5-57 bgp4StatsQuery Options5-57 bgp4StatsQuery Sub-Commands5-57 bgp4RouteItem Sub-Commands5-57 ospfServer Sub-Commands5-59 ospfRouter Options5-60 ospfRouter Sub-Commands5-60 ospfRouteRange Options5-61 ospfInterface Options5-62 ospfInterface Sub-Commands5-63 ospfUserLSAGroup Options5-64 ospfUserLSAGroup Sub-Commands5-64 ospfUserLSA Sub-Commands5-65 isisServer Sub-Commands5-66 isisRouter Options5-67 isisRouter Sub-Commands5-68 isisRouteRange Options5-69 isisInterface Options5-69 rsvpServer Sub-Commands5-72 rsvpNeighborPair Options5-73 rsvpRouter Sub-Commands5-73 rsvpDestinationRange Options5-75 rsvpDestinationRange Sub-Commands5-76 rsvpSenderRange Options5-77 rsvpEroItem Options5-79 rsvpRroItem Options5-79 ripServer Sub-Commands5-80
Ixia Tcl Development Guide
xxvii
List of Figures
TABLE 5-138. TABLE 5-139. TABLE 5-140. TABLE 6-1. TABLE 6-2. TABLE 6-3. TABLE 6-4. TABLE 6-5. TABLE E-1. TABLE F-1. Table F-1. Table F-2.
xxviii
ripInterfaceRouter Options5-81 ripInterfaceRouter Sub-Commands5-82 ripRouteRange Options5-83 map Options6-5 map Sub-Commands6-5 user Options6-8 logger Options6-28 logger Sub-Commands6-28 ScriptGen Usage Dialog FieldsE-2 Tcl Server MenusF-4 IxTclServer OptionsF-5 Tcl Server Menu OptionsF-5
Ixia Tcl Development Guide
1
Chapter 1:
Introduction
The Ixia System The Ixia system is the most comprehensive tool available for testing multi-layer 10/100 Mbps Ethernet, Gigabit Ethernet and Packet over Sonet switches, routers, and networks. The Optixia offers the highest port density available with support for up to 480 ports in a chassis. Depending on technology, up to four ports are packaged on a card, also referred to as a load module. Any combination of cards may be included in a single chassis. The IXIA 400 is a powerful desktop system that holds four load modules of any type. The highly scalable architecture supports daisy-chaining of up to 256 chassis that may be synchronized to within 10 nanoseconds. Thus, even the most complex systems can be tested thoroughly and cost-effectively. The Ixia product family includes the chassis, load modules, the IxExplorer software program, and optional Tcl scripts and related software as well as Tcl and C++ development environments. A chassis can be configured with any mix of load modules, and multiple chassis can be daisy-chained and synchronized to support very large and complex test environments. The IxExplorer software provides complete configuration, control, and monitoring of all Ixia resources in the test network, and the Tcl scripts allow the user to rapidly conduct the most popular industry benchmark tests. The user can configure and control the unit directly via back-panel connections to a keyboard, mouse, monitor, and printer. Also, the unit can be connected to an Ethernet network and an administrator can remotely monitor and control it using the IxExplorer software program. Multiple users can access the unit simultaneously, splitting the ports within a chassis and controlling the activity and configuration of all ports and functions. Front panel displays give immediate indication of link state, transmission or reception of packets, and error conditions. This guide provides a description of the Ixia's Tcl Command Library for writing customized Tcl application programs to control the Ixia hardware platform.
Ixia Tcl Development Guide
1-1
1
Introduction The Ixia System
The Ixia Tcl Command library provides full access to the Ixia hardware platform. Configurations can be sent to the hardware and various programs can be created and executed on the system. Tcl scripting allows automation of testing procedures when tens to thousands of ports are involved. Ixia’s Tcl Command Library is built using a combination of commands that are written in Tcl and commands that are implemented in C/C++. The figure below shows the location of the C++ API Client (IxTclHAL) in the overall picture of the Ixia hardware platform.
IxExplorer
Tcl Client
IxTclHAL
IxHAL
IxHAL
IxHAL
IxServer
HARDWARE Figure 1-1.
System Overview Diagram
The IxServer module resides on the computer connected to the test hardware and is responsible for control and operation of the hardware. A single IxServer module exists per chassis. The IxHAL (Hardware Abstraction Layer) is a C++ based application that provides a higher level abstraction of the Ixia hardware. Working with IxServer, it operates the hardware chassis, cards and ports. When the test software (IxExplorer, ScriptMate, Tcl based applications and C++ based applications) reside on a different computer than the test hardware, an additional IxHAL copy resides on the remote machine. These two copies act in concert to provide a single interface to upper layers of software. IxHAL serves as a buffer for configuration information, saving and buffering this data until it receives a command to transfer the data to or from the hardware via
1-2
Ixia Tcl Development Guide
Introduction The Ixia System
IxServer. The IxExplorer software, for example, uses its copy of IxHAL to hold configuration data until it is transferred to the hardware. In the case of Tcl applications, the Tcl Command Library is a set of Tcl commands that are used to configure the traffic generation, capture and statistics parameters on the Ixia hardware platform. Tcl applications use these commands to configure test parameters and then use a ‘set’ option to transfer the information into IxHAL. A ‘write’ option causes IxHAL to send the information to the hardware. To retrieve status, captured data and statistics the application uses a ‘get’ option which retrieves the information from IxHAL into IxTclHAL. A ‘cget’ option retrieves these values for use in Tcl applications. Discussions of Tcl commands can be found in:
• IxTclHal API Description – a discussion of the Tcl commands in IxTclHAL. • Appendix A - IxTclHAL Commands – a complete description of the Tcl Command Library.
• Appendix B - Utility Commands – a number of additional provided utility commands.a number of additional Tcl commands that are used in most tests.
• Appendix C - High-Level API – a number of additional Tcl commands that are used in most tests.
• Appendix D - Miscellaneous Unsupported Commands – additional commands provided without support. Custom applications or test scripts can be written using Ixia's Tcl Command Library. For Windows users, as in standard Tcl/Tk packages, Ixia provides a Dynamic Link Library (DLL) file for Windows 95/NT that may be loaded into a standard Tcl shell or Wish Console. The DLL gives access to the IxTclHal Command library. For Unix users, the IxTclHal package connects to an instance of a TclServer on a Ixia chassis, where the DLL is used. After installing the Tcl Client on the workstation, the Tcl package can be loaded by launching the Tcl Shell (double-clicking the Wish Console icon on the Desktop) and typing in the following command: %package require IxTclHal
Now all the Ixia Tcl commands will be available. If a new script is to be written, this should be the first line of the script file. The package command can also be used inside a previously written script, which could be loading other Tcl extensions such as Expect, Tcl-DP.
Ixia Tcl Development Guide
1-3
1
Introduction ScriptGen
ScriptGen ScriptGen is an auxiliary Tcl tool that is installed as part of the Tcl Client package. It’s purpose is to create a Tcl program which reflects the configuration of a particular port. ScriptGen is run from a Wish Console and the resulting program is written to disk and shown in the console window. The configuration of the port may have been established through the use of any of the Ixia tools: IxExplorer, ScriptMate, TCL API or C++ API. The operation of ScriptGen is described in Chapter E - ScriptGen.
1-4
Ixia Tcl Development Guide
Introduction Layout of This Manual
Layout of This Manual This Guide has a number of chapters and appendices in order to convey usage and reference information. The chapters of the manual are: Chapter 1 - Introduction. This chapter. Chapter 2 - Quick Start. An overview of a complete, useful Tcl example program. Using this, the basic flow of programming and operation can be viewed. Chapter 3 - Theory of Operation. Explains the conceptual model behind the Ixia hardware, so that the API’s functions and features can be completely understood. Chapter 4 - Programming. Explains the basic structure and operation of all of the Tcl Commands. Chapter 5 - IxTclHal API Description. Organizes the APIs into related discussion groups and describes how to use them at a high level. Appendix A - IxTclHAL Commands. An alphabetical set of reference sheets for all of the Tcl Commands. Appendix B - Utility Commands. An alphabetical set of reference sheets for additional test related commands. Appendix C - High-Level API. Commands which perform a combination of functions against a number of ports. Appendix D - Miscellaneous Unsupported Commands. An alphabetical set of reference sheets for supplied utility commands. Appendix E - ScriptGen Usage. A description of the ScriptGen utility usage. Appendix G - Available Statistics. A description of available statistics.
Ixia Tcl Development Guide
1-5
1
Introduction Advice to Readers
Advice to Readers Everyone should read and understand the Quick Start chapter. Most C++ programs will follow a very similar structure. People unfamiliar with the Ixia system should read the Theory of Operation chapter to understand how the hardware functions. The Programming chapter is an essential element in understanding how the APIs are to be used. The API description chapter should be read, in part, as the elements are needed. For example, you need not read the Packet over Sonet (sonet, etc.) sections until you need to use PoS cards. The appendices should be used for reference.
1-6
Ixia Tcl Development Guide
2
Chapter 2:
Quick Start
Development Environment This chapter provides a quick means of getting started with the Tcl API. An example test is presented and explained. The IxSampleTcl.tcl file may be run only in the following environment: •
On the Ixia chassis.
•
On a computer running Windows 95/98/NT/2000 or on Sun Solaris or Red Hat Linux systems. You must install the Ixia Tcl client on the platform
The test script is configured to expect a 2-port or 4-port card in chassis slot 4, for a user george connecting to chassis work. Change these in the source file as necessary for your scenario. The example is located in the
\TclScripts\SampleStd directory. This is usually C:\Program Files\Ixia\TclScripts\SampleStd. The steps necessary to build and execute IxSampleC.cpp are: 1. Start the Wish Console from the Ixia program group in the Start menu. 2. Use the File->Source menu option to open the IxSampleTcl.tcl file or type source “c:/Program Files/Ixia/TclScripts/SampleStd/IxSampleTcl.tcl”
3. The expected output for two 10/100 ports is shown in Figure 2-2 on page 2-2. (1)Ixia Tcl Sample Script (2) (3)User logged in as: george (4)Connecting to Chassis 1: 192.168.3.61 ... (5)Took ownership of following ports: (6){1 2 1} {1 2 2} (7) (8)IxTclHAL Version :3.50 (9)Product version :3.50 (10)Installed version :Ixia Software v12 (11) (12)Setting ports to factory defaults...
Ixia Tcl Development Guide
2-1
2
Quick Start Development Environment
(13)Checking link states on ports ... (14)Links on all ports are up. (15)Configuring 1 2 1 --> 1 2 2 (16)Resetting Statistics ... (17)Start capture... (18)Start transmit... (19)Transmittion is complete. (20)Stop capture... (21) (22)Number of frames sent :200 (23)Tx line speed :100 (24)Rx line speed :100 (25)Number of frames received :200 (26)Number of packets captured :200 (27) (28)Sample test complete. (29) (30)0
Figure 2-2.
2-2
Expected Output from IxSampleTcl.tcl Execution
Ixia Tcl Development Guide
Quick Start Test Environment
Test Environment The test environment in which the IxExampleTcl.tcl test executes is illustrated in Figure 2-3 on page 2-3.
Card 1
Card 2
Card 3
Card 4
Card 5
Card 6
Card 7
Card 8
Card 9 Card 10
Card 11 Card 12 Card 13 Card 14 Card 15 Card 16
Port 1
Port 2
Ixia Chassis
Program m ing Station
Figure 2-3.
Ixia Tcl Development Guide
Sample Test Setup
2-3
2
Quick Start IxSampleTcl Test Program
IxSampleTcl Test Program The IxSampleTcl.tcl file is included just below, along with comments which explain the test. (1) # The following is an example of how streams, ports and filters are (2) # configured, data capture started, transmission started and statistics (3) # collected. (4) # The chassis is connected to first, streams are created, filters are set, (5) # then capture is started on Rx port and transmisssion is started on Tx port. (6) # After the transmission is complete, some statistics are collected and (7) # displayed to standard out. (8) # Note: This test requires two ports which should be connected via a (9) # loopback cable. (10) (11)# This package is required to have access to the Ixia Tcl commands (12) package req IxTclHal (13) (14) set userName george (15) set hostname work (16) set chasId 1 ;# This test presumes chassis 1 (17) set card 4 ;# Card number four (18) set txport 1 ;# Port 1 transmits and (19) set rxport 2 ;# Port 2 receives (20) (21) # The high level API commands can either use a list of ports or (22) # work with a global array as defined below (23) set txPortList {{1 4 1}} (24) set rxPortList {1,4,2} (25) set portList {{1 4 1} {1 4 2}} (26) (27) ixPuts “\n\tIxia Tcl Sample Script” (28) (29) # Log in user (30) ixLogin $userName ;# User login allows for multi-user programming (31) ixPuts “\nUser logged in as: $userName” (32) (33) if [ixInitialize $hostname] { (34) return 1 (35) } (36) (37) # Take ownership of the ports (38) if [ixTakeOwnership $portList]{ (39) return 1 (40) } (41) (42) (43) ################################################################## (44) # Set up one to one port mapping and remove any existing map (45) map new -type one2one (46) map config -type one2one (47) (48) # --------- TX ----------------- RX --------(49) # chassis card port chassis card port (50) map add $chasId $card $txport $chasId $card $rxport (51) ################################################################## (52) (53) (54) # Display version information (55) ixPuts “\nIxTclHAL Version :[version cget -ixTclHALVersion]” (56) ixPuts “Product version :[version cget -productVersion]”
2-4
Ixia Tcl Development Guide
Quick Start IxSampleTcl Test Program
(57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119)
ixPuts “Installed version
:[version cget -installVersion]\n”
# Set ports to factory defaults ixPuts “Setting ports to factory defaults...” if [port setFactoryDefaults $chasId $card $txport] { errorMsg “Error setting factory defaults on port $txport.” set retCode 1 } if [port setFactoryDefaults $chasId $card $rxport] { errorMsg “Error setting factory defaults on port $rxport.” set retCode 1 } # Writes port properties in hardware if {[ixWritePortsToHardware one2oneArray]} { ixPuts “Error writing port to hardware” set retVal 1 } # Checks the link state of the ports if {[ixCheckLinkState one2oneArray]} { return -code error } logMsg “Configuring $chasId $card $txport --> $chasId $card $rxport” # Set default values stream setDefault udf setDefault filter setDefault filterPallette setDefault stream config stream config
-numFrames 10 -framesize 64
;# Generate 10 frames ;# each of 64 bytes
# get the mac & Ip addresses for the destination/source addresses if [port get $chasId $card $txport] { errorMsg “TxPort $chasId,$card,$txport not configured yet!” set retCode 1 } # Stream’s source address is default port Mac Address stream config -sa [port cget -MacAddress] # Same for receive port if [port get $chasId $card $rxport] { errorMsg “RxPort $chasId,$card,$rxport not configured yet!” set retCode 1 } stream config -da [port cget -MacAddress] # Configure 20 streams on Tx port for {set streamID 1} {$streamID <= 20} {incr streamID} { # IP addresses are based on stream number ip config -sourceIpAddr $streamID.1.1.1 ip config -destIpAddr $streamID.1.1.2
Ixia Tcl Development Guide
if [ip set $chasId $card $txport] { logMsg “Error setting IP on $chasId,$card,$txport” set retCode 1 } # set each stream to advance to the next
2-5
2
Quick Start IxSampleTcl Test Program
(120) stream config -name “stream $streamID” (121) stream config -dma advance (122) # Except for the last one, which will stop (123) if { $streamID == 20 } { (124) stream config -dma stopStream (125) } (126) (127) # Set user defined field 4 to set a single value of “db010402” in (128) # this example (129) set udfPattern [format “db %02x %02x %02x” $chasId $card $rxport] (130) (131) udf config -enable true (132) udf config -offset 42 (133) udf config -initval $udfPattern (134) udf config -countertype c32 (135) udf config -maskselect {00 00 00 00} (136) udf config -maskval {00 00 00 00} (137) udf config -random false (138) udf config -continuousCount false (139) udf config -repeat 1 (140) (141) if [udf set 4] { (142) errorMsg “Error setting UDF 4” (143) set retCode 1 (144) } (145) # Set the stream data (146) if [stream set $chasId $card $txport $streamID] { (147) errorMsg “Error setting stream $streamID on $chasId,$card,$txport” (148) set retCode 1 (149) } (150) } (151) (152) # Set the filter parameters on the receive port to look for UDF pattern (153) filterPallette config -pattern2 $udfPattern (154) filterPallette config -patternOffset2 [udf cget -offset] (155) (156) # Set up user defined statistics to count the pattern (157) filter config -userDefinedStat2Pattern pattern2 (158) filter config -userDefinedStat2Enable true (159) filter config -userDefinedStat2Error errGoodFrame (160) (161) # Must enable capture trigger and filter (162) filter config -captureTriggerEnable true (163) filter config -captureFilterEnable true (164) (165) # Set values for filter pallette (166) if [filterPallette set $chasId $card $rxport] { (167) errorMsg “Error setting filter pallette for $chasId,$card,$rxport.” (168) set retCode 1 (169) } (170) (171) # set values for filter (172) if [filter set $chasId $card $rxport] { (173) errorMsg “Error setting filters on $chasId,$card,$rxport.” (174) set retCode 1 (175) } (176) (177) # Writes all the configuration on ports in hardware (178) if [ixWriteConfigToHardware one2oneArray] { (179) return -code error (180) } (181)
2-6
Ixia Tcl Development Guide
Quick Start IxSampleTcl Test Program
(182) (183) (184) (185) (186) (187) (188) (189) (190) (191) (192) (193) (194) (195) (196) (197) (198) (199) (200) (201) (202) (203) (204) (205) (206) (207) (208) (209) (210) (211) (212) (213) (214) (215) (216) $rxport” (217) (218) (219) (220) (221) (222) (223)i $rxport” (224) (225) (226) (227) (228) (229) (230) (231) (232) (233) (234) (235) (236) (237) (238) (239) (240) (241) (242)
# Zero all statistic counters on ports if [ixClearStats one2oneArray] { return -code error }
# Start capture on Rx port ixPuts “Start capture...” if [ixStartCapture rxPortList] { return -code error } # Start transmission on Tx port ixPuts “Start transmit...” if [ixStartTransmit txPortList] { return -code error } after 2000 # Checks whether transmission is done on a group of ports if {[ixCheckTransmitDone txPortList] == 0} { return -code error } ixPuts “Transmission is complete.” # Stop capture on ports ixPuts “Stop capture...” if [ixStopCapture rxPortList] { return -code error } # Wait a second after 1000 if [stat get statAllStats $chasId $card $txport] { ixPuts “Statistics get statAllStats failed for $chasId $card return 1 } ixPuts “\nNumber of frames sent ixPuts “Tx line speed
:[stat cget -framesSent]” :[stat cget -lineSpeed]”
if [stat get statAllStats $chasId $card $rxport] { ixPuts “Statistics get statAllStats failed for $chasId $card return 1 } ixPuts “Rx line speed ixPuts “Number of frames received
:[stat cget -lineSpeed]” :[stat cget -userDefinedStat2]”
if [capture get $chasId $card $rxport] { ixPuts “Error getting capture data on #chasId $card $rxport” return 1 } ixPuts “Number of packets captured :[capture cget -nPackets]” ixPuts “\nSample test complete.\n” # Clear the ownership of the ports ixClearOwnership $portList # Log off user ixLogout
Ixia Tcl Development Guide
2-7
2
Quick Start IxSampleTcl Test Program
2-8
Ixia Tcl Development Guide
3
Chapter 3:
Theory of Operation
Ixia Hardware In this chapter, we’ll discuss the unifying concepts behind the Ixia system. Both the software and hardware structures, and their usage, will be discussed.
Chassis Chain
At the highest level, the Ixia hardware is structured as a chain of chassis—up to 256 of them, of four different types of chassis. The Optixia chassis is capable of holding up to 480 ports. The Ixia 1600 chassis is capable of holding up to 16 load modules of various media types and speeds. The Ixia 400 chassis is capable of holding up to 4 load modules. The Ixia 100 chassis is capable of holding one load module. Each load module for 100/400/1600 chassis supports up to 8 ports. Up to 48 ports are supported on Optixia load modules—which can result in a very large number of ports for the overall system. Multiple Ixia chassis are chained together through special Sync-out/Sync-in cables that allow for port-to-port synchronization across locally connected chassis within 10ns. Figure 3-4 is a representation of an independent Ixia chassis chain and control network. Chassis are chained together through their sync cables. The first chassis in a chain has a Sync-out connection (no Sync-in) , and is called the ‘Master’ chassis. All other chassis in the chain are termed ‘Slaves’.
Ixia Tcl Development Guide
3-1
3
Theory of Operation Ixia Hardware
Master
Slave
Ethernet Network
Sync out
Sync Sync out in
Device Under Test (DUT)
Control Workstations
Other Slaves
Workstation
Workstation
Figure 3-4.
Ixia Chassis Chain and Control Workstation
Multiple, geographically-separated, independent chassis and chassis chains may be synchronized with a high degree of accuracy by using alternate time sources, an Ixia 100 chassis, and/or an IxClock module. Both the Ixia 100 and IxClock devices include an integral GPS or CDMA receiver which is used for worldwide chassis synchronization. See Chassis Synchronization on page 3-40 for a complete discussion of chassis timing. Ports from the chassis are connected to the Device Under Test (DUT) using cables appropriate for the media. Ports from any chassis may be connected to the similar ports on the DUT. It is even possible to connect multiple independent DUT’s to different ports on different chassis. Each chassis is driven by an Intel Pentium-based PC running Windows 2000 or 95, and Ixia-supplied software. Each chassis may be directly connected to a monitor, keyboard, and mouse to create a stand-alone system, but it is typical to connect all chassis via an Ethernet network and run the IxExplorer client software, Tcl client software, or C++ API-based software on one or more external control PC workstations. Tcl client software runs on Windows NT/95/98/2000 based systems as well as several Unix-based systems.
Chassis
3-2
Each Ixia chassis can operate as a complete stand-alone system, when connected to a local monitor, keyboard, and mouse. The interior of an Ixia 1600 chassis is shown in Figure 3-5.
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
(BACK) Ethernet link NIC Card
PC Motherboard Ixia Backplane/Bus
Load Modules (FRONT) Figure 3-5.
Ixia 1600 Interior View (Top View)
The PC embedded in the chassis system is an Intel-compatible computer system which includes: •
A Pentium processor
•
Main memory
•
Keyboard interface
•
Mouse interface
•
Internal connection to the Ixia Backplane
•
Video interface capable of 1024 x 768 resolution
•
10/100 Mbps Ethernet Network Interface Card (NIC)
The Ixia Backplane is connected to the PC Motherboard, through an Ixia custom ISA interface card, and to the card slots where the Ixia load modules are installed.
Load Modules
Although each Ixia load module differs in particular capabilities, all modules share a common set of functions. Ixia load modules are generally categorized by network technology. The network technologies supported, along with names used to reference these technologies and more detailed information on load module differences, are available in the Ixia Hardware Guide. The Load Module Name Prefix is used as the prefix to all load modules for that technology; for example, LM 100 in LM 100 TX. Some load modules are further labelled by the type of connector supported. Thus, a load module’s name can be formed from a combination of its basic technology and the connector type. For example, LM 100 TX is the name of the 10/100 load module with RJ-45 connectors. An example for Packet Over Sonet (POS) is the LMOC48c POS module, where no connector type is specified. In addition, less expensive versions of several load modules are available. These are called Type-3 or Type-M modules, signified by an ending of ‘-3’ or ‘-M’ in the load module name.
Ixia Tcl Development Guide
3-3
3
Theory of Operation Ixia Hardware
Port Hardware
The ports on the Ixia load modules provide high-speed, sophisticated transmit, capture, and statistics operation. The discussion which follows is broken down into a number of areas: •
Port Transmit Capabilities—facilities for generating data traffic • Streams and Flows—a set of packets, which may be grouped into bursts • Bursts—a number of packets • Packets—individual frames/packets of data
•
Frame Data—the construction of data within a frame/packet
•
Port Data Capture Capabilities—facilities for capturing data received on a port
•
Port Statistics Capabilities—facilities for obtaining statistics on each port
Port Transmit Capabilities The Ixia module ports format data to be transmitted in a hierarchy of structures: •
Streams and Flows- A set of related packet bursts
•
Bursts- A repetition of packets
•
Packets- Individual packets/frames
Streams and Flows The Ixia system uses sophisticated models for the programming of data to be transmitted. There are two general modes of scheduling data packets for transmission: • Sequential - the first configured stream in a set of streams is transmitted completely before the next one is sent, and so on, until all of the configured streams have been transmitted. Two types are available on Ixia modules: • Packet Streams • Packet Flows (available on certain modules) • Interleaved - the individual packets in the streams are multiplexed into a single stream, where the total packet rate is the sum of the packet rates for each of the streams. One type is available: • Advanced Streams (Advanced Stream Scheduler feature) Packet Streams This sequential transmission model is supported by the Ixia load modules, where dedicated hardware can be used to generate up to 255 Packet Streams “on-thefly”, with each stream consisting of up to 16 million bursts of up to 16 million packets each. Transmission of the entire set of packet streams may be repeated continuously for an indefinite period, or repeated only for a user-specified count. The variability of the data within the packets is necessarily generated algorithmically by the hardware transmit engine.
3-4
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
Packet Flows A second sequential data transmission model is supported by software for any Ixia port which supports Packet Flows. An individual packet flow can consist of from 1 to 15,872 packets. For packet flows consisting of only one unique packet each, a maximum of 15,872 individual flows can be transmitted. Because the packets in each of the packet flows is created by the software, including UDF fields and checksums, and then stored in memory in advance of data transmission, there can be more unique types of packets than is possible with streams. Continuous transmission cannot be selected for flows, but by using a return loop, the flows can be re-transmitted for a user-defined count. Packet streams, which can contain larger amounts of data, are based on only one packet configuration per stream. In contrast, many packet flows can be configured for a single data transmission, where each flow consists of packets with a configuration unique to that flow. Advanced Streams A third type of streams is called Advanced Stream Scheduling, which involves interleaving of all defined streams at the same time. Each stream is assigned a percentage of the maximum rate. The streams are mixed in a pseudo-random manner so that each stream’s long-term percentage of the total transmitted data is as specified by the user. Advanced Stream Scheduling is available for Packet Over SONET modules (except for the OC-12c/OC-3c and most Type-M modules), 10 GE LAN modules, and 10/100 TXS8 modules. When multiple transmit modes are available, the transmit mode for each port must be set by the user to indicate whether it will use streams, flows, or advanced stream scheduling. The programming of sequential streams or flows is according to the same programming model, with a few exceptions related to continuous bursts of packets. Since the model is identical in both cases, we will refer to both streams and flows as “streams” while discussing programming. There are three basic types of sequential streams: •
Continuous Packet—a continuous stream of packets. The packets are not necessarily identical; their contents may vary significantly. (Not available for packet flows.)
•
Continuous Burst—a set of counted packets within a burst; the burst is repeated continuously. (Not available for packet flows.)
•
Counted Burst (non-continuous) —a user-specified number of bursts per stream, where each burst contains a counted number of packets.
Each non-continuous stream is related to the next stream by one of four modes: • Stop after this stream—data transmission stops after the completion of the current stream. (For example, after transmission of a stream consisting of 10 bursts of 100 packets each.) • Advance to Next—data transmission continues on to the next stream after the completion of the current stream.
Ixia Tcl Development Guide
3-5
3
Theory of Operation Ixia Hardware
• Return to ID—after the completion of the current stream, a previous stream (designated by its Stream ID) is retransmitted once, and then transmission stops. • Return to ID for Count—after the completion of the current stream, a previous stream (designated by its Stream ID) is retransmitted for the userspecified number of times (count), and then transmission stops. If a Continuous Packet or Continuous Burst stream is used, it becomes the last stream to be applied in a region, and data transmission continues until a Stop Transmit operation is performed. A programmable Inter-Stream Gap (ISG) is applied before each stream, as pictured in Figure 3-6.
ISG
Stream 1
(Direction of Transmission)
ISG
Stream 2
ISG
Stream 3
Advance to next
Advance to next
Return to ID (Stream ID=2) Figure 3-6.
Inter-Stream Gap (ISG)
The size and resolution of the Inter-Stream Gaps depends on the particular Ixia module in use. There are no ISGs before Advanced Scheduler Streams. Refer to the Ixia Hardware Guide for specifications. Bursts Bursts are sets of a specified number of packets, separated by programmed gaps between the sets. For Ethernet modules, Inter-Burst Gaps (IBG) are inserted between the sets. For POS modules, bursts of packets are separated by Burst Gaps. The size and resolution of these gaps depends on the type of Ixia load module in use. Refer to the Ixia Hardware Guide for specifications. The placement of Inter-Burst Gaps is shown in Figure 3-7.
ISG
Burst of pkts
IBG
Burst of pkts
IBG
Burst of pkts
IBG
Counted # of bursts or Infinite bursts (for Continuous Burst mode) Figure 3-7.
Inter-Burst Gap (IBG)/Burst Gap
Packets Streams may contain a counted number of frames, or a continuous set of frames when Continuous Packet mode is used. Frames are separated by programmable
3-6
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
Inter-Packet Gaps (IPGs), sometimes referred to as Inter-Frame Gaps (IFGs). The size and resolution of the Inter-Packet Gaps depends on the particular Ixia module in use. Refer to the Ixia Hardware Guide for specifications. The placement of Inter-Packet Gaps is shown in Figure 3-8. ISG
Packet 1
IPG
Packet 2
IPG
Packet 3
IPG
Counted # of Packets or Infinite Packets (for continuous packet) Figure 3-8.
Inter-Packet Gap (IPG)
Frame Data The contents of every frame and packet are programmable in terms of structure and data content. The programmable fields are: •
Preamble size (Ethernet only)—the size and resolution depends on the particular Ixia load module used.
•
Min Flag (POS only)—the minimum number of flag fields to precede the packet within the POS frame.
•
Frame size—the size and resolution depends on the particular Ixia load module used.
•
Destination and Source MAC Addresses (Ethernet only)—allows the MAC addresses to be set to constants, vary randomly, or increment/decrement using a mask.
•
Data generators—five different data generators are available. These generators are listed below, in order of increasing priority (from top to bottom). The values from generators located lower in this list override data from those higher in the list. • Protocol-related data—formatted to correspond to particular data link, transport, and protocol conventions. Data link layer controls allow for Ethernet II and 802.3 SNAP formatting, with support for VLANs, MPLS, and Cisco-proprietary ISL. Protocol-specific data for formatting IPv4, IPv6, and IPX packets (such as Source and Destination IP addresses), as well as Layer 4 transport protocol headers (TCP/IP, IGMP, etc.) are also supported. IP Source and Destination addresses may be incremented or decremented using a network mask. • Data patterns—can be one of three types: pre-defined patterns up to 8K bytes in length, randomly generated data, algorithmically generated data, or user-specified. • High-speed 32-bit counters—four 32-bit counters. For some modules the counters can each be flexibly configured as multiple 16-bit and 8-bit counters. Each counter may independently increment or decrement using a mask. • Frame Identity Record (FIR)—an identity record stored at the end of the packet. The information is very useful for determining the source of transmitted data found in capture buffers.
Ixia Tcl Development Guide
3-7
3
Theory of Operation Ixia Hardware
• Frame Check Sequence (FCS)—the checksum for a packet may be omitted, formatted correctly, or have deliberate errors inserted. Deliberate errors include incorrect checksum, dribble errors, and alignment errors. PPP Packet over Sonet cards also have the ability to perform PPP encapsulation. Refer to PPP Protocol Negotiation on page 3-32 for a complete discussion. Transmit Operations The transmit operations may be performed across any set of chassis, cards, and ports specified by the user. These operations are described in Table 3-1 on page 3-8. Table 3-1. Transmit Operations Operation
Usage
Start Transmit
Starts the transmission operation on all ports included in the present set of ports. If no transmit operation has been performed yet, or if the last operation was Stop Transmit, then transmission begins with the first stream configured for each port. If a Pause Transmit operation was last performed, then transmission begins at the next packet in the queue for all ports.
Staggered Start Transmit
The same operation is performed as in Start Transmit, except that the start operation is artificially staggered across ports. The time interval between the start of transmission on consecutive ports is in the range of 2530ms.
Stop Transmit
Stops the transmission operation on all ports included in the present set of ports. A subsequent Start Transmission or Step Stream operation will commence from the first stream of each port.
Pause Transmit
Stops the transmission operation on all ports in the present set of ports - at the end of transmission of the current packet. A subsequent Start Transmission or Step Stream will commence at the beginning of the next packet in the queue on each port.
Step Stream
Causes one packet to be transmitted from each of the ports in the present set of ports.
Port Data Capture Capabilities Most ports have an extensive buffer which may be used either to capture the packet data ‘raw’ as it is received, or to categorize it into groups known as Packet Groups. Each port must be designated to have a Receive mode which is either Capture or Packet Groups. Packet groups are used in determining latency, and are not available for most Type-3 or -M card modules; the exception is OC48c-M modules.
3-8
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
The start of capture buffering may be triggered by a set of matching conditions applied to the incoming data, or all data may be captured. Packets can be filtered, as well. During capture mode operation, the amount of data saved in the capture buffer can be limited to a user-defined “capture slice” portion of each incoming packet, rather than the entire packet. Each port’s Capture trigger and filter conditions are based on: •
Destination and Source MAC addresses (for Ethernet load modules)
•
Data pattern match for the packet, and matching errors such as: Bad CRC, Bad Packet, Alignment Error, and Dribble Error.
•
Packet sizes within a user-specified range.
Continuous vs. Trigger Capture For some load modules, there are more advanced options provided for setting up data capture operations on a port. These options are set in the Receive Mode dialog for the port. The available options are described below: •
Continuous Capture - Options are: • All packets are captured. • All packets which match a user-defined Capture Filter condition are captured.
•
Trigger Capture: • Capture operation starts before a packet matching the user-defined Trigger condition is received. Options are: • All packets are captured. • No packets are captured. • All packets which match a user-defined Capture Filter condition are captured. • Capture operation starts after a packet matching the user-defined Trigger condition is met. Options are: • All packets are captured. • All packets which match a user-defined Capture Filter condition are captured. • All packets which match the user-defined Trigger Capture condition are captured. • Trigger Position - The slider bar is used to set the position (% transmitted) in the data stream where the Capture Trigger will be first applied to incoming packets.
Ixia Tcl Development Guide
3-9
3
Theory of Operation Ixia Hardware
Port Capture Operations The data capture operations may be performed across any set of chassis, cards, and ports defined by the user. These operations are described in Table 3-2 on page 3-10. Table 3-2. Capture Operations Operation
Usage
Start Capture
Enables data capture on all ports in the set of ports whose Receive Mode is set to ‘Capture’. Packets are not actually captured until the user-specified Capture Trigger condition is satisfied.
Stop Capture
Stops data capture on all ports in the set of ports.
Start Latency
Initiates latency measurements for all ports in the set of ports whose Receive Mode is set to ‘Packet Group’ operation.
Stop Latency
Stops latency measurements on all ports in the set of ports.
Start Collision
Enables generation of forced collisions on received data, for all ports in the set of ports — if this option is selected for the port and enabled. Applies to half-duplex 10/100 Ethernet connections only.
Stop Collision
Stops generation of forced collisions for all ports in the set of ports.
Forced Collision Operation In addition to normal capture operation, forced collisions can be generated on the receive side of 10/100 load module ports, but only when the port is in half-duplex mode. (Note: This feature does not apply to 10/100 TXS8 ports.) Forced collisions operate by generating ‘collision’ data as information is being received on the incoming port. The ‘collision’ takes the form of a number of nibbles inserted at a user-specified offset within a packet as it is received. A period with a number of consecutive ‘collisions’ is followed by a period with no collisions. This combination of collisions and non-colliding periods can be repeated
3-10
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
indefinitely, or repeated for a user-specified number of times. These parameters are shown in Figure 3-9 on page 3-11. Non-Colliding Packets
Colliding Packets
Colliding Packets
Collision Duration (Individual Packet)
Preamble Packet Offset
Figure 3-9.
Collision
Forced Collisions
Packet Group Operation Packet groups are sets of packets which have matching tags, called Group IDs. Real-time latency measurements within packet groups depend on coordination between port transmission and port reception. Each transmitted packet must include an inserted 4-byte packet group signature field, which triggers the receiving port to look for the packet group ID. This allows the received data to be recognized and categorized into packet groups for latency analysis. Note: Packet groups and latency measurements are not available for Type-3 and Type-M modules. After packet group operation is triggered on the receiving port, the packet group ID—a 2-byte field which immediately follows the signature—is used as an index by the port’s receive buffer to store information related to the latency of the packet. When packet group signatures and packet group ID’s are included in transmitted data, an additional time stamp is automatically inserted into the packet. Figure 3-10 shows the fields within packets which are important for packet grouping and latency analysis.
Signature Value
Group ID
Time Stamp
CRC/ FCS
Signature Offset Group ID Offset Figure 3-10. Packet Format for Packet Groups/Latency
Latency Measurements There are two modes for latency measurement: • Instantaneous - Latency measured for all received data (continuous). Up to 57,344 packet group IDs (PGIDs) may be used.
Ixia Tcl Development Guide
3-11
3
Theory of Operation Ixia Hardware
• Latency over time - Latency measured for a number of time intervals of equal length, called “time buckets”. Figure 3-11 demonstrates the relationship between the time buckets and PGIDs in an example.
# of Time Buckets (5) 0
1
2
1 2 3 4 5 6 7 8 # of PGIDs/Time Bucket (8)
3
4
1 Time Bucket
5
TIMELINE Total # of PGIDs = 8 x 5= 40 PGIDs
Figure 3-11. Multiple Latency Time Measurements - Example
The timeline is equally divided into a # of Time Buckets, each of which is ONE Time Bucket Duration in length. A time bucket duration can range anywhere from nanoseconds to hours, depending on the user configuration. The maximum number of time buckets that can be handled is determined by the number of PGIDs in each bucket. The product of the number of time buckets and the number of PGIDs must be no more than 57,344. The number of PGIDs starts at 1 and increments by powers of 2—i.e., 2, 4, ..., up to 8192, and then jumps to 57,344. Note: The actual PGID numbers start at 0, and increase up to a maximum of 57,343.
Three types of latency measurements are available, corresponding to the type of device under test:
3-12
•
Cut-Through—for use with switches and other devices that operate using packet header information. The time interval between the first data bit out of the Ixia transmit port and the first data bit received by the Ixia receive port is measured. The first data bit received on Ethernet links (10/100 and Gigabit modules) is the start of the MAC DA field. For Packet over Sonet links, the first bit received is the start of the IP header.
•
Store and Forward—for use with routers and other devices that operate on the contents of the entire packet. The time interval between the last data bit out of the Ixia transmit port and the first data bit received by the Ixia receive port is measured. The last data bit out is usually the end of the FCS or CRC, and the first data bit received is as described above for Cut Through.
•
Store and Forward Preamble (for Ethernet modules only)—as with store and forward, but measured with respect to the preamble to the Ethernet frame. In this case, the time interval between the last data bit out of the Ixia transmit port and the first preamble data bit received by the Ixia receive port is measured. For this measurement, the size of the preamble (in bytes) is considered.
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
Sequence Checking Operation A number of ports have the additional ability to insert a sequence number at a user-specified position in each transmitted packet. This sequence number is different and distinct from any IP sequence number within an IP header. On the receiving port, this special sequence number is retrieved and checked, and any out-of-sequence ordering is counted as a sequence error. Note: Sequence checking operations are not available for Type-3, Type-M, or 10/100 load modules (except for 10/100TXS8).
As in packet groups (see Packet Group Operation on page 3-11), for sequence checking a signature value is inserted into the packet on the transmit side to signal the receive side to check the packet. In fact, this particular signature value is shared by both the packet group and the sequence checking operations. Both the signature value and sequence number are 4-byte quantities and must start on 4byte boundaries. These fields are shown in Figure 3-12, in the order indicated by the default values in the Sequence Checking dialog.
Sequence Signature Number Value
CRC/ FCS
Sequence Number Offset Signature Offset Figure 3-12. Packet Format for Sequence Checking
Sequence numbers are integers which start at ‘0’ for each port when transmission is started, and increment by ‘1’ continuously until a Reset Sequence Index operation is performed. Note that multiple sequence errors will result when a packet is received out of sequence. For example, if five packets are transmitted in the order 1-2-3-4-5 and received in the order 1-3-2-4-5, three sequence errors will be counted: 1. At 1-3, when packet 2 is missed. 2. At 1-3-2, when 2 is received after 3. 3. At 1-3-2-4, when 4 is received after 2. Data Integrity Checking Operation A number of ports also possess the ability to check the integrity of data contained in a received packet, by computing an an additional 16-bit CRC checksum. Note: Data Integrity Operations are not available for Type-3 cards. As with packet groups (see Packet Group Operation on page 3-11) and sequence checking (see Sequence Checking Operation on page 3-13), a signature value is inserted into the packet on the transmitting interface, to serve as a trigger for the receiving port to notice and process the additional checksum. However, the data integrity operation uses a different signature value from the one shared by packet groups and sequence checking.
Ixia Tcl Development Guide
3-13
3
Theory of Operation Ixia Hardware
The end of the data integrity signature value marks the beginning of the range of packet data over which the 16-bit data integrity checksum is calculated, as shown in Figure 3-13. This packet data ends just before the timestamp and normal CRC/ FCS. The CRC-16 checksum value must end on a 4-byte boundary. There may be 1, 2, or 3 bytes of zeroes (padding) inserted after the CRC-16, but before the Time Stamp, to enforce all boundary conditions.
Data Integrity
Data Integrity Signature Value Data Integrity Signature Offset
CRC-16
Time CRC/ Stamp FCS
Packet Data for Checksum
Figure 3-13. Packet Format for Data Integrity Checking
When the Receive Mode for a port is configured to check for data integrity, received packets are matched for the data integrity signature value, and the additional CRC-16 is checked for accuracy. Any mismatches are recorded as data integrity errors.
Port Statistics Capabilities Each port automatically collects statistics. A wide range of statistics are pre-programmed and available for many types of load modules. Other statistics may be selected or programmed and include: •
User-Defined Statistics—four counters which can be programmed to increment based on the same conditions as those involved in defining capture triggers and capture filters.
•
Quality of Service Types—separate counts for each of eight quality of service values used in IP headers.
•
IP/UDP/TCP Checksum Verification—for hardware checksum verification.
•
Data Integrity Stats—for errors relating to Data Integrity Operation. Refer to Data Integrity Checking Operation on page 3-13.
•
Protocol Server Stats—protocol-based statistics for: ARP, BGP, ISIS, ICMP, OSPF, and RSVP-TE.
•
SONET Extended Stats—statistics associated with SONET Line, Section and Path characteristics.
•
Temperature Sensors Stats—for verifying that temperatures on high-performance 10 Gigabit and OC-192c POS cards are within operational limits.
Round Trip TCP Flows For most 10/100 load modules, a special capability exists in the Ixia hardware to enable the measurement of round trip times for IP packets sent through a switch
3-14
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
or other network device. The normal setup for this measurement is shown in Figure 3-14.
Ixia Ports
DUT Ports
A
X
B
Y
Figure 3-14. RoundTrip TCP Flows Setup
In this scenario, Ports A and X are configured on one IP subnet, and Ports B and Y are configured on a different IP subnet. IP packets sent from A have a source address of A and destination address of B. The DUT is configured to route or forward to Y any packets that it receives on X for an address on B-Y’s subnet. After being received on Port B, the packet is reconstructed in a modified form (described below), and sent back in the opposite direction along the path to Port A. When enabled on the Ixia receiving port (in this case, Port B), the Round Trip TCP Flows feature performs several operations on the received IP packet: •
The Source and Destination IP addresses are reversed, and a packet destined for Port A is created using the reversed addresses.
•
The frame size, source and destination MAC addresses, and background data pattern are set as specified by the user.
•
The timestamp is copied to the new packet unmodified.
•
The new packet is transmitted to Port Y on the DUT, and should be routed back to Port A by the DUT.
This re-assembly/retransmit process makes it possible to measure the round-trip time for the packet’s trip from Port A through the DUT to Port B, and back through the DUT to Port A again. Note that the Packet Groups feature may be used, in addition, for latency measurements on this round trip. For latency testing, the background data set by the Round Trip TCP Flows feature will overwrite the Packet Group Signature Value contained in the packet. It is important that proper programming of the background data pattern be used to insert the appropriate signature value back into the packet.
Protocol Server
Ixia Tcl Development Guide
Each port in an Ixia chassis operates a Protocol Server. The Protocol Server includes a complete TCP/IP stack, allowing different forms of high-level DUT testing. The Protocol Server can be configured to test a set of provided Level 2 and Level 3 protocols, which include MAC and IP addressing and IP routing. The Protocol Server for Packet over SONET cards omits all MAC configuration
3-15
3
Theory of Operation Ixia Hardware
items, since POS does not use a MAC layer. The information gathered by the Protocol Server is used within generated frame data, as well. The Protocol Server is accessed through the Protocol Server window.The following protocols are supported by the Protocol Server. IP
IP to MAC addressing
ARP
Address Resolution Protocol (non-POS only)
IGMP
Internet Gateway Management Protocol
BGP4
Border Gateway Protocol
OSPF
Open Shortest Path First routing protocol
RIP
Routing Information Protocol
RIP
Intermediate System to Intermediate System, Dual Mode
RSVP-TE
Resource Reservation Protocol for Traffic Engineering
Each protocol must be individually enabled for a selected port in the Protocol Window, as described in Table 3-3 on page 3-16. Even when a service is enabled, the DUTs must be listed in the IP table in Protocol Window. Table 3-3. Enabled Services in the Protocol Window
3-16
Service
Usage
ARP
(Non-POS cards only) Enables ARP requests and responses. ARP requests are received at the MAC level. See ARP on page 3-17.
Ping
Enables PING transmission and reception. Ping messages are ICMP messages of type Echo Request. Responses are ICMP message of type Echo Response. The protocol server, however, responds to all ICMP messages. Once enabled for a port in Protocol Window, the Ping function may be used directly via the port listing in the Network Resources window.
IGMP
Enables IGMP testing. IGMP messages are sent as IP protocol number 2. See IGMP on page 3-17.
BGP4
Enables BGP4 testing. BGP4 is carried on TCP port 179. The Protocol Server optionally opens a connection with designated peers and maintains those connection. See BGP4 on page 3-19.
OSPF
Enables OSPF testing. OSPF messages are sent as IP protocol number 89. See OSPF on page 3-17.
RIP
Enables RIP testing. RIP messages are sent as UDP messages on port 520. See RIP on page 3-23.
IS-IS
Enables IS-IS testing. IS-IS messages are sent using ISO messages. See IS-IS on page 3-24.
RSVP-TE
Enables RSVP-TE testing. RSVP messages are sent as raw IP messages using protocol number 46. See RSVP-TE on page 3-27.
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
IP The IP table specifies a per port correspondence between IP addresses, MAC addresses (for Ethernet ports only), and the Default Gateway. IP addresses may be expressed as individual addresses or as a range of addresses. All ARP requests (for Ethernet) are sent to the Default Gateway address. In most cases, the Default Gateway Address is the address of the DUT. When a gateway separates the Ixia port from the DUT, use the IP address of that gateway as the Default.
ARP The Address Resolution Protocol (ARP) facility controls the manner in which ARP requests are sent. This option is only available on Ethernet load modules. The resulting responses from ARP requests are held in the ARP Table, which is used to set MAC addresses for transmitted data. ARP’ing the DUT allows tests and generated frames to be configured with a specific IP address, which at run time is associated with the MAC address of that particular Device Under Test.
IGMP The Internet Group Management Protocol (IGMP) is used to control the handling of group membership in an Internet. Version 1 of the protocol is specified in RFC 1112, and Version 2 is specified in RFC 2236). The Ixia hardware generates both Version 1 and Version 2 messages. IGMP normally works in an environment in which there are a number of IGMPcapable hosts connected to one or more IGMP routers. The routers forward membership information and packets to other IGMP routers and receive group membership information and packets from other IGMP routers. The Ixia hardware simulates one or more hosts while the DUTs are assumed to be IGMP routers. The simulation calls for groups of simulated hosts to respond to IGMP router-generated queries and to automatically generate reports at regular intervals. A number of IGMP groups are randomly shared across a group of hosts.
OSPF Open Shortest Path First (OSPF) is a set of messaging protocols that are used by routers located within a single Autonomous System (AS). The Ixia hardware simulates one or more OSPF routers for the purpose of testing one or more DUT routers configured for OSPF. The OSPF specification (RFC 2328) details the message exchanges by OSPF routers, as well as the meanings and usage. OSPF has three principal stages: • The HELLO Protocol • Database transfer
Ixia Tcl Development Guide
3-17
3
Theory of Operation Ixia Hardware
• HELLO Keepalive When an OSPF router initializes, it sends out HELLO packets and learns of its neighboring routers by receiving their HELLO packets. If the router is on a Point-to-Point link, or on an Ethernet (transit network) link, these packets will be addressed to the AllSPFRouters multicast address (224.0.0.5). In these types of networks, there is no need to manually configure any neighbor information for the routers. Each router that is traversed on the path between neighbors is added to a list contained in the HELLO packet. In this way, each router discovers the shared set of neighbors and creates individual state machines corresponding to each of its neighbors. If the network type is broadcast, then the process for selecting a Designated Router (DR) and Backup Designated Router (BDR) begins. A Designated Router is used to reduce the number of adjacencies required in a broadcast network. That is, if no Designated Router is used, then each router must pair (form an adjacency) with each of the other routers. In this case, the number of required adjacencies is equal to the square of the number of routers (N^2). If a DR and BDR are used, the number of required adjacencies drops to 2 times the number of routers (2N). Currently, the Ixia ports are unable to simulate a DR or BDR. Once the routers have initialized their adjacency databases, they synchronize their databases. This process involves one router becoming the master and the other becoming the slave. On Ethernet networks, the DR is always the master; on point-to-point networks, the router with the highest Router ID is the master. Link State Advertisements (LSAs) are OSPF messages that describe an OSPF router’s local environment. The simplest LSA Type is the router-LSA (RouterLinks LSA). Each router is required to generate exactly one of these LSAs in order to describe its own attached interfaces. If a network that consists of a single OSPF area is being simulated with only point-to-point links and there are no Autonomous System Border Routers (ASBR), then this is the only type of LSA that will be sent. The slave asks the master for its LSA (Link State Advertisement) headers, which enables the slave to determine the following information: 1. The subset of LSAs that the master holds, but that the slave does not have, and 2. The subset of LSAs that the master and slave both have, but which are more recent on the master. The slave router then proceeds to explicitly query the master to send it each LSA from Steps (1) and (2). The slave sends an ACK to the master upon receipt of each LSA. The global Link State Database (LSDB) is constructed by each router, based on LSAs from all the other routers in the network. Once this exchange process is complete, the routers are considered to have reached Full Adjacency, and each will run the link state algorithm to update its IP forwarding tables. The routers continue to exchange periodic HELLO packets, as
3-18
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
keep-alive messages, until a change occurs (e.g., a link goes down or an LSA expires). OSPF routers continue to periodically exchange their LSAs every 30 minutes to ensure they all hold identical LSDBs. This section describes the programming of the Ixia hardware related to OSPF testing, as well as the theory of operation and protocol message formats. The Ixia hardware will simulate multiple OSPF routers on multiple networks. For example, in Figure 3-15 there are three networks and three routers. Network 1 192.168.36.0/24
.10
Network 2 172.16.1.0/24
.20
Ixia-Sim. OSPF Router 1
Ixia-Sim. OSPF Router 2
.40
Network 3 10.10.10.0/24
.90
OSPF Router 3 (DUT)
.41
Device Under Test
Ixia Ports Figure 3-15. Sample OSPF Network
The Protocol Server calls for the specification of router-network connections to be specified in a network-centric fashion. One specifies the network in terms of an Area ID and network mask. One specifies the routers in terms of the interface IP address on that network and Router ID — usually the lowest IP address for the router. For the sample OSPF network, in which Router 3 is the DUT, the three networks are specified by their significant characteristics as shown in Table 3-4. Table 3-4. Sample OSPF Network Assignments Network
Area ID
Network Mask
Router ID
Router Interface IP Address
1
192.168.36.0
255.255.255.0
192.168.36.10
10.0.0.40
2
172.16.0.0
255.255.255.0
172.16.0.20
10.0.0.41
3
10.0.0.0
255.255.0.0
10.0.0.40
10.0.0.40
10.0.0.41
10.0.0.41
10.0.0.90
10.0.0.90
Within this framework, Link State Advertisements (LSAs) may be issued from the perspective of any interface on any router. Any OSPF messages from the DUT Routers may be captured and analyzed in the normal manner.
BGP4 Border Gateway Protocol Version 4 (BGP-4) is the principal protocol used in the Internet backbone and in networks for large organizations. The BGP4 specification (RFC 1771) details the messages exchanged by BGP routers, as well as their
Ixia Tcl Development Guide
3-19
3
Theory of Operation Ixia Hardware
meaning and usage. BGP4 - Inter-Domain Routing in the Internet, by John W. Stewart III is a descriptive reference on this protocol. Internal Versus External BGP The BGP4 protocol is used according to two sets of rules, depending on whether or not the two routers communicating are within the same Autonomous System (AS). An AS is a collection of routers that implement the same routing policy and are typically administered by a single group of administrators. ASs connected to the Internet are assigned Autonomous System Numbers (ASNs) which are key to inter-domain routing. When BGP is used between two ASs, the protocol is referred to as EBGP (External BGP); when BGP is used within an AS it is referred to as IBGP (Internal BGP). Figure 3-16 depicts the differences in topology between EBGP versus IBGP. AS1
R2
R1
AS2
EBGP
R3 AS3
R4
R5
IBGP
Figure 3-16. EBGP versus IBGP Usage
In the figure above, AS1, AS2, and AS3 are distinct Autonomous Systems. The Rns are routers in the various ASs. Routers on the links between ASs ‘speak’ EBGP, while the routers within AS3 ‘speak’ IBGP. IBGP Extensions In the original BGP4 specification, all IBGP routers within an AS were required to establish a full mesh with each other. This led to a lack of scalability which was solved by the introduction of two additional concepts: route reflection and confederation. In route reflection, some routers in an AS are assigned the task of distributing internal routes to other internal AS routers. In order to prevent looping within an AS that uses route reflection, two concepts are important: originator-id and cluster-list. The originator-id is the identification of the router that originated a particular route; routers within an AS propagate this information and refuse to send a route back to its originator. Even the use of reflectors and originator-ids can lead to scalability problems in an AS. The cluster-list concept helps this problem. A cluster consists of a reflecting router and its clients. A Cluster ID is the IP address of the reflecting router if there is one, or a configured number otherwise. A cluster-list is a constructed list, consisting of the cluster IDs of all of the clusters that a route has passed through. Each router will refuse to send a route back to a cluster that has seen the route already.
3-20
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
In a confederation, an AS is divided into multiple sub-confederation subsets. Each sub-confederation is defined in terms of its own ASN and a list of routers. Routers within a sub-confederation are expected to fully mesh using IGP. Subconfederations within a confederation speak a variant of EGP, called EIGP. Additional path attributes are used with a confederation to indicate paths that should not be propagated outside the confederation. Communities In deployment of BGP4 into a growing Internet environment, it became necessary to deal with certain routes in different manners not related to the strict routing of packets. The community attribute was invented to allow a route to be ‘tagged’ with multiple numbers, called communities. This is also referred to sometimes as route coloring. BGP Router Test Configuration The Ixia Protocol server implements an environment in which the Ixia hardware simulates multiple routers which speak IBGP and/or EBGP with one or more DUT routers. For example, in Figure 3-16, the Ixia hardware simulates R1, R3, and R5 while the DUTs are R2 and R4. Figure 3-17 (below) depicts the same setup based on the location of the simulated or actual router:
Figure 3-17. BGP Interconnection Environment
All of the routers are logically connected through appropriate networking hardware. The Ixia hardware is used to simulate three of the routers in two different ASs communicating with two routers being tested. A single router simulated by the Ixia hardware is specified by a single IP address and a number of simulated routers may be specified by a range of IP addresses. Each DUT router is identified by its IP address.
Ixia Tcl Development Guide
3-21
3
Theory of Operation Ixia Hardware
Messages may be sent between the simulated routers and the DUT routers when a connection is made and one of the two endpoints sends an OPEN message. Where the simulated and the DUT routers send their OPEN messages simultaneously, standard collision handling is applied. Thereafter, the simulated routers send a number of UPDATE messages to the DUT routers. The UPDATE messages contain a number of network address ranges (route ranges), also known as ranges of prefixes. The ranges of network addresses generated is illustrated in Figure 3-18.
0
32
Network Address (32 bits) First range thru
generate all network addresses in this range first, then all network addresses in this range, and finally all network addresses in this range last Figure 3-18. Generation of Network Addresses in BGP UPDATE Messages
A designated number of network addresses are generated with network Mask Width from the From through To values. Table 3-5 shows some examples of generated addresses. Network Addresses are generated by starting with the First Route and From mask width up to, but not including 224.0.0.0. (127.*.*.* is also skipped). If the requested number of network addresses has not been generated
3-22
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
before 224.0.0.0 is reached, then the next mask length is used to generate network addresses. Table 3-5. Examples of Generated BGP Routes (Network Addresses) First Route
Mask Width From
Mask Width To
Number of Routes
Generated BGP Routes (Network Addresses)
192.168.36.0
24
26
3,613,852,672 192.168.36.0/24 192.168.37.0/24 192.168.38.0/24 ... 223.255.255.255/24 224.0.0.0+ skipped 192.168.36.0/25 192.168.36.128/25 192.168.37.0/25 ... 223.255.255.255/25 224.0.0.0+ skipped 192.168.36.0/26 192.168.36.64/26 192.168.36.128/26 ... 223.255.255.255/26
204.197.56.0
24
24
4
204.197.56.0/24 204.197.66.0/24 204.197.76.0/24 204.197.86.0/24
All of the generated network addresses are associated with a set of attributes that describes routing to these generated network addresses and associated features. A variable number of withdrawn routes may be packed into each UPDATE message. The packing is randomly chosen across a range of a number of routes. Only one route can be added per UPDATE message. The time interval between UPDATE messages is configurable, in units of milliseconds. A BGP4 network condition called ‘flapping’ can be simulated by the protocol server on an Ixia port. In Link flap, a peer BGP router appears to be going repeatedly offline and online, which is accomplished on the Ixia port by alternate disconnects and reconnects of the TCP/IP stack. In Route flap, BGP routes are repeatedly withdrawn, and then readvertised, in UPDATE messages.
RIP The Routing Information Protocol (RIP) is an interior routing protocol. It is the oldest and most frequently used of the LAN routing protocol. RIP routers broadcast or multicast to each other on a regular basis and in response to REQUEST
Ixia Tcl Development Guide
3-23
3
Theory of Operation Ixia Hardware
packets. RIP routers incorporate routing information received from their neighbors into their own routing table and forward them on to other neighbors. Two distinct versions of RIP exist: version 1 and version 2. Both IPv4 and IPv6 are supported. As implemented by the Protocol Server, each Ixia port is capable of simulating one or more routers at distinct addresses. Routing tables for the simulated routers are configured by the user and sent out at regular intervals, with a configurable randomizing factor. Either version 1 or version 2 packet formats may be sent via multicast or broadcast (for compatibility with version 1 routers). Received packets may be filtered for version 1 and/or 2 compatibility. The current implementation of the Protocol Server uses Split Horizon with Space Saver as its update mode, which will receive, but not process RIP broadcasts heard from DUT routers. That is, it will not incorporate received information into its own table, but rather always broadcast the same routing table. Future versions will offer Split Horizon, Split Horizon with Poison Reverse and Silent modes of update. The Protocol Server will, however, respond to REQUEST packets that it receives. Two types of requests are processed: •
Request for all routes. The Protocol Server will send the same routing table that it sends at regular intervals back to the requestor.
•
Request for specific routes. The Protocol Server will fill in the requested information in the received packet and send it back to the requestor.
IS-IS The Intermediate System to Intermediate System Routing protocol was originally designed for use with OSI Connectionless Network Protocol (CLNP) and is defined in ISO 8473. It was later extended to include IP functions in IETF RFC 1195. When routing for OSI and IP packets (defined in ISO/IEC 10589:1992(E)) is combined in this way, the protocol is referred to as Integrated IS-IS or Dual ISIS. Many OSI concepts are needed to understand IS-IS. The following terms are important to the following discussion: •
IS – Intermediate System. A router is an IS.
•
ES – End System. A host is an ES. The Ixia hardware does not currently simulate End Systems.
•
PDU – Protocol Data Unit. A data unit used within IS-IS protocol description. The following specific PDUs are used in IS-IS communications: • LSP – Link State PDU. This message holds the significant part of the routing table sent between routers. • IIH – IS-IS Hello PDU. This message is used between ISs to discover neighbors and maintain state.
3-24
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
• SNP – Sequence Number PDU. This message is used to request LSPs and acknowledge receipt of LSPs. Two types are used depending on the network type: • CSNP – Complete SNP. In broadcast networks, these are sent by the Designated Router in an area. In point-to-point connections, CSNPs are used for initialization. A CSNP contains a complete description of the LSPs in the sender’s database. • PSNP – Partial SNP. On broadcast networks, PSNPs are used to request LSPs. On point-to-point connections, PSNPs are used to acknowledge receipt of LPSs. On both types of networks, PSNPs are used to advertise newly learned LPSs or purge LPSs. A PSNP contains a subset of the received records. IS-IS areas are administrative domains which contain IS-IS routers, have one or more private networks, and may share networks with other areas. One or more Area IDs are associated with an area. Most areas only require one ID during steady state operation, but up to three IDs may be needed during the process of migrating a router from one area to another. In most cases, the maximum number of area IDs is set to three. IS-IS routers can be divided into three categories, as follows: •
Level 1 (L1) – these routers have no direct connection to any other IS-IS area. They can connect only to L1 or L1/L2 routers within their own area.
•
Level 2 (L2) – they are used as backbone routers in the routing domain, to connect IS-IS areas. They can connect only to other L2 routers outside their area, or to L1/L2 routers within their own area.
•
Level 1/2 (L1/L2) – these routers have interfaces which can connect to both L1 routers within their own area, and to L2 routers in other areas.
Entirely separate routing tables are maintained for Level 1 and Level 2 IS-IS information, even within L1/L2 routers. All L1s within an area maintain identical databases. All L2s maintain identical databases, and no L2 routes are advertised to L1 routers. The example shown in Figure 3-19 on page 3-26 consists of a theoretical IS-IS topology, including a possible IS-IS test scenario in which one of the L2 backbone routers is the DUT (pictured in bold within Area C). The Ixia Protocol Server simulates the IS-IS routers which are directly connected to the DUT (L2 in Area C, and an L1/L2 in Area B). Appropriate PDUs are sent to the DUT from the two Ixia-simulated routers (pictured in bold, dashed lines in Figure 3-19). Note that, as shown in this diagram, all IS-IS routers are considered to reside entirely within an area, unlike some other protocols such as OSPF, where routers can reside at the edges of domains.
Ixia Tcl Development Guide
3-25
3
Theory of Operation Ixia Hardware
Area A L1 Area B
L1/L2
L1
L1 Area C Ixia L2
Ixia L1/L2 L1
L2 L2
L1
DUT
L1/L2 Area D L1
Figure 3-19. IS-IS Areas
Due to the OSI derivation of the IS-IS protocol, each IS-IS router has an OSI NET address of between 8 and 20 octets. The NET address consists of two parts: an Area ID and a System ID. The Area ID has a number of different formats defined in OSI specifications. The System ID may be from 1 to 8 octets in length The default System ID length defaults to 6 octets and must be the same length for every router in the domain. The System ID is unique within its area for Level 1, or unique within the routing domain for Level 2 or Level 1/2. Two types of network connections are supported: broadcast and point-to-point. In a broadcast network, each interface on an IS-IS dual-mode router must have an IP address and mask. IS-IS routers maintain knowledge of each other by exchanging Hello PDUs at regular, configurable Hello intervals. A router is considered down if it does not respond within a separately configurable Dead interval. In the IS-IS protocol, for each of the levels (L1 or L2) one of the routers is elected as the Designated Router (DR), based on priority values assigned to each interface as part of Hello PDU processing. The Ixia Protocol Server does not support the role of DR, so to ensure that it is not elected by its IS-IS peers each Ixiasimulated IS-IS router has a default priority of “0”, indicating its unwillingness to be the DR. IS-IS routers update each other using Link State PDUs (LSPs) at a regular interval of 30 minutes. The LSP header contains the Remaining Lifetime for the LSP, a Sequence Number, and a checksum. In a Point-to-Point network, the receiving router sends a Partial Sequence Number PDU (PSNP). In a Broadcast network, the Designated Router sends a Complete Sequence Number PDU (CSNP). Each LSP contains information about a router’s connection to local networks, plus a metric related to each network. ISO DP 10589 defines four types of met-
3-26
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
rics: default, delay, expense, and error. Only the default type is currently implemented in most routers and by the Ixia Protocol Server.
RSVP-TE The Ixia protocol server implements a part of the Resource Reservation Protocol (RSVP) used for Traffic Engineering (TE). This subset of the RSVP protocol, referred to as RSVP-TE, is used in the process of constructing a path through a sequence of MPLS-enabled label switched routers (LSRs), while reserving necessary bandwidth resources. The use of an internal gateway routing protocol (IGP), such as OSPF, is also required to automatically determine the “next hop” router. Multi-Protocol Label Switching (MPLS) allows rapid forwarding of packets across a sequence of routers, without time-consuming examination of the packet contents at each hop. Label switching has been used extensively for ATM traffic, where overhead bytes for each “cell”, or packet, of data constitute a large percentage of the overall data transmitted. The addition of a “label” value to the header information in each cell or packet supplies the only forwarding information required to transit the MPLS domain. Based on information in its forwarding table, each LSR replaces (swaps) the incoming label with a new one which will direct the packet to the next hop. The most important output from an RSVP-TE setup session is the set of MPLS labels, which are used by the MPLS-enabled routers along the path to efficiently forward network traffic. The operation of RSVP-TE is shown in Figure 3-20.
Sender Routers
Destination Routers
LSPs 1, 2, 3 Tunnel 1
LSRs
LSRs
Tunnel 2
LSR I
LSR II
A
1 LSPs 1, 2, 3
B
2
PATH Messages C
RESV Messages
3
D
Figure 3-20. RSVP-TE Overview
Through the use of RSVP-TE message exchanges, the router at the entry to the MPLS domain, also known as an Ingress LSR, initiates the creation of a dynamic ‘tunneled’ pathway to the Egress LSR, the router at the exit side of the MPLS domain. Packets which pass through this “tunnel” are essentially “protected” from the extensive packet processing normally imposed by each router it
Ixia Tcl Development Guide
3-27
3
Theory of Operation Ixia Hardware
traverses. Once this special pathway or Label Switched Path (LSP) is established, the router can forward, rather than route, packets across the domain, saving considerable processing time at each intermediate LSR (Transit LSR). The resulting tunneled pathway is known as an LSP Tunnel. The traffic flows through the LSP Tunnels are uni-directional. To establish bi-directional traffic through the MPLS domain, a second LSP Tunnel must be created in the opposite direction. An LSP Tunnel is defined by a Destination Address (the IP address of the Egress LSR), and a Tunnel ID. At a finer level of granularity are LSP IDs. Essentially, these LSP IDs can serve to provide a set of aliases for alternate hop-by-hop paths between a single pair of Ingress and Egress LSRs, and therefore exist within the same LSP Tunnel. Note: Ingress and Egress LSRs are also known as Label Edge Routers (LERs). Two principal RSVP message types are used to establish LSP Tunnels: •
PATH message. A PATH message is generated by the ingress router and sent toward the egress router. This is termed the downstream direction. This PATH message is a request by the sending LSR for the establishment of an LSP to the egress router. Each LSR in the path to the destination router digests the PATH message and does one of three things: • If the LSR cannot accommodate the request, it rejects the request by sending a PATH_ERR message back to the source indicating the nature of the rejection. • If the LSR is not the egress router, it sends a PATH message to the next LSR toward the destination router. • If the LSR is the egress router, it should respond with a RESV message back to its most recent neighbor.
•
RESV message. A RESV message is generated by the egress router and sent over the reverse path that the PATH messages took. This is termed the upstream direction.
An additional HELLO message is used between neighbor LSRs to ensure that LSRs are alive. This allows for quick tunnel replacement in the case of link or router failure. A set of labels is passed in the RESV messages sent upstream from the egress to the ingress router. A label is sent from one LSR to its upstream neighbor telling the upstream router which label to use when later sending downstream traffic. Three scenarios are currently supported to test MPLS/RSVP-TE on a DUT using Ixia equipment: 1. The DUT acts as the Ingress LSR, and the Egress LSR is simulated by an Ixia port. 2. The DUT acts as the Egress LSR, and the Ingress LSR is simulated by an Ixia port. 3. The DUT acts as a Transit/Intermediate LSR, and the Ingress and Egress LSRs are simulated by Ixia ports.
3-28
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
PATH Messages PATH messages contain a number of objects which define the tunnel to be established. These are shown in Table 3-6. Table 3-6. RSVP-TE PATH Message Objects Object
Contents
SESSION
Usage Describes the destination router and associates a tunnel ID with the session.
tunnel endpoint
The destination router’s IP address.
tunnel ID
A unique LSP tunnel ID.
SENDER_TEMPLATE
The description of the sender. tunnel sender address
The sender router’s IP address.
LSP ID
A unique LSP ID.
LABEL_REQUEST
Asks all the LSRs to send back label values via RESV messages.
SENDER_TSPEC and ADSPEC
Both of these objects deal with bandwidth and other QoS requirements for the path.
TIME_VALUES
Timing values related to the refresh of tunnel information. refresh interval
The interval between messages.
EXPLICIT_ROUTE
Allows the sender to request that the LSP tunnel follow a specific path from ingress to egress router. See Explicit_Route on page 3-29 for more details.
SESSION_ATTRIBUTE
Other attributes associated with the session: tunnel establishment priorities, session name and optionally resource affinity.
RSVP_HOP
Describes the immediate upstream router’s address to the downstream router.
Explicit_Route An explicit route is a particular path in the network topology. Typically, the explicit route is determined by a node with the intent of directing traffic along that path. An explicit route is described as a list of groups of nodes along the explicit route. In addition to the ability to identify specific nodes along the path, an explicit route can identify a group of nodes that must be traversed along the
Ixia Tcl Development Guide
3-29
3
Theory of Operation Ixia Hardware
path. Each group of nodes is called an abstract node. Thus, an explicit route is a specification of a set of abstract nodes to be traversed. There are three types of objects in an explicit route: •
IPv4 prefix
•
IPv6 prefix
•
Autonomous system number
Each node has a loose bit associated with it. If the bit is not set, the node is considered strict. The path between a strict node and its preceding node may only include network nodes from the strict node and its preceding abstract node. The path between a loose node and its preceding node may include other network nodes that are not part of the strict node or its preceding abstract node. RESV Message The RESV message contains object that indicate the success of the PATH request and the details of the assigned tunnel. These are shown in Table 3-7. Table 3-7. RSVP-TE RESV Message Objects
3-30
Object
Usage
SESSION
Indicates which session is being responded to.
TIME_VALUES
As in the PATH message but from the downstream LSR to the upstream LSR.
STYLE
The type of reservation assigned by the egress router. This relates to whether individual tunnels are requested for each sender-destination connection or whether some connections may use the same tunnel.
FILTER_SPEC
The sender router’s IP address and the LSP ID.
LABEL
The label value assigned by the downstream router for use by the upstream router.
RECORD_ROUTE
If requested, the complete route from the destination back to the source. The contents of this object include the IP addresses in either v4 or v6 format of all the LSRs encountered in the formation of the LSP, and optionally the labels used at each step. Each LSR on the upstream path prepends it’s own address information.
RESV_CONF
If present, it indicates that the ingress router should send a RESV_CONF message in response to the destination to indicate that the tunnel has been completely established.
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
Other Messages Several additional messages are used in RSVP-TE, as explained in Table 3-8. Table 3-8. Additional RSVP-TE Messages Message
Usage
PATH_ERR
Any LSR may determine that it cannot accommodate the tunnel requested in a PATH message. In this case it sends a PATH_ERR message back to the sender.
PATH_TEAR
When a sender router determines that it wants to tear down a tunnel, it sends a PATH_TEAR message to the destination router.
RESV_ERR
If a router cannot handle a reservation, it sends a RESV_ERR back to the destination router.
RESV_TEAR
When a destination router determines that it wants to tear down a tunnel, it sends a RESV_TEAR message upstream to the source router.
RESV_CONF
When requested, a sender router will respond to the destination router with a RESV_CONF message to indicate that a complete tunnel has been successfully established.
Ixia Test Model The Ixia test process is designed so as to fully exercise RSVP functionality in MPLS routers. An Ixia port can simulate any number of LSR routers at the same time. Each router operates in an ingress or egress mode. In the following discussion, LSRs I and II refer to Figure 3-20: •
Ingress mode – LSRs I and II are termed a neighbor pair, where LSR I is the upstream router being simulated and LSR II is its immediate downstream neighbor. The Ixia port generates the PATH and HELLO messages that LSR I would send. LSR II is the Device Under Test (DUT) and may be an egress router or be connected to other LSRs, as shown in the figure.
•
Egress mode – the Ixia port simulates LSR II while LSR I is the DUT. The Ixia port interprets PATH messages that it receives to determine if they are directed for any of the defined destination routers. If that is the case, it responds with appropriate RESV messages.
If requested, HELLO messages are generated and responded to in either mode. When the Ixia port operates in Ingress mode, it attempts to set up LSP tunnels for each combination of sender router and destination router, using any number of LSP tunnels and any number of LSP IDs for each LSP tunnel. Thus the number of PATH messages that the Ixia port will attempt to generate for each refresh interval is: # of sender routers x # of destination routers x # of LSPs x # of LSP tunnels
Ixia Tcl Development Guide
3-31
3
Theory of Operation Ixia Hardware
The protocol server records all labels and other information that it receives on behalf of its simulated routers and displays those in a convenient format.
PPP Protocol Negotiation
The Point-to-Point Protocol (PPP) is available on all of the Ixia Packet over Sonet (POS) ports. The Point-to-Point Protocol (PPP) is widely used to establish, configure and monitor peer-to-peer communication links. A PPP session is established in a number of steps, with each step completing before the next one starts. The steps, or layers, are: 1. Physical – a physical layer link is established. 2. Link Control Protocol (LCP) – establishes the basic communications parameters for the line, including the Maximum Receive Unit (MRU), type of authentication to be used and type of compression to be used. 3. Link quality determination and authentication. These are optional processes. Quality determination is the responsibility of PPP Link Quality Monitoring (LQM) Protocol. Once initiated, this process may continue throughout the life of the link. Authentication is performed at this stage only. There are multiple protocols which may be employed in this process; the most common of these are PAP and CHAP. 4. Network Control Protocol (NCP) – establishes which network protocols (such as IP, OSI, MPLS) are to be carried over the link and the parameters associated with the protocols. The protocols which support this NCP negotiation are called IPCP, OSINLCP and MPLSCP, respectively. 5. Network traffic and sustaining PPP control. The link has been established and traffic corresponding to previously negotiated network protocols may now flow. Also, PPP control traffic may continue to flow, as may be required by LQM, PPP keepalive operations, etc. All implementations of PPP must support the Link Control Protocol (LCP), which negotiates the fundamental characteristics of the data link and constitutes the first exchange of information over an opening link. Physical link characteristics (media type, transfer rate, etc.) are not controlled by PPP. The Ixia PPP implementation supports LCP, IPCP, MPLSCP, and OSINLCP. When PPP is enabled on a given port, LCP and at least one of the NCPs must complete successfully over that port before it will be administratively “up” and therefore be ready for general traffic to flow. Each Ixia POS port implements a subset of the LCP, LQM, and NCP protocols. Each of the protocols is of the same basic format. For any connection, separate negotiations are performed for each direction. Each party sends a ConfigureRequest message to the other, with options and parameters proposing some form of configuration. The receiving party may respond with one of three messages:
3-32
•
Configure-Reject – the receiving party doesn’t recognize or prohibits one or more of the suggested options. It returns the problematic options to the sender.
•
Configure-Nak – the receiving party understands all of the options, but finds one or more of the associated parameters unacceptable. It returns the problematic options, with alternative parameters, to the sender.
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
•
Configure-Ack – the receiving party finds the options and parameters acceptable.
For the Configure-Reject and Configure-Nak requests, the sending party is expected to reply with an alternative Configure-Request. The Ixia port may be configured to immediately start negotiating after the physical link comes up, or passively wait for the peer to start the negotiation. Ixia ports will both send and respond to PPP keepalive messages – called echo requests.
LCP – Link Control Protocol Options The following table outlines the parameters associated with the Link Control Protocol. LCP includes a number of possible command types, which are assigned option numbers in the pertinent RFCs. Note that PPP parameters are typically independently negotiated for each direction on the link. The “Negotiate” column indicates how Ixia’s present implementation handles each option/parameter during the negotiation process. “Full” means that full, bi-directional negotiation is supported. “Reject” indicates that the option is not supported, and a option rejection will be sent if the peer attempts to negotiate the option. A check in the “User Access” column means user control is provided for the option via IxExplorer or the Tcl/C++ APIs. Numerous RFCs are associated with LCP, but the most important RFCs are RFC 1661 and RFC 1662. The HDLC/PPP header sequence for LCP is FF 03 C0 21. Notes on key parameters follow the table Table 3-9 on page 3-33. Table 3-9. PPP-LCP Options
Ixia Tcl Development Guide
LCP Option Name Option or Parameter
Purpose
RFC
Negotiate User Access
0x00
Vendor Extensions
Allow exchange of proprietary information between devices of same vendor.
2153 Reject
No
0x01
Maximum Receive Unit
Specify maximum supported size for PPP information field. See Maximum Receive Unit on page 3-36 for more details.
1661 Full
Yes
3-33
3
Theory of Operation Ixia Hardware
Table 3-9. PPP-LCP Options
3-34
LCP Option Name Option or Parameter
Purpose
RFC
0x02
Asynchronous Control Character Map (ACCM)
Allow independent select/deselect of each character in range 0x00 thru 0x1F as a control character. See Asynchronous Control Character Map on page 337 for more details.
1662 Full (synchron ous only)
Yes
0x03
Authentication Protocol
Specify which protocol (PAP, CHAP, etc.) will be used during a subsequent authentication phase.
1661 Reject
No
0x04
Quality Protocol
Specify which protocol will be used for tracking link performance. Link-Quality Report is the only standard option supported.
1661 Full
Yes
0x05
Magic Number
Specify random tag used to detect loop-backs and to identify peers. See Magic Number on page 3-37 for more details.
1661 Full
Yes
0x06
Protocol Field Indicate whether Compression (PFC) reception of compressed PPP protocol fields (one byte instead of two) is supported.
1661 Reject
No
0x07
Address and Control Field Compression (ACFC)
1661 Reject
No
Indicate whether reception of compressed HDLC headers (without address and control fields) is supported.
Negotiate User Access
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
Table 3-9. PPP-LCP Options
Ixia Tcl Development Guide
LCP Option Name Option or Parameter
Purpose
RFC
Negotiate User Access
0x08
FCS Alternatives
Specify CRC type (16 or 32 bit).
1570 Reject
No
0x09
Self Describing Pad (SDP)
Allow padding of PPP information field to a specified boundary.
1570 Reject
No
0x0A
Numbered Mode
Specify usage of a reliable transport mode (similar to TCP) at the PPP/link layer.
1663 Reject
No
0x0B
Multi-link Procedure Obsolete.
Reject
No
0x0C
Callback
Indicate desire for disconnect after authentication followed by automatic callback from peer.
1570 Reject
No
0x0D
Connect time
Obsolete.
Reject
No
0x0E
Compound Frames
Specify manner to encapsulate multiple PPP frames within single link-layer frame.
1570 Reject
No
0x0F
Nominal-Data Encapsulation
Obsolete.
Reject
No
0x11
Multilink – MRRU
MP (PPP link aggregation).
1990 Reject
No
0x12
Multilink – Short Sequence Number Header Format
MP related.
1990 Reject
No
0x13
Multilink – Endpoint Discriminator
MP related.
1990 Reject
No
0x14
Proprietary
Proprietary use.
Reject
No
0x15
DCE Identifier
Specify manner to distinguish certain communications devices from routers, etc.
1976 Reject 1963
No
3-35
3
Theory of Operation Ixia Hardware
Table 3-9. PPP-LCP Options LCP Option Name Option or Parameter
Purpose
RFC
Negotiate User Access
0x16
Multilink-Plus Proc.
MP related: Proprietary to Ascend.
1934 Reject
No
0x17
Link Discriminator
MP related: Specifies parameters for Bandwidth Allocation Control Protocol
2125 Reject
No
0x18
LCP Authentication Option
Proposed method for performing authentication within LCP.
Reject
No
During the LCP phase of negotiation, the Ixia port makes available the following options to the user. Maximum Receive Unit This LCP parameter (actually the set of Maximum Receive Unit (MRU) and Maximum Transmit Unit (MTU)) determines the maximum allowed size of any frame sent across the link subsequent to LCP completion. To be fully standardscompliant, an implementation must not send a frame of length greater than its MTU + 4 bytes + CRC length. For instance, if the negotiated MTU for a port is 2000 and 32 bit CRC is in use, no frame larger than 2008 bytes should ever be sent out that port. Packets that are larger are expected to be fragmented before transmitting or to be dropped. The Ixia port's MTU will be the peer's MRU following LCP negotiation. Strictly speaking, the receiving side can assume that frames received will not be greater than the MRU. In practice, however, an implementation should be capable of accepting larger frames. If a peer rejects this option altogether, the negotiated setting defaults to 1500. Regardless of the negotiated MRU, all implementations must be capable of accepting frames with an information field of at least 1500 bytes. For the transmit direction portion of the negotiation, the peer will send the Ixia port its configuration request. The Ixia port will accept and acknowledge the peer's requested MRU as long as it is less than or equal to the specified user's desired transmit value (but greater than 26). For the receive direction portion of the negotiation, the Ixia port will send a configuration request based on the user’s desired value. Generally, the Ixia port will accept what the peer desires (if it acknowledges the request, then the user value is used, or if the peer sends a Configure-Nak with another value the Ixia port will use that value as long as it is valid). This approach is used to maximize the probability of successful negotiation.
3-36
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
Asynchronous Control Character Map ACCM is only really pertinent to asynchronous links. On asynchronous lines, certain characters sent over the wire can have special meaning to one or more receiving entities. For instance, common implementations of the widely used XON/XOFF flow control protocol assign the ASCII DC3 character (0x13) to XOFF. On such a link, an embedded data byte that happens to have the value 0x13 would be misinterpreted by a receiver as an XOFF command, and cause suspension of reception. To avoid this problem, the 0x13 character embedded in the data could be sent via an “escape sequence” which consists of preceding the data character with a dedicated tag character and modifying the data character itself. The Asynchronous Control Character Map (ACCM) LCP parameter allows independent designation of each character in the range 0x00 thru 0x1F as a control character. A control character is sent/received with a preceding “control-escape” character (0x7D). When the 0x7D is seen in the received data stream, the 0x7D is dropped and the next character is exclusive-or’d with 0x20 to get the original transmitted character. ACCM negotiation consists of exchanging masks between peers to reach an agreement as to which characters will be treated as special control characters on transmission and reception. For example, sending a mask of 0xFFFFFFFF means all characters in the range 0x00 thru 0x1F will be sent with escape sequences; a mask of 0 means no special handling, so all characters are arbitrary data. Packet over Sonet is an octet-synchronous medium. If the link is direct between POS peers, neither side should be generating control-escapes. (Exceptions to this are bytes 0x7D and 0x7E: the former is the special control escape character itself; the latter is the start/end frame marker. Escaping of these two characters is generally handled directly by physical layer hardware). On links in which there is some kind of intermediate asynchronous media, it is required that whatever device performs the asynchronous to synchronous conversion must also take care of any special character handling, isolating this from any POS port. See RFC 1662, sections 4.1 and 6. If ACCM negotiation is enabled, the Ixia port advertises an ACCM mask of 0 to its peer in its LCP configuration request. The Ixia port accept whatever the peer puts forth, but does not act on the results. Regardless of the final negotiated settings for receive and transmit ACCM, the Ixia port does not send escape control sequences nor does it expect to receive them. This is the nature of a synchronous PPP medium, such as POS. Magic Number A magic number is a 32-bit value, ideally numerically random, which is placed in certain PPP control packets. Magic numbers aid in detection of looped links. If a received PPP packet that includes a magic number matches a previously transmitted packet, including magic number, the link is probably looped. IxExplorer and the Tcl/C++ APIs allow global enable/disable of magic number negotiation. If the “Use Magic Number” feature is enabled, the Ixia port will not request magic number of its peer and will reject the option if the peer requests it.
Ixia Tcl Development Guide
3-37
3
Theory of Operation Ixia Hardware
If the box is checked, we will attempt to negotiate magic number. The result of the bi-directional negotiation process is displayed in the fields for transmit and receive: an indication of whether magic number is enabled is written in the field for the corresponding direction.
NCP – Network Control Protocols IPCP – Internet Protocol Control Protocol Options The following table outlines the parameters associated with the Internet Protocol Control Protocol. IPCP includes three command types, which are assigned option numbers in the pertinent RFCs. Note that PPP parameters are typically independently negotiated for each direction on the link. The “Negotiate” column indicates how Ixia’s present implementation handles each option/parameter during the negotiation process. “Full” means that full, bi-directional negotiation support. “Reject” indicates that the option is not supported and a option rejection will be sent if the peer attempts to negotiate the option. A check in the “User Access” column means user control is provided for the option via IxExplorer or the Tcl/ C++ APIs. Several RFCs are associated with IPCP. Notes on key parameters follow the table. Table 3-10.PPP - IPCP Options LCP Option
Option Name or Parameter
Purpose
RFC
0x01
IP Addresses (static)
Obsolete.
0x02
IP Compression Protocol
Specify protocol to use for compression of IP and TCP header. Only current options are none or VJ (Van Jacobson).
0x03
IP Address
Provide means to 1332 specify own as well as peer’s IP address.
1332
Negotiate
User Access
Reject
No
Reject
No
Limited
Yes
IP Address The process of negotiation of IP addresses for the peers can be problematic. RFC 1332 does not devote enough detailed attention to the issue and other references tend to be conflicting. Behavior of equipment from different vendors can be expected to vary. For example, some equipment requires, by default, that a peer’s IP address be in the same IP subnet as their own; if not, negotiation may fail or may even become caught in an indefinite negotiation loop. The sender of this Configure-Request may either include its own IP address, to provide this information to its remote peer, or may send all 0.0.0.0 as an IP address, which requests that the remote peer assign an IP address for the local node. The receiver may refuse the requested IP address and attempt to specify
3-38
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
one for the peer to use by using a Configure-NAK response to the request with a specification of a different address. The Ixia implementation provides minimal configuration of this parameter. The Ixia user must specify the local IP address of the unit and the peer must provide its own IP address. The Ixia port will accept any IP address the peer wishes to use as long as it is a valid address (e.g., not all 0's). The Ixia port expects the peer to accept our address. If, however, the peer specifies a different address for us to use we will acknowledge that address but not actually notify the user that this has happened. The Ixia port will accept a situation in which local and peer addresses are the same following negotiation. OSINLCP - OSI Network Layer Control Protocol A single option is provided for this NCP protocol. If a non-zero value for alignment has been negotiated, subsequent ISO traffic (e.g., IS-IS) will arrive with or be sent with 1 to 3 zero pads inserted after the protocol header as per RFC 1377. MPLSCP - MPLS Network Control Protocol No options are currently available for this protocol setup.
Retry Parameters During the process of negotiation, the port uses three Retry parameters. RFC 1661 specifies the interpretation for all of the parameters. Table 3-11. PPP Retry Parameters
Ixia Tcl Development Guide
Parameter
Purpose
Range
Default
Configure-Request
Set the maximum number of configure requests that the Ixia port will re-send without getting an ack, nak or reject before beginning a termination process. This setting is used for both LCP and IPCP. RFC 1661 refers to this parameter as “Max-Configure”.
2 - 255
9
Termination Request
Set the maximum number of termination requests that the Ixia port will send without getting an ack before forcing the link down. RFC 1661 refers to this parameter as “Max-Terminate.”
2 - 255
3
Retry Time-out
Set the retransmission time-out, in seconds, between consecutive retries. This applies to all transmission retries. RFC 1661 refers to this parameter as “Restart Timer.”
2 - 10
3
3-39
3
Theory of Operation Ixia Hardware
Chassis Synchronization
Measurement of unidirectional latency and jitter in the transmission of data from a transmit port to a receive port requires that the relationship between the time maintained at each of the ports is known. This is not required for measuring roundtrip properties since the same port sends and receives the data. This can be accomplished by providing one of the following signals between chassis: • Clock (frequency standard): this allows chassis to phase-lock their frequency standards so that a cycle counter on any chassis will count the same number of cycles during the same time interval. Each Ixia port maintains such a counter from a common chassis-wide frequency standard. • Reset: Phase-locking the frequency standards between chassis allows ports on different chassis to count the same number of cycles during a given time interval. However, this does not allow the transmission delay to be calculated. A means of either discovering the fixed offset between their counters or simultaneously setting the counters to a known value must exist. It is conceptually easy to think of this as the "zero reset". In widely distributed applications, such as monitoring traffic characteristics over a WAN, these signals cannot be transmitted between chassis over a physical connection because of unknown delay characteristics. An alternative means is required to satisfy these requirements. Ixia has provided facilities that allow for the synchronization of independent Ixia chassis located anywhere in the world by replacing the existing inter-chassis sync cables with a widely available frequency and time standard supplied from an external source. Accurate timing can be used to obtain accurate latency and other measurements in a live global network. When geographically dispersed chassis are connected in this way, the combination is called a ‘virtual chassis chain’.
Worldwide Synchronization
Two or more Ixia 100 chassis and/or IxClock modules may be distributed worldwide, forming a virtual chassis chain based on GPS and/or CDMA timing. One possible configuration is shown in Figure 3-21 on page 3-40.
Ixia 100
Ixia 100
IxClock
SO
SO
SI
SI
Ixia 400
Ixia 1600
SO SI
Ixia 1600 Paris
NYC IxExplorer Miami
ScriptMate San Jose
Tokyo TCL Chicago
Figure 3-21. Worldwide Deployment of Synchronized Chassis
The ports on all of the chassis may be shared by one or more Ixia software users located likewise anywhere in the world. Where GPS and CDMA sources are
3-40
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
used, all of the sources must have good quality time values in order to for the trigger to be transmitted. Once the timing features of the chassis are configured, operating a worldwide set of Ixia chassis is the same as local operation. The Ixia hardware and software programs the clocks such that they all send a master trigger pulse to all Ixia chassis, within a tolerance of ±80 ns with GPS and ±100 us for CDMA. Ixia chassis timing operates by setting a time-of-day from one source and then maintaining the time accuracy through a potentially different means. Table 3-12 on page 3-41 describes the full set of options available and their approximate relative accuracies. Table 3-12.Summary of Timing Options Available on Devices
Timing Option
Time of Day Accuracy
Frequency Source
Frequency Accuracy
Ixia 100, 400, 1600
Synchronous
N/A
Internal PC clock
1 microsecond / second
Ixia 100, 400, 1600
CDMA
100 microseconds from GMT
CDMA
Stratum 1
Ixia 100, IxClock
GPS (with attached antenna)
150 nanoseconds from GMT
GPS
Stratum 1
IxClock
GPS (with T1/ E1 or 1PPS input)
150 nanoseconds
T1/E1 or 1PPS
Dependent on the accuracy of the selected frequency source
IxClock
GPS (with no fixed input)
150 nanoseconds, degrading to 1 ms over 3 months
Internal rubidium oscillator
1 nanosecond / second
The specifications of the GPS unit are detailed in the Ixia Hardware Guide. Three scenarios are discussed below:
Ixia Tcl Development Guide
•
Independent Operation – each Ixia 400, 1600 or Optixia chassis chain generates its own timing.
•
Ixia 100 – a one-slot chassis which includes a GPS receiver.
•
IxClock – a separate module which generates a timing signal from multiple sources.
3-41
3
Theory of Operation Ixia Hardware
Independent Operation Independent Ixia 400, 1600, or Optixia chassis may synchronize themselves with other chassis as shown in Figure 3-22 on page 3-42.The timing choices are explained in Table 3-13 on page 3-42.
Internal Sync
Other Time Source
SO
Ixia 1600
SI
Ixia 400
Figure 3-22. Independent Chassis Timing
Table 3-13.Independent Chassis Timing Choices Choice
Usage
Internal Sync (Synchronous)
If a chassis is used in a stand-alone manner or the master of a chassis chain, it may generate its own start signal. In general, there is insufficient timing accuracy between timing masters for measurements over any distance. This is also known as synchronous timing.
Sync-In (SI)
If a chassis is a slave, either directly connected to the master chassis or further down the chain, it will derive its timing from the previous chassis’ Sync-Out (SO) signal.
CDMA
The CDMA cellular network transmits an accurate time signal.
Other Time A number of hardware / software products are available Source (PC Clock) which provide accurate PC time sources. Any Windows 2000 compatible products may be used with the Ixia chassis. For example, see TRSync offered by Masterclock Inc. (http://www.masterclock.com/).
Ixia 100 If the two chassis are separated by any significant distance, a sync-out/sync-in cable cannot be used to connect them. In this case, two Ixia 100 chassis with built-in Global Positioning Satellite (GPS) or Code Division Multiple Access (CDMA) are attached to each chassis through sync-out/sync-in cables, as shown in Figure 3-23 on page 3-43. The Ixia 100s maintains an accuracy of less than
3-42
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
150 nanoseconds when attached to a GPS antenna or 100 microseconds when attached to a CDMA receiver and provide chassis to chassis synchronization.
Figure 3-23. Chassis Timing Using an Ixia 100
The Ixia 100 chassis contains one slot for an Ixia load module. The additional timing features available with the Ixia 100 are shown in Table 3-14 on page 3-43. Table 3-14.Ixia 100 Chassis Timing Choices Choice
Usage
GPS
The Ixia 100 requires connection to an external GPS antenna in order to ‘capture’ multiple GPS satellites. It will maintain an accuracy of less than 150 nano-seconds
CDMA
The CDMA cellular network transmits an accurate time signal. CDMA (Code Division Multiple Access) cellular base-stations effectively act as GPS repeaters. The Ixia 100-CDMA has a built-in CDMA receiver with a small antenna on the back on the chassis that receives the CDMA signals passively (you do not need to subscribe to any service) and decodes the embedded GPS signal. Using this approach, the Ixia 100 can be time-synched to GPS - with NO EXTERNAL ANTENNA ON THE ROOF.
The Sync-Out from the Ixia 100 is used to master a chassis chain at a specific geographic location. Since the Ixia 100 chassis has all other functions provided by the other Ixia chassis, it may also use independent timing when not used to synchronize with other chassis at other locations.
IxClock The final choice involves the use of an IxClock chassis. This is shown in Figure 3-24 on page 3-44.
Ixia Tcl Development Guide
3-43
3
Theory of Operation Ixia Hardware
Figure 3-24. IxClock Chassis Timing Choices
The IxClock module is a separate rack-mountable chassis for use in isolated environments where GPS or CDMA antenna placement is not possible. The IxClock includes provisions for multiple reference sources. At the heart of the IxClock chassis is a GPS unit. This GPS unit, with its battery pack, may be taken outside and attached to an included antenna in order to obtain an accurate time lock. Once a time value is obtained, the IxClock unit may be brought inside where it will maintain a better than 1 millisecond accuracy for up to 3 months. The clock accuracy is maintained by an optional application 1 rubidium oscillator. The IxClock may, of course, be permanently connected to the antenna to maintain a 150 nanosecond accuracy. The functions of the IxClock module are controlled via a serial link from the chassis chain master. The full set of timing choices available are shown in Table 3-15 on page 3-44. Table 3-15.IxClock Chassis Timing Choices
Bit Error Rate Testing (BERT)
3-44
Choice
Usage
Standalone
Timing is provided autonomously by the IxClock unit by virtue of a permanently connected GPS or a temporary GPS connection maintained by a rubidium oscillator.
E1/T1
Time of day is set by the GPS unit and the time base is maintained by a E1/T1 signal connected to an IxClock connector.
1PPS
Time of day is set by the NTP or GPS unit and the time is maintained by a 1 pulse per second signal connected to the IxClock front serial I/O connector.
As opposed to all other types of testing performed by Ixia hardware and software, BERT tests operate at the physical layer, also referred to as OSI Layer 1. POS frames are constructed using specific pseudo-random patterns, with or without inserted errors. The receive circuitry locks on to the received pattern and checks for errors in those patterns.
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
BERT is available on specific POS Ixia load modules. Refer to the Ixia Hardware Manual for a list of modules that support BERT. All of the Ixia PoS modules support concatenated, as opposed to channelized, operation. Therefore, the type of BERT testing performed by Ixia hardware is referred to as channelized, framed BERT testing. The patterns inserted within the PoS frames are based on the ITU-T 0151 specification. They consist of repeatable, pseudo-random data patterns of different bitlengths which are designed to test error and jitter conditions. Other constant and user-defined patterns may also be applied. Furthermore, the user may control the addition of deliberate errors to be added to the data pattern. The inserted errors are limited to 32-bits in length and may be interspersed with non-errored patterns and repeated for a count. This is illustrated in Figure 3-25. In the figure, an error pattern of n bits occurs every m bits for a count of 4. This error is inserted at the beginning of each PoS data block within a frame.
PoS Data Block Width = n bits (<= 32 bits) Period = m bits (>= n bits)
Count = 4 Figure 3-25. BERT Inserted Error Pattern
Errors in received BERT traffic are visible through the measured statistics, which are based on readings at one-second intervals. The statistics related to BERT are shown in Table 3-16. Those statistics defined in ITU-T G.826 are indicated with a ‘*’. Table 3-16.BERT Related Statistics
Ixia Tcl Development Guide
Statistic
Usage
Status
Indicates whether the receiving port, which is usually different than the transmitting port, is locked into the expected data pattern or not.
Bits Sent
The number of bits transmitted on the port.
Bits Received
The number of bits received on the port.
Bit Errors Sent
The number of bits inserted into the transmitted stream.
Bit Errors Received
The number of bits received in error.
Errored Blocks*
The number of blocks in which one or more bits are in error.
Errored Seconds* (ES)
The number of one-second periods with one or more errored blocks or at least one defect.
3-45
3
Theory of Operation Ixia Hardware
Table 3-16.BERT Related Statistics Statistic
Usage
Severely Errored Seconds* (SES)
The number of one-second periods which contain 30% errored blocks or at least one defect.
Error Free Seconds* (EFS)
The number of one-second periods for which no bit error or defect was detected.
Available Seconds* (AS)
The number of seconds for which the data transmission was available. See Available / Unavailable Seconds on page 3-46.
Unavailable Seconds* (UAS)
The number of seconds for which the data transmission was unavailable. See Available / Unavailable Seconds on page 3-46.
Block Error State
Indicates whether the most recent block received is Available or Unavailable. See Available / Unavailable Seconds on page 3-46.
Background Block Errors*
The number of errored blocks not occurring as part of a Severely Errored Second.
Errored Second Ratio (ESR)*
This ratio results from the following calculation: Where P = the total measurement period (in seconds), and c = count: ESR = cES/(P-UAS)
Severely Errored Second Ratio (SESR)*
This ratio results from the following calculation: Where P = the total measurement period (in seconds), and c = count: SESR = cSES/(P-UAS)
Background Block Error Ratio (BBER)*
This ratio results from the following calculation: Where P = the total measurement period (in seconds), and c = count: BBER = cBBE/[(P-UAS-cSES) x 8000 blocks per second]
Available / Unavailable Seconds Reception of POS signals can be divided into two types of periods, depending on the current state – Available or Unavailable, as shown in Figure 3-26. The seconds occurring during an unavailable period are termed Unavailable Seconds
3-46
Ixia Tcl Development Guide
Theory of Operation Ixia Hardware
(UAS); those occurring during an available period are termed Available Seconds (AS). Time 0
5
10
15
A
20
25
C
30
35
D
Unavailability detected
B Unavailable period/ Unavailable seconds (UASs) Severely Errored Second (SES)
E
Availability detected
Available period/ Available seconds(ASs)
Errored Second (non-SES) Error-free Second
Figure 3-26. BERT- Unavailable/Available Periods
These periods are defined by the error condition of the data stream. When 10 consecutive SESs (A in the figure) are received, the receiving interface triggers an Unavailable Period. The period remains in the Unavailable state (B in the figure), until a string of 10 consecutive non-SESs is received (D in the figure), and the beginning of the Available state is triggered. The string of consecutive nonSESs in C in the figure was less than 10 seconds, which was insufficient to trigger a change to the Available state.
Ixia Tcl Development Guide
3-47
3
Theory of Operation Ixia Software
Ixia Software Different software packages are available which utilize Ixia hardware. Individual manuals are available for each.
3-48
•
IxExplorer – an interactive, GUI-based software interface which allows all features of the Ixia hardware to be programmed and operated. The programming paradigm calls for each port to be individually set up, and included facilities for copying port configuration from one port to others. A number of displays are available for viewing captured packets, statistics and port latency.
•
ScriptMate – an interactive, GUI-based software interface which allows for the configuration of pre-programmed TCL tests. Tests are provided for standard RFC requirements, quality of service and performance measurement. Specific tests are provided for specific technologies and protocols associated with Cable Modems, Load Balancing Servers, Wireless IP and Border Gateway Protocol. The GUI controls which ports are used during testing as well as their configuration. It also enables modification of the basic parameters of the tests themselves. Logs are produced with test results.
•
TCL – an API (application programming interface) which allows programmers conversant with the TCL programming language to control all aspects of Ixia hardware operation. The ScriptMate provided programs utilize this API.
•
C++ – an API which allows programmers conversant with the C++ programming language to control all aspects of Ixia hardware operation.
•
IxTrafficTM - Fully distributed system for collecting, aggregating, and visualizing traffic metrics of backbone routers.
•
IxCoreTM - Scalable, highly accurate system for one-way performance monitoring of latency, packet loss, and jitter, designed to be deployed in the core of the IP network. It is based on the IETF IPPM RFCs and features real-time reporting and notification mechanisms. Used to validate the network’s ability to carry the next generation converged services.
•
IxEdgeTM - Highly scalable system for round-trip performance monitoring of latency, packet loss, path stability and availability, designed to monitor the edge of the IP network. It can simultaneously monitor thousands of paths to validate and enforce customer service level agreements (SLAs).
•
IxProfileTM - High-speed passive monitoring system that reports key traffic profiles like protocol distributions and traffic size distributions. Designed for use by ISPs, network service providers, and carriers to characterize the traffic on their backbones and perform non-intrusive, real-time packet analysis without sampling or degrading router performance.
•
IxMappingTM - Effectively identifies the geographic source and destination of routers, servers, and other network infrastructure elements. Used for security, authentication, and network management.
Ixia Tcl Development Guide
Theory of Operation Tcl Software Structure
An additional tool, called Scriptgen, can be used to generate a TCL program that reflects the state of a single Ixia port. Scriptgen is written in TCL and uses the TCL API. The state of the port which is dumped by Scriptgen is most often set up using IxExplorer, but any means of setting up the port may precede Scriptgen usage. The Scriptgen generated program is entirely self-contained and executable; when executed it will re-establish the port’s state. With suitable modification, however, it could be included in a larger TCL program in order to construct a complete end-to-end test. • •
SONET Headers
•
PPP for use with SONET. Includes dialogs for Negotiation, Link Control Protocols, and Network Control Protocols.
•
SONET Overhead
Tcl Software Structure The Tcl software is structured as a number of client-server pieces so that it may operate simultaneously in three different environments: •
On the Ixia chassis—the Tcl scripts are executed on the same computer that runs the Ixia hardware.
•
On a Windows client—the Tcl scripts are executed on a Windows NT/95/98 client.
•
On a Unix client—the Tcl scripts are executed on a Unix client.
The following sections describe the components used in each of these scenarios.
Ixia Tcl Development Guide
3-49
3
Theory of Operation Tcl Software Structure
Operation on the Ixia Chassis
When the Tcl client software is installed on the Ixia chassis itself three distinct software components are used, as shown in Figure 3-27.
Tcl script
Tcl script
TclHAL
IxServer
Ixia Chassis Figure 3-27. Software Modules used on an Ixia Chassis
In this scenario, three components are used as described in Table 3-17. Table 3-17.Software Modules used on an Ixia Chassis
3-50
Module
Usage
Tcl scripts
Ixia supplied and user developed Tcl. The Tcl extensions that program the Ixia hardware use the TclHAL layer.
TclHAL
A layer of software, supplied as a DLL (Dynamic Linked Library), that is responsible for interpreting the Tcl commands into C++ functions to be sent to the IxServer software.
IxServer
An independent Windows executable that is responsible for directly controlling the Ixia hardware.
Ixia Tcl Development Guide
Theory of Operation Tcl Software Structure
Operation on a Windows Client
When the Tcl client software runs on a Windows client, the same three components are used but in a different configuration, as shown in Figure 3-28.
Tcl script
Tcl script
IxServer
TclHAL Network
Ixia Chassis
Windows Client
Figure 3-28. Software Modules used on a Windows Client
In this scenario, three components are used as described in Table 3-18. Table 3-18.Software Modules used on a Windows Client
Ixia Tcl Development Guide
Module
Usage
Tcl scripts
Ixia supplied and user developed tests run on the Windows client using the Tcl software. The Tcl extensions that program the Ixia hardware use the TclHAL layer.
TclHAL
A layer of software, supplied as a DLL (Dynamic Linked Library), that is responsible for interpreting the Tcl commands into C++ functions to be sent to the IxServer over the local network.
IxServer
An independent Windows executable running on the Ixia Chassis that is responsible for directly controlling the Ixia hardware. Its commands are received from clients over the LAN.
3-51
3
Theory of Operation Tcl Software Structure
Operation on a Unix Client
When the Tcl client software runs on a Unix client, five components are used as shown in Figure 3-29.
Tcl script
TclServer
Tcl script
TclHAL
Network Interface Network
IxServer
Ixia Chassis
Unix Client
Figure 3-29. Software Modules used on a Unix Client
In this scenario, five components are used as described in Figure 3-29. Table 3-19.Software Modules used on a Unix Client
3-52
Module
Usage
Tcl scripts
Ixia supplied and user developed tests run on the Windows client using the Tcl software. The Tcl extensions that program the Ixia hardware use the Tcl-DP client software.
Network Interface
This is a layer of software within the TCL system that translates hardware commands into ascii commands, which are sent to the TCL Server on the connected Ixia chassis.
TclServer
Receives commands from the Tcl-DP client on Unix client platforms. Commands are translated into calls to the TclHAL layer.
TclHAL
A layer of software, supplied as a DLL (Dynamic Linked Library), that is responsible for interpreting the Tcl commands into C++ functions to be sent to IxServer on the chassis over the network.
IxServer
An independent Windows executable running on the Ixia Chassis that is responsible for directly controlling the Ixia hardware. Its commands are received from clients over the LAN.
Ixia Tcl Development Guide
Theory of Operation Tcl Software Structure
Multiple Client Environment
A single Ixia chassis may be used by multiple clients simultaneously. Clients may run from the Ixia chassis, Windows clients, and Unix clients simultaneously, as shown in Figure 3-30.
Tcl script
Tcl script Tcl script
TclHAL
Tcl script
TclHAL
Network IF
TclServer
Tcl script
Tcl script
IxServer TclHAL
Network IF
Windows Clients
Ixia Chassis
Unix Clients
Figure 3-30. Multi-Client Environment
Ixia Tcl Development Guide
3-53
3
Theory of Operation Tcl Software Structure
3-54
Ixia Tcl Development Guide
4
Chapter 4:
Programming
API Structure and Conventions This chapter discusses general structure of the Ixia Tcl commands and suggested programming sequence. Most of the Tcl commands have the same basic structure:
Standard SubCommands
Ixia Tcl Development Guide
•
A number of configuration options that are used to set test and other parameters.
•
A standard set of options that push the data options toward the hardware and read information back from the hardware.
•
Additional command specific options used to perform special settings or operations.
The standard sub-commands that come with most commands are: TABLE 4-1. Standard
Options
Method
Usage
config
Sets a specified value to a specific option, which is most often a desired hardware setting. The value is stored in an object in IxTclHAL temporarily.
cget
Gets a specified option’s value, which was stored in the IxTclHAL object.
set
Information is transferred from the IxTclHAL object to the IxHal software layer, but not sent to the hardware. The set method takes as arguments the chassis ID, card number and port number being addressed.
4-1
4
Programming API Structure and Conventions
TABLE 4-1. Standard
Options
Method
Usage
write
Information previously transferred to the IxHal software layer is sent to the hardware.The write method takes as arguments the chassis ID, card number and port number being addressed. Although each class provides its own write method, it is usually more convenient to call ixWriteConfigToHardware, which will send all outstanding set’s to the hardware at the same time.
get
Information from the hardware is read out to the IxHal layer and into the member variables. In many cases, the IxHal layer holds more information than is represented in a single set of member variables and additional methods are needed to obtain more data. The get method takes as arguments the chassis ID, card number and port number being addressed.
setDefault
Default values for the members are set.
decode
A captured frame is analyzed and appropriate member variables are set to reflect the contents of the frame.
In general hardware parameters may be saved through the use of a ‘config’ option and then retrieved at any later time via a ‘get’ option followed by a ‘cget’ option. This is because the IxHal level maintains memory of all of the settings. This relationship of methods is illustrated in Table 4-1 on page 4-1. Note that a single instance of each command exists, with a set of associated data variables, called standard options. The standard options from one command are often used in another. For example, the ipAddressTable command uses the standard options from the ipAddressTableItem command. The most recent standard options from the ipAddressTableItem command are used by the ipAddressTable command. Make sure that the standard options from dependent commands are set immediately before being used. Intervening commands may interfere. The values defined in the tables for each of the API commands may be used in several ways: •
As an argument to a config command. For example, both: port config -masterSlave portMaster -andport config -masterSlave $::portMaster
are valid. In the first case, the port config command figures out the value of portMaster (0). In the second case, the global variable $::portMaster (which is defined in the IxTclHal package) is used to determine a value of 0. The :: qualifier indicates that the variable is defined in the global context. •
As a variable used for comparison. For example: port get 1 1 1 set msValue [port cget -masterSlave] if [$msValue == $::portMaster] ...
Here the $:: form must be used to refer to the value of portMaster.
4-2
Ixia Tcl Development Guide
Programming API Structure and Conventions
Tcl App config
cget
Tcl Cmnd Lib IxTclHal get
set
IxHal write
IxServer Figure 4-31. Standard Method Relationships
Ixia Tcl Development Guide
4-3
4
Programming Sequence of Steps
Sequence of Steps The following sequence of steps should be followed to write a successful Tcl script: 1. Load the IxTclHal package. The IxTclHal package contains all the Ixia Tcl Library commands. After loading this package, these commands are made available in the test script. The format of using the package command is as follows: package require IxTclHal
2. Connect to the chassis on which the test is to be executed. After loading the package, the chassis has to be connected to where the test is going to be executed. The following commands are used to connect and set up the chassis parameters: chassis add
chassis config -id chassis set
The chassis add command connects to the chassis. The chassis config -id command associates a numeric ID with the chassis. The chassis set command sets the ID of the chassis in IxHAL. It is important to assign a chassisID to the chassis as it is used in the map command. If multiple chassis are to be used, then multiple chassis add commands must be given and each chassis should be assigned a unique ID. Alternatively, the following sequence could be used: ixInitialize
set chassisID [ixGetChassisID ]
The ixInitialize takes care of all three steps in the previous example, assigning a chassis ID on its own. The call to ixGetChassisID is needed to retrieve the assigned chassis ID for future use. 3. Set up the traffic mapping This is an optional step. The mechanism for setting up traffic mapping is provided only for convenience. Users may use their own methods for storing this information. Before any test can be executed, it is important to specify the flow of traffic, that is, the transmit and receive ports. The mapping for these ports is specified using the map command as follows: map config –type one2one; # or one2many, many2one, many2many map add
This command will store the transmit chassis, card, port and receive chassis, card, port combinations in a Tcl array within the scope of the Tcl script. There are four types of mappings: a: One to One mapping b: One to Many mapping c: Many to One mapping
4-4
Ixia Tcl Development Guide
Programming Sequence of Steps
d: Many to Many mapping For the mappings specified in a), b), c), and d) above, the chassis, card, port combinations are stored in Tcl arrays one2oneArray, one2manyArray, many2oneArray and many2manyArray, respectively. Each Transmit/Receive combination in one2oneArray is unique. That is, there is only one Receive port for each Transmit port. The Receive port may also be set as Transmit port. Similarly, for the one2manyArray, any Transmit port cannot be used as a Receive port for a different set, and for the many2oneArray, any Receive port cannot be used in a different set of the many-to-one map. The many2manyArray can contain any combination of transmit and receive ports. A port can be assigned to be a Receive port for any number of Transmit ports and can also act as a Transmit port for several Receive ports. TABLE 4-2. Traffic
Map Array
Array Type
Format
one2oneArray
one2oneArray(txChassis,txCard,txPort) {{rxChassis rxCard rxPort}}
one2manyArray
one2manyArray(txChassis,txCard,txPort) {{rxChassis1 rxCard1 rxPort1} {rxChassis2 rxCard2 rxPort2} ………… {rxChassisN rxCardN rxPortN}}
many2oneArray
many2oneArray(rxChassis,rxCard,rxPort) {{txChassis1 txCard1 txPort1} {txChassis2 txCard2 txPort2} ………. {txChassisN txCardN txPortN}}
many2manyArray
many2manyArray(txChassis,txCard,txPort) {{rxChassis1 rxCard1 rxPort1} {rxChassis2 rxCard2 rxPort2} ……. {rxChassisN rxCardN rxPortN}}
The map command is very useful when writing scripts. Upon closer inspection, it will be apparent that the Transmit ports in the traffic flow are all stored as elements of the arrays (except for many2oneArray) and the Receive ports are stored as values (Tcl Lists) of these arrays. This method of storage allows a great deal of flexibility when this information is needed. In Tcl, the command [array names one2oneArray], for example, will give access to all the Transmit ports and to access the Receive port, $one2oneArray($txChassis,$txCard,$txPort) gives the list with the Receive chassis, card, port combination. 4. Set up test related parameters The test related information such as duration of test, number of trials, configuration of learn frames and IP/IPX addresses may be set up next. 5. Configure the port parameters The port parameters such as speed, duplex, loopback and auto-negotiation must be set in IxHAL and then in hardware (by sending the message to IxServer). The following steps should be followed to configure the ports: port config -autonegotiate port config -duplex
Ixia Tcl Development Guide
true full
4-5
4
Programming Sequence of Steps
port port port port
config -numAddresses 1 config -MacAddress {00 01 02 03 04 05} set $chassisID $cardID $portID write $chassisID $cardID $portID
The addresses for the ports are assigned in this step. Note that for the Tcl scripts, the addresses are assigned to ports but they are actually configured in the streams (see step 6). This is due to the fact that when executing tests that send and receive traffic from switches and routers, addresses are assigned to physical ports. The concept of streams is invisible to the switches and routers. The MAC address is assigned to the port using the port config -MacAddress command. The source and destination IP addresses are assigned to ports using the ip command. Similarly, the IPX network and node addresses and sockets are assigned to ports using the ipx command. The following is an example showing the assignment of IP addresses to a port: ip ip ip ip ip
config -sourceIpAddr 198.18.1.100 config -destDutIpAddr 198.18.1.1 config -destClass classC config -sourceClass classC set $chassisID $cardID $portID
6. Configure the streams on the transmit ports The traffic is sent in streams, which contain the frame characteristics. Multiple streams may be created per port. The important parameters in the stream are frame size, inter-frame gap, frame data type, the number of frames to be transmitted, the source and destination MAC addresses in each frame and whether they are incrementing, decrementing or fixed. When configuring the protocol related parameters such as MAC, IP or IPX addresses, the protocol configuration will not be written to hardware until a stream set command is used. In addition, the User Defined Fields (UDFs) can be configured to overlay a 1 to 4 byte custom pattern over the specified frame data. Examples of usage for UDFs include setting up filters on the receive ports for a particular UDF pattern, allowing an incrementing IP address or IPX socket, and adding a sequence ID to the frame. The following few lines show some stream configurations: stream config -numFrames 10000
stream config -name "MyStream" stream config -dma stopStream # Calculate the inter-frame gap using the utility command, calculateGap stream config -ifg [calculateGap $rate $framesize $preambleSize $speed] # get the transmit chassis, card, port combination from the Tcl # array created by the map command by using [array names ]. # For example, the txChassis,txCard,txPort combination for the first # set in the one2oneArray can be obtained as follows: # set txMap [lindex [array names one2oneArray] 0] # scan $txMap "%d %d %d" txChassis txCard txPort port get $txChassis $txCard $txPort set txPortMacAddress [port cget -MacAddress]
4-6
Ixia Tcl Development Guide
Programming Sequence of Steps
# The source MAC address of the port is set in the stream stream config -sa $txPortMacAddress # The destination MAC address of this transmit port can be obtained # from the receive port by using: # set rxMap $ ($txChassis $txCard $txPort) # scan rxMap "%d %d %d" rxChassis rxCard rxPort port get $rxChassis $rxCard $rxPort stream config -da [port cget -MacAddress] # overwrite 4 bytes of the frame data at offset 42 with magic # pattern "BE EF" using UDF 4 udf config -offset 42 udf config -enable true udf config -countertype c8x8 udf config -initval "BE EF" udf set 4 # set the current stream configuration in IxHAL as the first stream # on this port stream set $txChassis $txCard $txPort 1
7. Configure the filters parameters on receive ports The filters are used to count or capture desired format of frames. To capture the frames, the capture trigger and capture filter parameters have to be enabled. Two counters, User Defined Statistics Counter 1 and User Defined Statistics Counter 2, can be enabled to count frames that match the defined constraints. The UDF values that are set using the stream command can be filtered upon and counted using these counters. To define the constraints on these counters, the filterPallette command can be used to specify up to two Destination MAC addresses, two Source MAC addresses and up to two patterns. # Enable the User Defined Statistics Counter 1, Capture # trigger and capture filter counters filter config -userDefinedStat1Enable true filter config -captureFilterEnable true filter config -captureTriggerEnable true # set the User Defined Statistics Counter 1 to count frames # that have destination MAC address "00 01 02 03 04 05" filter config -userDefinedStat1DA "00 01 02 03 04 05" # set the capture filter counter to capture frames # that have pattern "BE EF" filter config - captureFilterPattern "BE EF" # set up the filter pallette filterPallette config -DA1 "00 01 02 03 04 05" filterPallette config -pattern1 "BE EF" filterPallette config -patternOffset1 42 # obtain the receive chassis, card, port combination and set the # filter and filter pallette on the receive port filter set $rxChassis $rxCard $rxPort
Ixia Tcl Development Guide
4-7
4
Programming Sequence of Steps
filterPallette set $rxChassis $rxCard $rxPort
8. Write the configuration into hardware After the stream and filter configurations are set in IxHAL, a message must be sent to IxServer to commit these configurations to hardware. Every command has a write sub-command that writes that command related information into the hardware. However, it is inefficient to commit to hardware after updating every parameter as it might effect the performance of system. A more efficient method of writing to hardware is to update all the IxHAL objects first and send out one message to IxServer. For example, after all the chassis, ports, filters and stream information is set up in IxHAL, a message can be sent to the IxServer requesting it to write every configuration on a chassis. There are two recommended methods of writing to hardware: a: If a traffic map was set-up in step (3): ixWriteConfigToHardware