You are on page 1of 780

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 Telephone Fax Website General Investor Relations Sales Customer Support Training 26601 W. Agoura Rd. Calabasas, CA 91302 USA 1 (877) FOR IXIA (877-367-4942) + 1 (818) 871 1800 (International) (818) 871-1805 www.ixiacom.com info@ixiacom.com ir@ixiacom.com sales@ixiacom.com support@ixiacom.com training@ixiacom.com

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
Chassis Chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 Chassis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2

Ixia Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1

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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-50 3-51 3-52 3-53

Chapter 4

Programming
Standard Sub-Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1

API Structure and Conventions . . . . . . . . . . . . . . . . . . . . . . . 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

Table of Contents

Chapter 5

IxTclHal API Description


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

Chassis, Cards and Ports . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2

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

vi

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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . isisServer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . isisRouter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . isisRouteRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . isisInterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . rsvpServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . rsvpNeighborPair. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . rsvpDestinationRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . rsvpSenderRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . rsvpEroItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . rsvpRroItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-58 5-59 5-61 5-62 5-64 5-64 5-65 5-66 5-67 5-69 5-69 5-71 5-72 5-74 5-77 5-78 5-79

IS-IS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-66

RSVP-TE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-71

RIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-80
ripServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-80 ripInterfaceRouter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-81 ripRouteRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-83

Chapter 6

High-Level and Utility API Description


Mapping and Port Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-3
map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5 ixCreatePortListWildCard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5 ixCreateSortedPortList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6

Initialization and Setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3

Including Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-6


ixSource. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6

Chassis and TclServer Connection . . . . . . . . . . . . . . . . . . . . . . . . . .6-6


ixInitialize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ixConnectToTclServer / ixDisconnectTclServer . . . . . . . . . . . . . . . . . . . . . . . ixProxyConnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ixConnectToChassis / ixDisconnectFromChassis . . . . . . . . . . . . . . . . . . . . . . ixGetChassisID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7 6-7 6-7 6-8 6-8

viii

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

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. Figure 2-2. Figure 2-3. Figure 3-4. Figure 3-5. Figure 3-6. Figure 3-7. Figure 3-8. Figure 3-9. System Overview Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-2 Expected Output from IxSampleTcl.tcl Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-2 Sample Test Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-3 Ixia Chassis Chain and Control Workstation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-2 Ixia 1600 Interior View (Top View) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-3 Inter-Stream Gap (ISG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-6 Inter-Burst Gap (IBG)/Burst Gap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-6 Inter-Packet Gap (IPG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-7 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. Figure E-1. Figure E-2. Figure F-1. Figure F-2. Figure F-3. Figure F-4. Figure F-5. Figure F-6. Figure G-7. Figure G-8. Traffic Mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4 Wish Console Icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .E-1 ScriptGen Usage Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .E-2 Tcl Server on an Ixia Chassis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-1 Tcl Server on an Independent Windows Host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-2 Initial Tcl Server Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-3 Tcl Server with Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-3 IxTclServer Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-4 Serial Port Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-6 Statistics Mode Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-2 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.

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

xxvi

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.

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

xxviii

Ixia Tcl Development Guide

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

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

Introduction
ScriptGen

ScriptGen
ScriptGen is an auxiliary Tcl tool that is installed as part of the Tcl Client package. Its 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 APIs 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

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

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 <installation location>\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

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.

Expected Output from IxSampleTcl.tcl Execution

2-2

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
Port 1

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 2

Ixia Chassis

Program m ing Station

Figure 2-3.

Sample Test Setup

Ixia Tcl Development Guide

2-3

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 } # Streams 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 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

Ixia Tcl Development Guide

2-5

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

Quick Start
IxSampleTcl Test Program

2-8

Ixia Tcl Development Guide

3
Chassis Chain

Chapter 3:

Theory of Operation

Ixia Hardware
In this chapter, well discuss the unifying concepts behind the Ixia system. Both the software and hardware structures, and their usage, will be discussed. At the highest level, the Ixia hardware is structured as a chain of chassisup 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 moduleswhich 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

Theory of Operation
Ixia Hardware

Master

Slave

Ethernet Network

Sync Sync out in

Sync out

Other Slaves

Device Under Test (DUT)

Control Workstations

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 DUTs 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

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.

3-2

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 modules 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

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 Capabilitiesfacilities for generating data traffic Streams and Flowsa set of packets, which may be grouped into bursts Burstsa number of packets Packetsindividual frames/packets of data Frame Datathe construction of data within a frame/packet Port Data Capture Capabilitiesfacilities for capturing data received on a port Port Statistics Capabilitiesfacilities 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 streams 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 Packeta continuous stream of packets. The packets are not necessarily identical; their contents may vary significantly. (Not available for packet flows.) Continuous Bursta 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 streamdata 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 Nextdata transmission continues on to the next stream after the completion of the current stream.

Ixia Tcl Development Guide

3-5

Theory of Operation
Ixia Hardware

Return to IDafter 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 Countafter 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 (Direction of Transmission)

Stream 1 Advance to next

ISG

Stream 2 Advance to next

ISG

Stream 3

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 sizethe 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 generatorsfive 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 dataformatted 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 patternscan 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 countersfour 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

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 Start Transmit Usage 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. 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. 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. 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. Causes one packet to be transmitted from each of the ports in the present set of ports.

Staggered Start Transmit

Stop Transmit

Pause Transmit

Step Stream

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 ports 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

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 Start Capture Usage 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. Stops data capture on all ports in the set of ports. Initiates latency measurements for all ports in the set of ports whose Receive Mode is set to Packet Group operation. Stops latency measurements on all ports in the set of ports. 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. Stops generation of forced collisions for all ports in the set of ports.

Stop Capture Start Latency

Stop Latency Start Collision

Stop Collision

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.
Colliding Packets Non-Colliding Packets Colliding Packets

Collision Duration Preamble Packet Offset Collision (Individual Packet)

Figure 3-9.

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 IDa 2-byte field which immediately follows the signatureis used as an index by the ports receive buffer to store information related to the latency of the packet. When packet group signatures and packet group IDs 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 Signature Offset Group ID Offset

Group ID

Time Stamp

CRC/ FCS

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

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 3 4 5

1 2 3 4 5 6 7 8 # of PGIDs/Time Bucket (8)

1 Time Bucket

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 2i.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: Cut-Throughfor 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 Forwardfor 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.

3-12

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 Sequence Number Offset Signature Offset Figure 3-12. Packet Format for Sequence Checking

CRC/ FCS

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

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 Signature Value Data Integrity Signature Offset Packet Data for Checksum

Data Integrity

CRC-16

Time CRC/ Stamp FCS

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 Statisticsfour 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 Typesseparate counts for each of eight quality of service values used in IP headers. IP/UDP/TCP Checksum Verificationfor hardware checksum verification. Data Integrity Statsfor errors relating to Data Integrity Operation. Refer to Data Integrity Checking Operation on page 3-13. Protocol Server Statsprotocol-based statistics for: ARP, BGP, ISIS, ICMP, OSPF, and RSVP-TE. SONET Extended Statsstatistics associated with SONET Line, Section and Path characteristics. Temperature Sensors Statsfor 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 A

DUT Ports X

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-Ys 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 packets 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

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

Ixia Tcl Development Guide

3-15

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 ARP IGMP BGP4 OSPF RIP RIP RSVP-TE IP to MAC addressing Address Resolution Protocol (non-POS only) Internet Gateway Management Protocol Border Gateway Protocol Open Shortest Path First routing protocol Routing Information Protocol Intermediate System to Intermediate System, Dual Mode 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 Service ARP Usage (Non-POS cards only) Enables ARP requests and responses. ARP requests are received at the MAC level. See ARP on page 3-17. 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. Enables IGMP testing. IGMP messages are sent as IP protocol number 2. See IGMP on page 3-17. 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. Enables OSPF testing. OSPF messages are sent as IP protocol number 89. See OSPF on page 3-17. Enables RIP testing. RIP messages are sent as UDP messages on port 520. See RIP on page 3-23. Enables IS-IS testing. IS-IS messages are sent using ISO messages. See IS-IS on page 3-24. Enables RSVP-TE testing. RSVP messages are sent as raw IP messages using protocol number 46. See RSVP-TE on page 3-27.

Ping

IGMP BGP4

OSPF RIP IS-IS RSVP-TE

3-16

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

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 routers 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 Ixia-Sim. OSPF Router 1

.10

.40

Network 3 10.10.10.0/24

.90

OSPF Router 3 (DUT)

Network 2 172.16.1.0/24

.20

Ixia-Sim. OSPF Router 2

.41

Ixia Ports Figure 3-15. Sample OSPF Network

Device Under Test

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 10.0.0.40 10.0.0.41 10.0.0.40 10.0.0.41 10.0.0.90

1 2 3

192.168.36.0 172.16.0.0 10.0.0.0

255.255.255.0 255.255.255.0 255.255.0.0

192.168.36.10 172.16.0.20 10.0.0.40 10.0.0.41 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

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 R1 EBGP R2 AS2

R3 AS3

R4 IBGP

R5

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

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.

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 24 Mask Width To 26 Number of Routes Generated BGP Routes (Network Addresses)

192.168.36.0

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

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

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 senders 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

Theory of Operation
Ixia Hardware

Area A L1 L1/L2 L1 Area C Ixia L2 L2 L1 L1/L2 Area D L1 L2 DUT Area B L1 Ixia L1/L2 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 routers 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
Tunnel 1

LSPs 1, 2, 3

Destination Routers

LSRs

Tunnel 2

LSRs

LSR I A

LSR II 1 LSPs 1, 2, 3

PATH Messages
C

RESV Messages

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

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 SESSION Contents Usage Describes the destination router and associates a tunnel ID with the session. tunnel endpoint tunnel ID SENDER_TEMPLATE tunnel sender address LSP ID LABEL_REQUEST SENDER_TSPEC and ADSPEC TIME_VALUES refresh interval EXPLICIT_ROUTE The destination routers IP address. A unique LSP tunnel ID. The description of the sender. The sender routers IP address. A unique LSP ID. Asks all the LSRs to send back label values via RESV messages. Both of these objects deal with bandwidth and other QoS requirements for the path. Timing values related to the refresh of tunnel information. The interval between messages. 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. Other attributes associated with the session: tunnel establishment priorities, session name and optionally resource affinity. Describes the immediate upstream routers address to the downstream router.

SESSION_ATTRIBUTE

RSVP_HOP

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

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 Object SESSION TIME_VALUES STYLE Usage Indicates which session is being responded to. As in the PATH message but from the downstream LSR to the upstream LSR. 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. The sender routers IP address and the LSP ID. The label value assigned by the downstream router for use by the upstream router. 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 its own address information. 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.

FILTER_SPEC LABEL RECORD_ROUTE

RESV_CONF

3-30

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 PATH_ERR Usage 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. When a sender router determines that it wants to tear down a tunnel, it sends a PATH_TEAR message to the destination router. If a router cannot handle a reservation, it sends a RESV_ERR back to the destination router. When a destination router determines that it wants to tear down a tunnel, it sends a RESV_TEAR message upstream to the source router. 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.

PATH_TEAR

RESV_ERR RESV_TEAR

RESV_CONF

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

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: Configure-Reject the receiving party doesnt 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.

3-32

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 Ixias 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 LCP Option Name Option or Parameter 0x00 Vendor Extensions Purpose Allow exchange of proprietary information between devices of same vendor. Specify maximum supported size for PPP information field. See Maximum Receive Unit on page 3-36 for more details. RFC Negotiate User Access No

2153 Reject

0x01

Maximum Receive Unit

1661 Full

Yes

Ixia Tcl Development Guide

3-33

Theory of Operation
Ixia Hardware

Table 3-9. PPP-LCP Options LCP Option Name Option or Parameter 0x02 Asynchronous Control Character Map (ACCM) Purpose 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. Specify which protocol (PAP, CHAP, etc.) will be used during a subsequent authentication phase. Specify which protocol will be used for tracking link performance. Link-Quality Report is the only standard option supported. Specify random tag used to detect loop-backs and to identify peers. See Magic Number on page 3-37 for more details. RFC Negotiate User Access Yes

1662 Full (synchron ous only)

0x03

Authentication Protocol

1661 Reject

No

0x04

Quality Protocol

1661 Full

Yes

0x05

Magic Number

1661 Full

Yes

0x06

Protocol Field Indicate whether Compression (PFC) reception of compressed PPP protocol fields (one byte instead of two) is supported. Address and Control Field Compression (ACFC) Indicate whether reception of compressed HDLC headers (without address and control fields) is supported.

1661 Reject

No

0x07

1661 Reject

No

3-34

Ixia Tcl Development Guide

Theory of Operation
Ixia Hardware

Table 3-9. PPP-LCP Options LCP Option Name Option or Parameter 0x08 0x09 FCS Alternatives Self Describing Pad (SDP) Purpose Specify CRC type (16 or 32 bit). Allow padding of PPP information field to a specified boundary. Specify usage of a reliable transport mode (similar to TCP) at the PPP/link layer. RFC Negotiate User Access No No

1570 Reject 1570 Reject

0x0A

Numbered Mode

1663 Reject

No

0x0B 0x0C

Multi-link Procedure Obsolete. Callback Indicate desire for disconnect after authentication followed by automatic callback from peer. Obsolete. Specify manner to encapsulate multiple PPP frames within single link-layer frame. Obsolete. MP (PPP link aggregation). MP related.

Reject 1570 Reject

No No

0x0D 0x0E

Connect time Compound Frames

Reject 1570 Reject

No No

0x0F 0x11 0x12

Nominal-Data Encapsulation Multilink MRRU Multilink Short Sequence Number Header Format Multilink Endpoint Discriminator Proprietary DCE Identifier

Reject 1990 Reject 1990 Reject

No No No

0x13 0x14 0x15

MP related. Proprietary use. Specify manner to distinguish certain communications devices from routers, etc.

1990 Reject Reject 1976 Reject 1963

No No No

Ixia Tcl Development Guide

3-35

Theory of Operation
Ixia Hardware

Table 3-9. PPP-LCP Options LCP Option Name Option or Parameter 0x16 Multilink-Plus Proc. Purpose MP related: Proprietary to Ascend. MP related: Specifies parameters for Bandwidth Allocation Control Protocol Proposed method for performing authentication within LCP. RFC Negotiate User Access No

1934 Reject

0x17

Link Discriminator

2125 Reject

No

0x18

LCP Authentication Option

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 users 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-ord 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

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 Ixias 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 0x01 0x02 Option Name or Parameter IP Addresses (static) IP Compression Protocol Purpose Obsolete. Specify protocol to use for compression of IP and TCP header. Only current options are none or VJ (Van Jacobson). 1332 RFC Negotiate Reject Reject User Access No No

0x03

IP Address

Provide means to 1332 specify own as well as peers IP address.

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 peers 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 Parameter Configure-Request Purpose 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. 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. 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. Range 2 - 255 Default 9

Termination Request

2 - 255

Retry Time-out

2 - 10

Ixia Tcl Development Guide

3-39

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
SO SI

Ixia 100

IxClock
SO SI

Ixia 1600

Ixia 400
SO SI

Ixia 1600 NYC IxExplorer Miami Paris ScriptMate San Jose TCL Chicago Tokyo

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 Ixia 100, 400, 1600 Ixia 100, 400, 1600 Ixia 100, IxClock IxClock Timing Option Synchronous Time of Day Accuracy N/A Frequency Source Internal PC clock CDMA GPS Frequency Accuracy 1 microsecond / second Stratum 1 Stratum 1

CDMA GPS (with attached antenna) GPS (with T1/ E1 or 1PPS input)

100 microseconds from GMT 150 nanoseconds from GMT 150 nanoseconds

T1/E1 or 1PPS

Dependent on the accuracy of the selected frequency source 1 nanosecond / second

IxClock

GPS (with no fixed input)

150 nanoseconds, degrading to 1 ms over 3 months

Internal rubidium oscillator

The specifications of the GPS unit are detailed in the Ixia Hardware Guide. Three scenarios are discussed below: 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.

Ixia Tcl Development Guide

3-41

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 Ixia 1600

SO

SI

Ixia 400

Figure 3-22. Independent Chassis Timing

Table 3-13.Independent Chassis Timing Choices Choice Internal Sync (Synchronous) Usage 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. 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. The CDMA cellular network transmits an accurate time signal.

Sync-In (SI)

CDMA

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 GPS Usage 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 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.

CDMA

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

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 Choice Standalone Usage 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. 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. 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.

E1/T1

1PPS

Bit Error Rate Testing (BERT)

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.

3-44

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 Statistic Status Usage Indicates whether the receiving port, which is usually different than the transmitting port, is locked into the expected data pattern or not. The number of bits transmitted on the port. The number of bits received on the port. The number of bits inserted into the transmitted stream. The number of bits received in error. The number of blocks in which one or more bits are in error. The number of one-second periods with one or more errored blocks or at least one defect.

Bits Sent Bits Received Bit Errors Sent Bit Errors Received Errored Blocks* Errored Seconds* (ES)

Ixia Tcl Development Guide

3-45

Theory of Operation
Ixia Hardware

Table 3-16.BERT Related Statistics Statistic Severely Errored Seconds* (SES) Error Free Seconds* (EFS) Available Seconds* (AS) Unavailable Seconds* (UAS) Block Error State Usage The number of one-second periods which contain 30% errored blocks or at least one defect. The number of one-second periods for which no bit error or defect was detected. The number of seconds for which the data transmission was available. See Available / Unavailable Seconds on page 3-46. The number of seconds for which the data transmission was unavailable. See Available / Unavailable Seconds on page 3-46. Indicates whether the most recent block received is Available or Unavailable. See Available / Unavailable Seconds on page 3-46. The number of errored blocks not occurring as part of a Severely Errored Second. 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]

Background Block Errors* Errored Second Ratio (ESR)*

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 20 25 30 35

A
Unavailability detected

C B
Unavailable period/ Unavailable seconds (UASs)

D E
Availability detected

Severely Errored Second (SES) Errored Second (non-SES) Error-free Second

Available period/ Available seconds(ASs)

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

Theory of Operation
Ixia Software

Ixia Software
Different software packages are available which utilize Ixia hardware. Individual manuals are available for each. 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 networks 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.

3-48

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 ports 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 chassisthe Tcl scripts are executed on the same computer that runs the Ixia hardware. On a Windows clientthe Tcl scripts are executed on a Windows NT/95/98 client. On a Unix clientthe 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

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 Module Tcl scripts TclHAL Usage Ixia supplied and user developed Tcl. The Tcl extensions that program the Ixia hardware use the TclHAL layer. 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. An independent Windows executable that is responsible for directly controlling the Ixia hardware.

IxServer

3-50

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 Network

TclHAL

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 Module Tcl scripts Usage 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. 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. 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.

TclHAL

IxServer

Ixia Tcl Development Guide

3-51

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 IxServer

Network Interface

Ixia Chassis
Figure 3-29. Software Modules used on a Unix Client

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 Module Tcl scripts Usage 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. 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. Receives commands from the Tcl-DP client on Unix client platforms. Commands are translated into calls to the TclHAL layer. 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. 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.

Network Interface

TclServer

TclHAL

IxServer

3-52

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

Network IF

TclHAL Tcl script

TclServer Tcl script

IxServer TclHAL Network IF

Windows Clients

Ixia Chassis

Unix Clients

Figure 3-30. Multi-Client Environment

Ixia Tcl Development Guide

3-53

Theory of Operation
Tcl Software Structure

3-54

Ixia Tcl Development Guide

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

Standard SubCommands

The standard sub-commands that come with most commands are:


TABLE 4-1. Standard

Options

Method config

Usage 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. Gets a specified options value, which was stored in the IxTclHAL object. 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.

cget set

Ixia Tcl Development Guide

4-1

Programming
API Structure and Conventions

TABLE 4-1. Standard

Options

Method write

Usage 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 sets to the hardware at the same time. 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. Default values for the members are set. A captured frame is analyzed and appropriate member variables are set to reflect the contents of the frame.

get

setDefault decode

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
cget config

Tcl Cmnd Lib IxTclHal


get set

IxHal
write

IxServer Figure 4-31. Standard Method Relationships

Ixia Tcl Development Guide

4-3

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 <hostname or IP address>

chassis config -id <chassisID> chassis set <hostname or IP address>

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 <hostname or IP address>

set chassisID [ixGetChassisID <hostname or IP address>]

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 <TxChassisID> <TxCardID> <TxPortID> <RxChassisID> <RxCardID> <RxPortID>

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
Format one2oneArray(txChassis,txCard,txPort) {{rxChassis rxCard rxPort}} one2manyArray(txChassis,txCard,txPort) {{rxChassis1 rxCard1 rxPort1} {rxChassis2 rxCard2 rxPort2} {rxChassisN rxCardN rxPortN}} many2oneArray(rxChassis,rxCard,rxPort) {{txChassis1 txCard1 txPort1} {txChassis2 txCard2 txPort2} . {txChassisN txCardN txPortN}} many2manyArray(txChassis,txCard,txPort) {{rxChassis1 rxCard1 rxPort1} {rxChassis2 rxCard2 rxPort2} . {rxChassisN rxCardN rxPortN}}

Array Type one2oneArray one2manyArray

many2oneArray

many2manyArray

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 true full

Ixia Tcl Development Guide

4-5

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 <mapArray>]. # 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 $<mapArray> ($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

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 <map>

Here the <map> is one of one2oneArray, one2manyArray, many2oneArray or many2manyArray. b: If a traffic map was not set-up in step (3):
set portlist {{1 1 1} {1 1 2} {1 1 3} {1 1 4}} ixWriteConfigToHardware portlist

The portlist variable is a list of lists, each member containing three elements: chassis, card and port. Note that ixWriteConfigToHardware does not send port configuration changes (e.g. mii settings, port speed or auto-negotiation) to the hardware. If changes have been made to these parameters, use ixWritePortsToHardware. Note, however that this may result in a loss of link, depending on the changes that have been made. 9. Start the transmission Now that the configuration is set in hardware, transmission of the streams on all the involved ports is started. A utility command startTx is provided that will start the transmission on all the ports simultaneously. StartTx command is called with the array created by the map command (one2oneArray, one2manyArray, many2oneArray, or many2manyArray) as an argument. This command uses the portGroup command to add all the Transmit ports in the array to a group with a given ID. This group ID is then used to send a message to the IxServer to start transmission at the same time. 10. Validate the received frames on receive ports Usually, only frames that were transmitted must be counted to obtain reasonable results. The DUT may be transmitting management frames periodically, which should not be counted in the validating scheme of the test. As discussed earlier, the UDFs and filters are used in streams to achieve this. The statistics counters such as the User Defined Statistics Counters are used to count the valid frames and calculations may be performed to get desired results. Frames may also be captured that may be decoded and counted. 11. Output results

4-8

Ixia Tcl Development Guide

Programming
Sequence of Steps

Finally, the results may be obtained from the statistics or frames captured in the capture buffer and stored in any desired format.

Ixia Tcl Development Guide

4-9

Programming
How to write efficient scripts

How to write efficient scripts


A script is a logical sequence of operations that are sequentially executed. However, a script is an application program that must be designed carefully just like a normal C or C++ program. Because a Tcl script does not need to be compiled as in a C/C++ code, it is actually more difficult to get the best optimized code for a Tcl script. Also, compared to a GUI application where events take place very slowly (clicking on buttons using a mouse), a script will pass through the same events very quickly. This speed of execution may cause time synchronization problems with the IxServer application on the chassis. Therefore, it is very important to implement the sequence of events in a very intelligent way so as to achieve the most optimized execution of these events. Before writing any script, it helps to first design the logic of the test using flowcharts or similar methods. More importantly, the logic should first be implemented in the IxExplorer GUI application to test the algorithm of the script. Therefore, it is of paramount importance that the user understand the concepts of streams, filters, UDFs, capture buffers, and so on before writing any script. These are described in Theory of Operation. It is important to follow the sequence of steps outlined in Sequence of Steps on page 4-4. Here are the reasons: 1. It is important to configure the Port Properties in the very beginning of the script. For example, on a 10/100 card, there is an autonegotiation parameter. If this parameter is to be turned on, then during the auto-negotiation process, the link goes down and it takes a small amount of time to come up again. If there are a number of ports involved, the setting of port properties can take a long time. Therefore, it is always recommended that the ports be set first. This is done using the port set and port write commands. Do not implement this step in the middle of the script since it will only slow down the total time of execution of the test. 2. To send and receive traffic on the ports, the transmit and receive port mappings must be defined and the port numbers stored in a structured array or list. This way, when streams and filters are to be configured, this array or list only needs to be looped through. 3. Before creating streams on the transmit ports, decide how many streams are needed to achieve the traffic profile to be used. It is possible that only one stream is needed in most cases. If not certain, use the IxExplorer GUI application to create the stream and transmit frames on it. Try to avoid creating streams for every iteration of the test. Sometimes it is easier to create all the necessary streams and simply disable the unneeded ones during the iterations. 4. To verify the filters, use the IxExplorer GUI to first mimic the situation. Use magic numbers in the payload of the frames wherever possible so that only the frames involved in the test are received. The magic numbers eliminate the inclusion of loopback, management frames or Spanning Tree BPDUs, for example, forwarded by the DUT.

4-10

Ixia Tcl Development Guide

Programming
Multi-Client Usage

5. If your script is running in a small loop and requesting data very quickly from IxServer, it is possible IxServer will not be able to keep up with the requests. If your script must request statistics or other data in a small for or while loop, consider using delays using the Tcl after command.

Multi-Client Usage
It is occasionally helpful to run IxExplorer at the same time as the Tcl Development environment. IxExplorer can provide instant visual verification. When doing so, it is important to perform a Chassis Refresh operation in IxExplorer after executing several important Tcl setup commands: ixSetCaptureMode ixSetPacketFlowMode ixSetPacketGroupMode ixSetPacketStreamMode ixSetPortCaptureMode ixSetPortPacketFlowMode ixSetPortPacketGroupMode ixSetPortPacketStreamMode ixWriteConfigToHardware ixWritePortsToHardware

Mpexpr versus Expr


Statistics and other values used in the Ixia Tcl environment are 64-bit as opposed to 32-bit values. It is important to use mpexpr, as opposed to expr, in order to calculate expressions and maintain 64-bit accuracy. The 64-bit values are indicated in the individual descriptive pages for the following commands: captureBuffer packetGroupStats portGroup stat

Ixia Tcl Development Guide

4-11

Programming
Mpexpr versus Expr

4-12

Ixia Tcl Development Guide

Chapter 5:

IxTclHal API Description

This chapter presents an organized description of the IxTclHAL API commands based on major topics. The major topics covered are: Chassis, Cards and Portsbasic overhead to set up the test and the hardware. Data Transmissionsetting up streams and flows to be applied to ports. Data Capture and Statisticssetting up conditions to capture received data and statistics. Protocol Serverspecial treatment given to IP, ARP, IGMP, BGP4, OSPF, IS-IS, RSVP and RIP.

All of the commands are covered within these sections, but only the most significant options and sub-commands are discussed. Not all of the options, nor all of the Sub-Commands can be assumed to be discussed in this chapter. In particular, if not otherwise noted the get, cget, config, set, setDefault, decode and write Sub-Commands are assumed to exist and to perform standard functions. Appendix A - IxTclHAL Commands includes complete descriptions of each of the Ixhal commands.

Ixia Tcl Development Guide

5-1

IxTclHal API Description


Chassis, Cards and Ports

Chassis, Cards and Ports


These commands included in this section are related to the setup of tests, before any data is applied. As discussed in Chassis Chain on page 3-1, Ixia equipment is organized as a chain of individual chassis connected by Sync-In/SyncOut wires (each of which must be multiples of 3 feet). The chassisChain command is used to hold information about the chain as a whole. One copy should be instantiated for the lifetime of the program. The chassis command is used to define and add chassis to the chain. Each chassis has two very important options: id, which is referenced elsewhere in referring to all levels of hardware and name, which is the IP hostname/address used to communicate with the hardware. chassisChain sub-command broadcastTopology should be called after all chassis have been added to the chain. Although each individual chassis, card and port has an individual write method, ixWriteConfigToHardware is a convenient means of writing to all chassis, in synchronization. With the advent of the IXIA 100, the means by which geographically distributed chassis chains may be synchronized has been expanded. This is controlled by the timeServer command. Cards reside within chassis and the card command is provided to access several read-only version variables for the card. Ports are the principal focus of setup programming in the Tcl API. All of the ports characteristics are visible and changeable through port and its associated commands.

session

session is an optional command used to control sharing of ports on one or more chassis. It should be used where there is any possibility of multiple users sharing chassis. session -login is used to log-in and portGroup -setCommand is used to take ownership of ports. See session on page A-252 for full details.

The important options and sub-commands of this command are:


TABLE 5-20. session

Options

Member userName

Usage The users name after login.

TABLE 5-21. session

Sub-Commands

Member login logout

Usage Logs a user in for purposes of ownership. Logs out the current user.

version

version provides access to assorted pieces of version information for the IxTclHAL.dll module. Note that on Unix systems, a connection to the chassis must have occurred before version information is available. See version on page A312 for full details and ixInitialize on page C-36 for connection information.

5-2

Ixia Tcl Development Guide

IxTclHal API Description


Chassis, Cards and Ports

chassisChain

A single instance of this command should be instantiated and not destroyed for the entirety of the test process. It is the container that holds all of the individual chassis designations and their connections. See chassisChain on page A-62 for full details. The important options and sub-commands of this command are:
TABLE 5-22. chassisChain

Options

Member startTime

Usage The delay time before port transmit starts.

TABLE 5-23. chassisChain

Sub-Commands

Member broadcastTopology

Usage Must be called after the last chassis has been added with chassis.add.

timeServer

The timeServer command handles the means by which chassis chains are coordinated. Refer to timeServer on page A-299 for details. A chassis chain may use any of four time sources: Internalinternally generated by the chassis. GPS Servergenerated by the GPS within an IXIA 100 chassis or IxClock module. SNTP Servergenerated by a network available SNTP (Simple Network Time Protocol) server. PC Clockgenerated by the PC associated with the chassis. CDMA Servergenerated by the CDMA unit within an IXIA 100 chassis or IxClock module. The important options and sub-commands of this class are:
TABLE 5-24. timeServer

Command Options

Member timeSource sntpClient antennaStatus gpsStatus gpsTime pllStatus qualityStatus state

Usage The choice of time source. For the SNTP choice, the location of the SNTP server. For the GPS unit, the antennas connection status. For the GPS unit, the locked/unlocked status of the GPS. For the GPS unit, the GPS read time, in seconds. For the GPS unit, the status of the phased locked loop that is driven by the GPS. For the GPS unit, the quality of the received GPS signal. For the GPS unit, the current state of the GPS.

Ixia Tcl Development Guide

5-3

IxTclHal API Description


Chassis, Cards and Ports

chassis

chassis is used in the definition of a chassis and addition of the chassis to the

chassis chain. See chassis on page A-57 for full details. The important options and sub-commands of this command are:
TABLE 5-25. chassis

Options

Member id name

Usage The identification number given to the chassis. This is used in most commands to associate with ports. This is the IP hostname or IP address of the chassis, which is used to actually communicate with the chassis. Use localhost if you are running your Tcl application on the chassis itself. The sequence of a chassis in a chain.

sequence

TABLE 5-26. chassis

Sub-Commands

Member add writeAll

Usage Adds a new chassis to the chain. May be used to write all changes to the hardware for all ports on the chassis.

card

The card command retrieves several card characteristics. Refer to card on page A-53 for full details. The important options are:
TABLE 5-27. card

Options
Usage The FPGA version on the card. The cards hardware version. The number of ports on the card. The type of the card.

Member fpgaVersion hwVersion portCount type

port

The port command controls the basic aspects of port setup. Some port and protocol specific attributes are included in this command, while other aspects are covered by additional commands in this section. Specifically, the following port types have the indicated additional commands that may be used to control additional port features: 10/100 and 10GE XAUI/XGMII Mii mii Universal Serial Bus USB Packet over Sonet (POS) sonet, ppp and pppStatus, hdlc,
frameRelay

POS/BERT (Bit Error Rate Testing) bert and bertErrorGeneration

Note that the elements options DestMacAddress, MacAddress and numAddresses are stored as convenience for use by other sub-commands. Do

5-4

Ixia Tcl Development Guide

IxTclHal API Description


Chassis, Cards and Ports

not destroy the port instance until you are completely done with the port. See port on page A-185 for full details. The important options and sub-commands of this command are:
TABLE 5-28. port

Options
Usage The name associated with the port. The name of the owner of the port. (Read-only) The type of the Ixia port. Both speeds and interface types are described. Controls whether the port is in loopback mode or not. Enables flow control on the port. (Read-only) The current state of the link with the DUT. Controls the basic transmission mode of the port: Packet stream Packet flow TCP Round Trip Advanced Scheduler Bit Error Rate Testing (BERT)

Category Basic

Member name owner type

loopback flowControl linkState Transmit transmitMode

Receive

receiveMode

Controls the basic receive mode of the port: Capture PacketGroup TCP Round Trips Data Integrity First Time Stamp Sequence Checking Bit Error Rate Testing (BERT)

Addressing

DestMacAddress

The destination MAC address. Note that port holds this and the next two values as a convenience only for use in other commands. Do not destroy the port instance until you are done using the port. The first source MAC address. The number of source addresses assigned to the port. Controls whether the port is used in stream mode or flow mode. If set to flow mode, then the packetFlowFileName member should be set.

MacAddress numAddresses Flows usePacketFlowImageFile

Ixia Tcl Development Guide

5-5

IxTclHal API Description


Chassis, Cards and Ports

TABLE 5-28. port

Options
Usage The name of the file containing the packet flow information. The address the port will listen to for a directed pause message. The address the port will listen to for a multicast pause message. Sets auto-negotiate mode for the port. Controls half / full duplex mode for the port. These four elements control what speeds and duplex are advertised during autonegotiation. 10 or 100 Mbps. Basic mode for the port: Normal Loopback Simulate cable disconnect

Category

Member packetFlowFileName

Pause Control directedAddress multicastPauseAddress For: 10/100 Ports autonegotiate duplex advertise100FullDuplex advertise100HalfDuplex advertise10FullDuplex advertise10HalflDuplex speed For: Gigabit Ports rxTxMode

advertise1000FullDuplex

Controls whether gigabit full duplex will be advertised during auto negotiation. Sets the type elements advertised during negotiation: None Send only Send and Receive Send and/or Receive

advertiseAbilities

ignoreLink negotiateMasterSlave masterSlave

Causes the port to ignore the link. Indicates whether master/slave mode should be negotiated. If master/slave mode is being negotiated, then this is the indicates the ports desire (master or slave). Otherwise this is the value associated with the link. Enables autonegotiation timeout. Sets the port to Ethernet or USB mode.

timeoutEnable For: Ethernet/USB portMode

5-6

Ixia Tcl Development Guide

IxTclHal API Description


Chassis, Cards and Ports

TABLE 5-28. port

Options
Usage Indicates whether a 16 or 32 bit CRC is to be used on the receive side of the port. Indicates whether a 16 or 32 bit CRC is to be used on the transmit side of the port.

Category For: POS Ports

Member rxCrc

txCrc

TABLE 5-29. port

Sub-Commands
Usage Gets the interface type of the port: 10/100 Gigabit Packet Over Sonet

Member getInterface

isValidFeature isActiveFeature reset setDefault setParam

Determines if a port feature is available for the port Determines whether a port is currently configured correctly to use a feature Removes all of the streams on a port. Sets the port to default values. Operates as in config, but sets a single option.

mii The mii command is available for 10/100 MII and 10GE XAUI/XGMII ports only. Four commands are included in this set: miiReads and writes values to old-style MII PHYs defined in IEEE 802.3. One internal and two external MII PHYs may be managed, mixed with MII AE PHYs. miiaeDefines, reads and writes to new-style MII AE PHYs defined in IEEE 802.3ae. One internal and two external MII AE PHYs may be managed, mixed with MII PHYs. Each MII AE PHY may consist of 32 MMDs (MDIO Manageable Devices), each with up to 64k devices. The MMDs are defined and managed with the mmd command and the registers within those devices are managed by the mmdRegister command. mmdDefines, reads and writes the devices associated with MII AE PHYs. mmdRegisterSets the parameters associated with MMD registers.

Ixia Tcl Development Guide

5-7

IxTclHal API Description


Chassis, Cards and Ports

mii See mii on page A-142 for full details. The important options and sub-commands of this command are:
TABLE 5-30. mii

Options
Usage If set, causes the port to auto-negotiate when the MII registers are written The MII register number to read/write. Physical address of the MII register location. -1 for the default. The read/write properties of the register: Disabled Read-Only Read-Write

Member enableManualAuto Negotiate miiRegister phyAddress readWrite

registerValue
TABLE 5-31. mii

The value of the selected register.

Sub-Commands
Usage This method should be called first, before any cget operations. The register number indicated in miiRegister is read into readWrite and registerValue. After get is used, this method allows a different register (as indexed by miiRegister) to be made available in readWrite and registerValue. Sets the values from readWrite and registerValue to be written to the MII register indexed by miiRegister. Sends all modified MII registers to the hardware.

Member get

selectRegister

set write

miiae See miiae on page A-146 for full details. The important options and sub-commands of this command are:
TABLE 5-32. miiae

Options
Usage Physical address of the MII register location..

Member phyAddress
TABLE 5-33. miiae

Sub-Commands
Usage Removes all associated devices from the MII. Adds a device defined in the mmd command to the MII.

Member clearAllDevices addDevice

5-8

Ixia Tcl Development Guide

IxTclHal API Description


Chassis, Cards and Ports

TABLE 5-33. miiae

Sub-Commands
Usage Removes a single MMD from the MII. Retrieves the information about a single MMD in the MII. The data about the device is available through the use of the mmd and mmdRegister commands. Sets the devices associated with one of the three supported PHYs: Internal, External1 or External2. Gets the devices associated with one of the three supported PHYs: Internal, External1 or External2.

Member delDevice getDevice

set get

mmd See mmd on page A-149 for full details. The important options and sub-commands of this command are:
TABLE 5-34. mmd

Options
Usage Address of the MMD device within its associated MII. Arbitrary name of the MMD device.

Member address name


TABLE 5-35. mmd

Sub-Commands
Usage Removes all associated registers from the MMD device. Adds a register defined in the mmdRegister command to the MMD. Removes a single register from the MMD. Retrieves the information about a single register in the MMD. This must have been preceded by an miiae getRegister command. The data about the device is available through the use of the mmdRegister command.

Member clearAllRegisters addRegister delRegister getRegister

mmdRegister See mmdRegister on page A-150 for full details. The important options of this command are:
TABLE 5-36. mmdRegister

Options

Member address name

Usage Address of the register location. Arbitrary name of the register.

Ixia Tcl Development Guide

5-9

IxTclHal API Description


Chassis, Cards and Ports

TABLE 5-36. mmdRegister

Options

Member readWrite

Usage The read/write properties of the register: Disabled Read-Only Read-Write

registerValue

The value of the selected register.

USB See usb on page A-310 for full details. The important options and sub-commands of this command are:
TABLE 5-37. usb

Options
Usage Read-only characteristics of the device connected to the USB port, automatically read back from the port itself.

Member deviceClass manufacturer product productID releaseNumber serialNumber vendorID cpeMacAddress ethernetMaxSegmentSize maxUSBPacketSize
TABLE 5-38. usb

The MAC address of the device connected to the USB port. Describes packet constraints in working with the port.

Sub-Commands
Usage Sends a reset to the DUT, and causes the device options to be updated.

Member reset

Packet over Sonet The next six commands allow for the setting of all PoS specific values. If the default values associated with a task are correct, then the corresponding command need not be used. sonet See sonet on page A-254 for full details.

5-10

Ixia Tcl Development Guide

IxTclHal API Description


Chassis, Cards and Ports

The important options of this command are:


TABLE 5-39. sonet

Options
Usage Sets the type of PoS header: HDLC pppfurther settings can be made through the use of hdlc, ppp and pppStatus commands. Cisco HDLCfurther settings can be made through the use of the hdlc, ppp and pppStatus commands.

Category Header

Member header

Interface

interfaceType

Sets the type and speed of the sonet interface: OC3, OC12 or OC48. STM1c, STM4c or STM16c.

Transmit

dataScrambling lineScrambling

Controls data scrambling in the sonet framer. Controls line scrambling in the sonet framer. Sets the receive CRC mode: 16 or 32 bit mode. Sets the transmit CRC mode: 16 or 32 bit mode. Sets the Automatic Protection Switching mode to linear or ring topology. Enables or disables customer K1K2 bytes. Allows the K1 byte code value to be sent in the Sonet frame. Allows the K2 byte code value to be sent in the Sonet frame. The received path signal label. The path signal label to be transmitted. Enables line error handling. Enables path error handling.

CRC

rxCrc txCrc

APS

apsType customK1K2 k1NewState k2NewState

Path Signal

C2byteExpected C2byteTransmit

Error Handling

lineErrorHandling pathErrorHandling

sonetError This command allows the parameters associated with a variety of simulated SONET errors to be programmed. The errors that are programmed may be inserted once, periodically or continuously. See sonetError on page A-258 for full details.

Ixia Tcl Development Guide

5-11

IxTclHal API Description


Chassis, Cards and Ports

The important options and sub-commands of this command are:


TABLE 5-40. sonetError

Options

Member insertionMode errorPeriod errorUnits consecutiveErrors

Usage Controls whether an individual error is inserted periodically or continuously. The frequency with which periodic errors are inserted, which may be expressed in seconds or frames. The number of consecutive errors to be inserted at a time.

TABLE 5-41. sonetError

Sub-Commands

Member setError

Usage Parameters associated with a particular error type are set in IxHal. A set command is needed to get these values into the hardware. Reads back the values associated with a particular error type into the options described above. Starts and stops periodic/continuous error insertion as programmed. Inserts a particular error for a single instance. setError and set must be used before this command.

getError start stop insertError

ppp and pppStatus


ppp allows for programming of the Point to Point protocol header, while pppStatus can be used to retrieve the current status and values of the PPP nego-

tiation. The options of the two objects are integrated together in the next table. Items from pppStatus are indicated in underline mode. See ppp on page A-205 and pppStatus on page A-210 for full details. The important options of this command are:
TABLE 5-42. ppp/pppStatus

Options
Usage Enables ppp negotiation. Enables the active negotiation process. Enables asynchronous control character negotiation. Enables IP address negotiation Enables line quality monitoring negotiation. Enable OSI over PPP negotiation Enable MPLS over PPP negotiation

Category Basic Negotiation

Member enable activeNegotiation enableAccmNegotiation enableIP enableLqm enableOsi enableMpls

5-12

Ixia Tcl Development Guide

IxTclHal API Description


Chassis, Cards and Ports

TABLE 5-42. ppp/pppStatus

Options
Usage The current state of IPCP negotiation The local ports IP address. The peers IP address. The number of configuration requests to try. The number of termination requests to try. Enables the use of a magic number in the negotiation in order to discover looped back connections. The magic number negotiated between the peers. Enable negotiation and use of the magic number in the receive direction/transmit direction. Maximum frame size in the receive direction. Maximum frame size in the transmit direction. The desired LQM interval to be used during LQM negotiation The current state of the LQM negotiation The negotiation LQM receive/ transmit port interval The number of LQM packets received/transmitted The desired byte alignment for reception/transmission used during negotiation The current state of OSI negotiation The negotiated byte alignment for reception/transmission The current state of MPLS negotiation

Category IP Addresses

Member ipState localIpAddress peerIpAddress

Retries

configurationRetries terminationRetries

Magic Number

useMagicNumber

magicNumberNegotiated useMagicNumberRx/Tx

Maximum Receive Unit

rxMaxReceiveUnit txMaxReceiveUnit

LQM

lqmReportInterval lqmQualityState lqmReportIntervalRx/Tx lqmReportPacketCounter Rx/Tx

OSI

rxAlignment txAlignment osiState rxAlignment txAlignment

MPLS

mplsState

Ixia Tcl Development Guide

5-13

IxTclHal API Description


Chassis, Cards and Ports

hdlc
hdlc sets the three values associated with the HDLC header. See hdlc on page

A-93 for full details. The important options and sub-commands of this command are:
TABLE 5-43. hdlc

Options
Usage The one-byte address field. The one-byte control field. The two-byte protocol field.

Member address control protocol


TABLE 5-44. hdlc

Sub-Commands
Usage Sets the header variables to the Cisco defaults in IxHal. Sets the header variables to the ppp defaults in IxHal.

Member setCisco setppp

frameRelay
frameRelay controls Frame Relay specific parameters. sonet config header must be configred for the correct Frame Relay headers first. See

frameRelay on page A-90 for full details. The values set here are within the Frame Relay header. The important options of this command are:
TABLE 5-45. frameRelay

Options

Member addressSize becn commandResponse control discardEligibleBit dlci dlciCore etherType extensionAddress0/1/2/3 fecn nlpid

Usage The address length in the header. Sets the backward congestion notification bit. Sets the command or response bit. Sets the control information bit. Sets the discard eligible bit. The frame relay address field. Sets the DLCI core indicator bit. The ethernet type of protocol to use. Extension address bit 0/1/2/3. Sets the forward congestion notification bit. The network layer protocol identifier for the upper-layer protocol.

5-14

Ixia Tcl Development Guide

IxTclHal API Description


Chassis, Cards and Ports

bert and bertErrorGeneration The bert command configures a BERT capable port. The pattern which is transmitted and/or received is programmed. bertErrorGeneration is used to insert errors into a transmitted stream. Received errors are available through the use of the stat command. The important options of the bert command are:
TABLE 5-46. bert

Options
Usage Couples the expected receive pattern with the transmitted, or leaves it independent Determines the transmitted pattern from one of a set or pre-programmed patterns or a user supplied pattern. The pattern may be inverted or not.

Member txRxPatternMode txPatternIndex txUserPattern enableInvertTxPattern

rxPatternIndex If the receive pattern is independently programmed rxUserPattern form the transmitted pattern, determines the expected enableInvertRxPattern receive pattern from one of a set or pre-programmed patterns or a user supplied pattern. The pattern may be inverted or not.

The important options and sub-commands of the bertErrorGeneration command are:


TABLE 5-47. bertErrorGeneration

Options

Member errorBitRate period burstCount burstWidth burstPeriod bitMask

Usage Determines the frequency, in bits, with which errors are inserted. The choice may be from a pre-programmed set or set to an arbitrary value. The number of errors inserted at a time. The number of errors to insert at a time. The number of good bits between error insertions. A 32-bit mask indicating which bits within a 32-bit word are to be errored.

TABLE 5-48. bertErrorGeneration

Sub-Commands

Member startContinuousError stopContinuousError insertSingleError

Usage Starts the continuous insertion of programmed errors. Stops the continuous insertion of errors. Inserts a single instance of the programmed error.

portGroups

Port groups provide a means of creating an group of ports on which an action may be performed or command may be sent. A single instance of portGroup may

Ixia Tcl Development Guide

5-15

IxTclHal API Description


Chassis, Cards and Ports

be used to maintain a number of groups. See portGroup on page A-201 for full details. The important options and sub-commands of this command are:
TABLE 5-49. portGroup

Options

Member lastTimestamp

Usage The timestamp, a 64-bit number of nanoseconds, of when the last command was sent to the hardware as a result of a setCommand method execution.

TABLE 5-50. portGroup

Sub-Commands

Member create destroy add del canUse

Usage Creates a new port group, identified by a unique number. Destroys a port group. Adds a port to a port group. Deletes a port from a port group. Tests to see whether the current user can use the ports in a group. That is, he/she owns the ports or they are not being used by someone else. Performs an action or sends a command to all of the ports in a group: Transmit commands: Start / stop Staggered start Pause Step Clear time stamp Start / stop capture Reset statistics Start / stop latency Clear latency Start/stop each of the protocols Take / clear ownership Force take / clear ownership

setCommand

Receive:

Protocols: Others:

write

Sends port properties such as speed, duplex mode and autonegotiation to the hardware. All other values may be sent with writeConfig. Sends streams, filter and capture parameters to the hardware.

writeConfig

5-16

Ixia Tcl Development Guide

IxTclHal API Description


Data Transmission

Data Transmission
Streams and Flows
Streams and flows are the means by which data is applied to the DUT. Streams are generated on the fly by the Ixia hardware. Flows are data arrays located on disk and associated with a port. Multiple streams are defined and associated with a port through the use of the stream command. stream provides for the transitions between streams, gaps, addressing and basic frame control. Additional commands are required for further packet header and data contents:
udfdata in User Defined Fields, which may be algorithmically or manually

generated.
tcpRoundTripFlowsgenerate packets for round trip flow analysis. packetGroupgenerate data for packet group latency measurements. dataIntegritygenerate additional data integrity values. Sequence Checkinggenerate data for additional sequence checking. forcedCollisionsgenerate deliberate collisions. protocolestablish basic protocol parameters. islset up header parameters for Cisco ISL. vlanset up header parameters for VLANs. mpls and mplsLabelgenerate MPLS headers and control messages. ipxset up IPX header parameters. arpgenerate ARP messages. ipset up IP header parameters. tcpset up TCP/IP header parameters. udpset up UDP/IP header parameters. igmpgenerate IGMP messages. icmpgenerate ICMP messages. rip and ripRoutegenerate RIP messages. dhcpgenerate DHCP messages.

stream
stream controls the basic structure of streams: stream to stream transition, interstream/frame/burst gaps, and addressing. It also controls the common frame contents: size, base data pattern, checksum and identity record. The other commands in this section may be used for specific protocols and header data. Multiple streams may be created and connected to each other through the use of their IDs. See stream on page A-282 for full details.

Ixia Tcl Development Guide

5-17

IxTclHal API Description


Data Transmission

The important options and sub-commands of this command are:


TABLE 5-51. stream

Options
Usage This stream is enabled or not. Disabled streams are skipped during transmission. The type of stream and relationship to another stream: Continuous packet. Continuous burst. Stop after stream. Advance to next stream. Return to stream ID (labeled as gotoFirst for historical reasons) Loop to stream ID (labeled as firstLoopCount for historical reasons)

Category Stream Control

Member enable

dma

returnToId

The stream ID to return to for the return to and loop to stream ID dma types. This is the repeat count for the dma choice loop to stream ID. The number of bursts, ignored for dma choices continuous packet and continuous burst. The number of maximum frames in a stream, ignored for dma choice continuous packet. The choice of units for ifg, isg and ibg. The choices are: Nano-seconds Micro-seconds Milli-seconds Seconds Clock tickswhich vary with the port type.

loopCount numBursts

numFrames

Inter-Frame Gap

gapUnit

ifgType

Indicates whether the inter-frame gap is a fixed value or random between a minimum (ifgMIN) and maximum value (ifgMAX). The inter-frame gap expressed in gapUnit units. The minimum gap generated for ifgType of random. The maximum gap generated for ifgType of random.

ifg ifgMIN ifgMAX

5-18

Ixia Tcl Development Guide

IxTclHal API Description


Data Transmission

TABLE 5-51. stream

Options
Usage Indicates whether to use the ifg value or to calculate the ifg based on a percentage of the maximum transmission rate and infer the ifg value. Note: if the percentage rate is to be used instead of gap, then the stream config -rateMode percentMaxRate should immediately follow the initial stream setDefault command. If rateMode indicates, the ifg is calculated based on a desired percentage of maximum transmission rate. (Read-only) The actual rate, in frames per second that the stream will transmit at. Enables the use of inter-burst gaps. The inter-burst gap expressed in gapUnit units. Enables the use of inter-stream gaps. The inter-stream gap expressed in gapUnit units. First destination MAC address assigned to the stream. Indicates which bits of the destination MAC address are to be manipulated and their initial values. The number of destination MAC addresses that will be used. Indicates how the destination MAC address is to be incremented or decremented from packet to packet. First source MAC address assigned to the stream. Indicates which bits of the source MAC address are to be manipulated and their initial values. The number of source MAC addresses that will be used. Indicates how the source MAC address is to be incremented or decremented from packet to packet.

Category

Member rateMode

percentPacket Rate

framerate

Inter-Burst Gap

enableIbg ibg

Inter-Stream Gap

enableIsg isg

Addressing

da daMaskValue/ daMaskSelect numDA daRepeatCounter

sa saMaskValue/ saMaskSelect numSA saRepeatCounter

Ixia Tcl Development Guide

5-19

IxTclHal API Description


Data Transmission

TABLE 5-51. stream

Options
Usage The type of frame size calculation: Fixed size as indicated in framesize. Random size between frameSizeMin and frameSizeMax. Incrementing packet to packet. Automatically calculated, depending on protocol dependent contents.

Category Frame Control

Member frameSizeType

framesize frameSizeMin frameSizeMax frameType preambleSize patternType

The size of all frames if frameSizeType is fixed. The minimum frame size if frameSizeType is random. The maximum frame size if frameSizeType is random. The type field of the Ethernet frame. Number of bytes in the frame preamble. Dictates the type of data pattern manipulation: increment/decrement bytes or words random data fixed repeating pattern chosen from dataPattern fixed non-repeating pattern chosen from dataPattern

dataPattern

One of a number of fixed patterns of data, including all 1s and all 0s, plus a choice for a user specified pattern. If dataPattern indicates a user specified pattern, this string specifies the contents. The type of FCS error to be inserted into the frame (or none). Whether to insert a Frame Identity Record into the last 6 bytes of the packet.

pattern

fcs fir

5-20

Ixia Tcl Development Guide

IxTclHal API Description


Data Transmission

TABLE 5-51. stream

Options
Usage Allow asynchronous interrupts required by the protocol server. (Read-only) Shows the packets that are about to be transmitted. If the ports port.transmitMode is set to portTxPacketFlows, then this displays all of the packets to be transmitted. This data may be saved and used to specify a port.packetFlowFileName.

Category Misc

Member asyncIntEnable packetView

TABLE 5-52. stream

Sub-Commands

Member setGaps setIFG setLoopCount setNumFrames

Usage Sets the ifg, isg and ibg to a single value and then commits them to hardware. Sets the ifg to a specified value and then commits it to hardware. Sets the loopCount member to a specified value and commits it to hardware. Sets the numFrames member to a specified value and commits it to hardware.

Frame Data

Misc udf Up to four User Defined Fields may be defined, which allow arbitrary data to be algorithmically constructed within the data portion of the frames. The get stream sub-command must be called before get udf sub-command and set stream sub-command must be called after set udf sub-command. See udf on page A-303 for full details. The important options of this command are:
TABLE 5-53. udf

Options
Usage Enable or disable this UDF definition. The offset within the packet to place the UDF data. The size and shape of the UDF counter. One to four 32 to 8 bit counters. If set, all counters have random data. If set, all counters operate continuously.

Member enable offset countertype random continuousCount

Ixia Tcl Development Guide

5-21

IxTclHal API Description


Data Transmission

TABLE 5-53. udf

Options
Usage If continuousCount is not set, this is the repeat count for all counters. A four-bit mask indicating whether each counter counts up or down. The initial value of the counter. Together these indicate which initial value bits to use and increment/decrement. For PoS ports, enables a counter to continue with a count from stream to stream.

Member repeat updown initval maskselect/ maskval enableCascade

tcpRoundTripFlows The tcpRoundTripFlows command sets up values to be used in measuring round-trip times. See tcpRoundTripFlow on page A-294 for full details. The important options of this command are:
TABLE 5-54. tcpRoundTripFlows

options

Category Data

Member patternType

Usage Dictates the type of data pattern manipulation: increment/decrement bytes or words random data fixed repeating pattern chosen from dataPattern fixed non-repeating pattern chosed from dataPattern

dataPattern

One of a number of fixed patterns of data, including all 1s and all 0s, plus a choice for a user specified pattern. If dataPattern indicates a user specified pattern, this string specifies the contents. The number of bytes in each package. The source MAC address used for outbound packets. The destination MAC address used for outbound packets. This may be overridden through the use of useArpTable. If set, the ARP table is used instead to set the MAC address based on the destination IP address. gatewayIpAddr is used for the ARP query. If useArpTable is set, this is the address of the gateway that will respond to ARP requests.

pattern framesize Addresses macSA macDA

useArpTable

gatewayIpAddr

5-22

Ixia Tcl Development Guide

IxTclHal API Description


Data Transmission

TABLE 5-54. tcpRoundTripFlows

options

Category

Member forceIpSA IpSA

Usage If set, IpSA is used to set the outbound IP address. Outbound IP source address.

packetGroup The packetGroup command sets up values to be used in measuring latency, classed by tagged groups of packets. SeePacket Group Operation on page 311 for a description of this feature. See packetGroup on page A-178 for full details. In order to calculate latency values the fir object in the stream command should be set to true and the value of the ports receiveMode option should be set to portPacketGroup. The important members and methods of this class are:
TABLE 5-55. packetGroup

Options
Usage Where to place the signature in each transmitted packet. The signature to be inserted at the signature offset. Whether to insert the signature or not. Where to place the group ID in each transmitted packet. The value to use as the packet group ID. The expected size of the received preamble. The type of latency measurement: cutThrough first data bit in to first data bit out storeAndForward last data bit in to first data bit out storeAndForwardPreamble last data bit in to first preamble out

Category Signature

Member signatureOffset signature insertSignature

Packet ID

groupIdOffset groupId

Receive mode

preambleSize latencyControl

TABLE 5-56. packetGroup

Sub-Commands

Member setTx getTx setRx getRx

Usage Sets the packet group transmit characteristics for the port. Gets the packet group transmit characteristics for the port. Sets the packet group receive characteristics for the port. Gets the packet group receive characteristics for the port.

Ixia Tcl Development Guide

5-23

IxTclHal API Description


Data Transmission

dataIntegrity The dataIntegrity class sets up values to be used to check data validity. SeeData Integrity Checking Operation on page 3-13 for a description of this feature. In order for data integrity to operate, port -receiveMode portRxDataIntegrity must be performed (and committed to the hardware). See dataIntegrity on page A-65 for full details. The important options and sub-commands of this command are:
TABLE 5-57. dataIntegrity

Options
Usage Where to place the signature in each transmitted packet. The signature to be inserted at the signature offset. Whether to insert the signature or not. Enables the placement of a 48-bit timestamp just before the FCS value with a 20ns accuracy.

Category Signature

Member signatureOffset signature insertSignature

Receive mode

enableTimeStamp

TABLE 5-58. dataIntegrity

Sub-Commands

Member setTx getTx setRx getRx

Usage Sets the data integrity transmit characteristics for the port. Gets the data integrity transmit characteristics for the port. Sets the data integrity receive characteristics for the port. Gets the data integrity receive characteristics for the port.

Sequence Checking There is no specific command that controls the operation of sequence checking. Instead, the following steps should be used to enable sequence checking: 1. Set the value of the ports receiveMode option to
portRxSequenceChecking.

2. Set the location of the signature in the packet via the signatureOffset and signature members of the packetGroup command. 3. Set the location of the sequence check value via the groupIdOffset member of the packetGroup class. 4. Set the values to the hardware via the setTx sub-command of the TclPacketGroup command. 5. The statistics values signatureErrors and signatureValues relate to signature checking. Refer to stat on page A-262.

5-24

Ixia Tcl Development Guide

IxTclHal API Description


Data Transmission

forcedCollisions Collisions may be forced on the data transmission from any port. Refer to Forced Collision Operation on page 3-10 for the full discussion of this feature and to forcedCollisions on page A-87 for command details. The important members and methods of this class are:
TABLE 5-59. forcedCollisions

Members

Member enable packetOffset collisionDuration consecutiveCollisions consecutiveNonColliding Packets continuous repeatCount

Usage Enables forced collisions. The offset from the beginning of packet to the start of the collision. The duration of each collision The number of consecutive collisions to generate at a time. After each time that collisions have occurred, this is the number of packets that will not be modified. Indicates that collisions are to occur continuously. If continuous operation is not selected, the number of times to repeat the cycle of collisions and noncollisions.

Protocols The following commands relate to protocol selection, header options and, in some cases, message formatting. protocol Basic protocol parameters are set with the protocol command. See protocol on page A-213 for full details. The important options of this command are:
TABLE 5-60. protocol

Options
Usage The protocol above IP: UDP, ARP, RIP or DHCP. Protocol selected: MAC, IPv4, IPv6 and IPX.

Category Protocol

Member appName name

Data Link Layer

enable802dot1qTag Enables 802.q Vlan tagged frames. enableISLtag enableMPLS ethernetType Enables Cisco ISL tagged frames. Enables MPLS tagged frames. Type of ethernet frame: EthernetII, IEEE802.3, IEEE802.3 Snap or IEEE802.2

Ixia Tcl Development Guide

5-25

IxTclHal API Description


Data Transmission

Data Link Layer isl The isl command sets up the header for Cisco ISL messages. The enableISLtag option of the protocol command must be set. The data portion of the message may be created using stream. See isl on page A-139 for full details. The important options of this command are:
TABLE 5-61. isl

Options
Usage The multicast address indicating to the receiver that this is an ISL formatted packet. The type of frame being encapsulated: Ethernet Token Ring FDDI ATM

Member islDA frameType

userPriority islSA hsa vlanID bpdu index encapDA encapSA

Two bits of packet priority. (Read-only) The source MAC address. The upper three bytes are reflected in the hsa field. The high order three bytes of the source address, corresponding to the manufacturers ID. The virtual LAN identifier. Set for all Bridge Protocol Data Units that are encapsulated by the ISL packet. For diagnostic purposes, the port index of the packet as it exits the switch. The encapsulated frames destination MAC address. The encapsulated frames source MAC address.

vlan The vlan command sets up the header for VLAN specific messages. The enable802dot1qtag option of the protocol command must be set. The data portion of the message may be created using stream. See vlan on page A-314 for full details. The important options of this command are:
TABLE 5-62. vlan

Options

Member userPriority cfi

Usage User priority level. Canonical format indicator bit.

5-26

Ixia Tcl Development Guide

IxTclHal API Description


Data Transmission

TABLE 5-62. vlan

Options

Member vlanID mode repeat maskval

Usage The VLAN identifier. Indicates whether the VLAN tag will be incremented/decremented or random between packets. For each new value of the VLAN ID, this is the number of times it is repeated before the next change. This masks the values of the VLAN ID that may be changed.

mpls The enableMPLS member of the associated protocol command must be set to successfully use this command. The mpls command sets up the base information for MPLS specific messages. The data portion of the message may be created using mplsLabel. See mpls on page A-151 for full details. The important options of this command are:
TABLE 5-63. mpls

Options
Usage The MPLS type: unicast or multicast. Automatically set bottom of stack bit.

Member type forceBottomOfStack

mplsLabel The enableMPLS member of the associated protocol object must be set to successfully use this command. The mplsLabel command is used to generate MPLS labels. See mplsLabel on page A-154 for full details. The important options of this command are:
TABLE 5-64. mpls

Options
Usage The value of the label: IPV4 Explicit Null Router Alert IPV6 Explicit Null Implicit Null Reserved

Member label

experimentalUse bottomOfStack

Sets the experimental use field. Sets the bottom of stack bit.

Ixia Tcl Development Guide

5-27

IxTclHal API Description


Data Transmission

IPX
ipx

The ipx command provides for the setting of IPX header elements. See ipx on page A-122 for full details. The important options of this command are:
TABLE 5-65. ipx

options
Usage The network number of the source node. Indicates whether the network number will increment, decrement or receive a random setting. The number of times that the network number will change. Together these set the mask of network number bits that will change. As in sourceNetwork... for the sourceNode.

Category Source

Member sourceNetwork sourceNetworkCounterMode

sourceNetworkRepeatCounter

sourceNetworkMaskValue sourceNetworkMaskSelect sourceNode sourceNodeCounterMode sourceNodeRepeatCounter sourceNodeMaskValue sourceNodeMaskSelect sourceSocket sourceSocketCounterMode sourceSocketRepeatCounter sourceSocketMaskValue sourceSocketMaskSelect Destination destNetwork destNetworkCounterMode destNetworkRepeatCounter destNetworkMaskValue destNetworkMaskSelect destNode destNodeCounterMode destNodeRepeatCounter destNodeMaskValue destNodeMaskSelect destSocket destSocketCounterMode destSocketRepeatCounter destSocketMaskValue destSocketMaskSelect

As in sourceNetwork... for the sourceSocket.

As in sourceNetwork... for the destNetwork.

As in sourceNetwork... for the destNetwork.

As in sourceNetwork... for the destNetwork.

5-28

Ixia Tcl Development Guide

IxTclHal API Description


Data Transmission

TABLE 5-65. ipx

options
Usage The total length of the IPX packet, including header. May be set if lengthOverride is set. Allows the length value to be changed. The type of IPX packet. The number of routers that the packet has passed through.

Category Misc

Member length

lengthOverride packetType transportControl

ARP
arp

The name of the associated protocol object must be set to ip and the appName must be set to arp to successfully use this command.The arp command allows ARP packets to be constructed. See arp on page A-2 for full details. The important options of this command are:
TABLE 5-66. arp

options
Usage The type of ARP operation: ARP Request ARP Reply Reverse ARP Request Reverse ARP Reply

Category Basic

Member operation

Physical

hardwareAddrLength hardwareType protocolAddrLength protocolType

(Read-only) The length of the hardware address. (Read-only) The hardware type of the physical layer. (Read-only) The length of the protocol addresses. (Read-only) The type of network protocol address. The MAC address of the sender. The protocol address of the sender. The MAC address of the receiver. The protocol address of the receiver.

Source

sourceHardwareAddr sourceProtocolAddr

Destination

destHardwareAddr destProtocolAddr

Ixia Tcl Development Guide

5-29

IxTclHal API Description


Data Transmission

IP
ip

The ip command allows IPv4 header values to be constructed. The name of the associated protocol object must be set to ip to successfully use this command. See ip on page A-112 for full details. The important options of this command are:
TABLE 5-67. ip

Options
Usage The parts of the Type of Service (TOS) byte.

Category Header

Member precedence delay throughput reliability cost reserved totalLength

The total length of the IP packet, including header. This may be overridden from the automatically calculated setting if lengthOverride is set. Allows the totalLength of the packet to be overridden from the calculated setting. An identifier used to re-assemble fragments. Indicates whether this is a fragmented datagram. For fragmented packets, the offset in the re-assembled datagram where this packets data belongs. Indicates that this is the last fragment of the datagram. Time to live for packet, in seconds. The next level protocol contained in the data portion of the packet. Indicates whether a valid or invalid checksum should be included in the header. (Read-only) The value of the header checksum. Only valid after stream.set is performed. The source IP address.

lengthOverride

identifier fragment fragmentOffset

lastFragment ttl ipProtocol useValidChecksum

checksum

Source

sourceIpAddr

5-30

Ixia Tcl Development Guide

IxTclHal API Description


Data Transmission

TABLE 5-67. ip

Options
Usage Indicates how the IP address will change from packet to packet: remain the same, increment/ decrement host or network or random values.

Category

Member sourceIpAddrMode

sourceIpAddrRepeatCount The number of different source addresses generated. sourceIpMask sourceCommand Destination destIpAddr destIpAddrMode The source IP subnet mask. The command type for the source address: A, B, C, D or no command. The destination IP address. Indicates how the IP address will change from packet to packet: remain the same, increment/ decrement host or network or random values. The number of different destination addresses generated. The destination IP subnet mask. The command type for the destination address: A, B, C, D or no command. Variable length options field. The address of the device under test. The MAC address of the device under test. Received ARP frames will modify this value.

destIpAddrRepeatCount destIpMask destCommand

Misc

options destDutIpAddr destMacAddr

tcp

The name of the associated protocol object must be set to ip and the ipProtocol member of the associated ip object must be set to tcp to successfully use this command. The tcp command allows TCP header values to be constructed. See tcp on page A-291 for full details. The important options of this command are:
TABLE 5-68. tcp

options
Usage Offset from the beginning of the header to the packet data. Source port number.

Category Header

Member offset sourcePort

Ixia Tcl Development Guide

5-31

IxTclHal API Description


Data Transmission

TABLE 5-68. tcp

options
Usage Destination port number. Packet sequence number. Next byte that the receiver expects. The number of bytes the recipient may send back, starting with the ack byte. Byte offset to urgent data with the packet, if any. Variable length set of options. Indicates whether the urgentPointer field is valid. Indicates whether the acknowledementNumber is valid. Request that the receiver push the packet to the receiving application without buffering. Resets the connection. Indicates either a connection request or acceptance. Indicates that this is the last packet to be sent for the connection.

Category

Member destPort sequenceNumber acknowledgement Number window urgentPointer options

Flags

urgentPointerValid acknowledgeValid pushFunctionValid resetConnection synchronize finished

udp

The name of the associated protocol object must be set to ip and the appName member must be set to udp to successfully use this command.The udp command is used to format UDP headers. See udp on page A-307 for full details. The important options of this command are:
TABLE 5-69. udp

Options
Usage Port of the sending process. Port of the destination process. Length of the datagram including the header. If lengthOverride is set, this value is used instead of the calculated value. Allows the length parameter to be used to set the packet length. Causes a valid or invalid checksum to be generated in the UDP header.

Member sourcePort destPort length

lengthOverride enableChecksum

5-32

Ixia Tcl Development Guide

IxTclHal API Description


Data Transmission

TABLE 5-69. udp

Options
Usage The actual value generated. Valid only after stream.set has been used. Enables the setting of a checksum from checksum.

Member checksum enableChecksum Override


igmp

The name of the associated protocol object must be set to ip and the ipProtocol member of the associated ip object must be set to igmp to successfully use this command. The igmp command is used to format IGMP messages. See igmp on page A-102 for full details. The important options of this command are:
TABLE 5-70. igmp

Options
Usage Which version of IGMP to use: 1 or 2. The type of IGMP message to generate: membership Query membership Reporttype 1 or 2. DVMRP MessageDistance Vector Multicast Routing Protocol Leave Group

Member version type

maxResponseTime groupIpAddress mode repeatCount


icmp

The maximum allowed response time. The IP multicast address of the group being joined or left. Describes how groupIpAddress will change from one message to the next: idle, increment or decrement. The number of IGMP messages to send.

The name of the associated protocol object must be set to ip and the ipProtocol member of the associated ip object must be set to icmp to successfully use this command. The icmp command is used to format ICMP messages. Any data not covered in the options below must be entered in the streams data portion. See icmp on page A-98 for full details. The important options of this command are:
TABLE 5-71. icmp

Options
Usage The type of ICMP message to be sent. The code for each type of message. (Read-only) The value of the checksum to be sent in the stream. This is only valid after stream.set is used.

Member type code checksum

Ixia Tcl Development Guide

5-33

IxTclHal API Description


Data Transmission

TABLE 5-71. icmp

Options
Usage ID for each echoRequest type message. Sequence number for each echoRequest type message.

Member id sequence
rip

Note: the rip and ripRoute commands allow you to create RIP packets for transmission as part of a stream. They are not associated with the RIP aspect of the Protocol Server, described in RIP on page 5-80. The name of the associated protocol object must be set to ip and the appName member of the associated protocol object must be set to Rip to successfully use this command. The rip command is used to configure the RIP header. Individual RIP route entries are associated with the ripRoute command and the use of RouteIds. See rip on page A-222 for full details. The important options of this command are:
TABLE 5-72. rip

Options
Usage The RIP command. One of: RIP Request RIP Response RIP Trace On RIP Trace Off RIP Reserved

Member command

version
ripRoute

The RIP version: 1 or 2.

The ripRoute command is used to format RIP route messages. Header information is contained in the associated rip command. See ripRoute on page A225 for full details. The important options of this command are:
TABLE 5-73. ripRoute

Options

Member familyId routeTag ipAddress subnetMask nextHop metric authenticationType authentication

Usage Address family identifier. Used to distinguish multiple sources of routing information. IP address of the entry. Subnet mask for the entry. For version 2 records only, the IP address of the next routing hop for the entry. The cost of the route, from 1 to 16. The type of authentication to use. Data associated with the authentication method.

5-34

Ixia Tcl Development Guide

IxTclHal API Description


Data Transmission

dhcp

The name of the associated protocol object must be set to ip and the appName member of the associated protocol object must be set to Dhcp to successfully use this command. The dhcp command is used to format DHCP messages. Multiple options are entered into the message through repeated use of the setOption method. See dhcp on page A-69 for full details. The important options and sub-commands of this command are:
TABLE 5-74. dhcp

Options
Usage Operation code: DHCP Boot Request DHCP Boot Reply

Member opCode

hwType hwLen hops transactionID seconds flags clientIpAddr yourIpAddr relayAgentIpAddr clientHWAddr serverHostName serverIpAddr bootFileName optionCode optionDataLength optionData
TABLE 5-75. dhcp

Hardware address type. Hardware address length. Set to 0 to indicate packet origin. Random identifier for message pairing. Elapsed time since start of request. Indicates broadcast or non-broadcast handling. Clients IP address. Your IP address. Relay agents IP address; used if booting through a proxy. Clients hardware address. Optional server host name. Servers IP address. Boot file name to use. Code for optional data. Length of the option data. The actual data.

Sub-Commands
Usage Sets an option value. Gets a previously set option.

Member setOption getOption

Ixia Tcl Development Guide

5-35

IxTclHal API Description


Data Capture and Statistics

Data Capture and Statistics


Data is captured as a result of the use of four commands:
filtersets up conditions under which data capture is triggered and filtered. filter sets up the conditions for collecting several user defined statistics. filterPallettesets up address and pattern matches used in filter. capturesets up basic sizing parameters for captured data. captureBuffersets up conditions under which QoS statistics will be

gathered. Raw data and statistics are then collected through the use of three commands:
captureBufferprovides access to the raw data and latency/jitter mea-

surements.
statprovides access to all of the port statistics. statGroup and statListprovides access to average latency data and

timestamps during packet group operation.

filter

filter sets up the conditions under which data capture is triggered and filtered. Conditions for the collection of user defined statistics (UDS) 1, 2, 5 and 6 are also specified. User defined statistics 5 and 6 are also known as async trigger 1 and 2. See filter on page A-76 for full details.

There are six sets of eight options for the capture trigger and filter and the four user UDFs. These six contribute a prefix to the option name:
captureTrigger... captureFilter... userDefinedStat1... userDefinedStat2... asyncTrigger1... asyncTrigger2...

5-36

Ixia Tcl Development Guide

IxTclHal API Description


Data Capture and Statistics

The eight options for the suffix to these names:


TABLE 5-76. filter

Options
Usage Enables or disables the filter, trigger or statistic. Two destination address matches (DA1 and DA2) are set up through the use of filterPallette. This member chooses which conditions relating to those addresses are required for a match: Any address DA1 Not DA1 DA2 Not DA2

Member Enable DA

SA

Two source address matches (SA1 and SA2) are set up through the use of filterPallette. This member chooses which conditions relating to those addresses are required for a match: Any address SA1 Not SA1 SA2 Not SA2

Pattern

Two pattern matches (pattern1 and pattern2) are set up through the use of filterPallette. This member chooses which conditions relating to those pattern matches are required for a match: Any address pattern1 Not pattern1 pattern2 Not pattern2 pattern1 and pattern2

Error

The error condition under which a match will occur including: Anytime, without concern over errors. Only for good packets Any of a number of other error conditions.

FrameSizeEnable FrameSizeFrom FrameSizeTo

Enables or disables the size constraint as specified in the two entries below. The minimum and maximum frame size for a match.

For example, at a minimum the Enable option of the captureTrigger command and the Enable option of the captureFilter command must be set for any data to be captured.

filterPallette

filterPallete sets up address and data pattern matching criteria used in filter. See filterPallette on page A-83 for full details.

Ixia Tcl Development Guide

5-37

IxTclHal API Description


Data Capture and Statistics

There are four sets of two options for the source and destination addresses 1 and 2. These are:
TABLE 5-77. filterPallete

Options - DA/SA

Member DA1 DAMask1 DA2 / DAMask2 SA1 / SAMask1 SA2 / SAMask2

Usage Destination address 1 data. Mask of valid bits for destination address 1. Same for destination address 2. Same for source address 1. Same for source address 2.

There are two sets of four options for each of the two data patterns. These are:
TABLE 5-78. filterPallette

Options - Pattern 1/2

Member matchType1

Usage The basic form of match performed. This is a one of a number of pre-programmed choices in which the packet type and data pattern are pre-programmed and/or specially interpreted. One additional choice allows for user specification of the data and type. If the user choice is made in matchType1, this is the offset of pattern 1 in the frame. The data within the pattern to match for. For the preprogrammed choices in matchType1, this pattern has a special interpretation. The mask to apply against pattern1 in order to obtain a match. The same as for pattern 1, but for pattern 2.

patternOffset1 pattern1

patternMask1 patternOffset2 matchType2 pattern2 patternMask2

capture

capture sets up the basic parameters associated with the capture buffer usage. See capture on page A-45 for full details. The important options of this command are:
TABLE 5-79. capture

Options

Member sliceOffset sliceSize nPackets

Usage The offset within the frame from which to begin capturing data. The maximum number of octets per frame to capture. 8192 is the largest slice size supported. (Read-only) The actual number of packets available in the capture buffer.

5-38

Ixia Tcl Development Guide

IxTclHal API Description


Data Capture and Statistics

captureBuffer

captureBuffer allows the raw captured data to be obtained, or calculated latency data to be viewed. Data is held in the hardware until the get method is

called, which copies the captured data for a range of frame numbers into local computer memory. Following the use of get, getframe will make an individual frame available. Latency and deviation values may be calculated, subject to constraints through the use of setConstraint and getStatistics. Latency is defined as the difference between the transmit and receive times, in nanoseconds. Jitter is defined as the deviation of the latency. See captureBuffer on page A-49 for full details. The important options and sub-commands of this command are:
TABLE 5-80. captureBuffer

Options
Usage (Read-only) The contents of the selected frame based on capture.sliceOffset and sliceSize. (Read-only) The total length of the frame, regardless of the slice captured. The number of frames in the hardwares capture buffer. After setConstraints is called, this value is updated with the number of frames that met the constraints. The status of the frame: either no errors, or one of a number of possible error conditions. The arrival time of the captured frame in nanoseconds. (Read-only) The average latency of the frames in the retrieved capture buffer. (Read-only) The frames latency. (Read-only) The minimum latency of the frames in the retrieved capture buffer. (Read-only) The maximum latency of the frames in the retrieved capture buffer. (Read-only) The average deviation of the average latencies of the frames in the retrieved capture buffer. (Read-only) The standard deviation of the average latencies of the frames in the retrieved capture buffer.

Category Data

Member frame

length numFrames

status

timestamp Measurements averageLatency

latency minLatency

maxLatency

averageDeviation

standardDeviation

Ixia Tcl Development Guide

5-39

IxTclHal API Description


Data Capture and Statistics

TABLE 5-80. captureBuffer

Options
Usage Enables jitter calculations to occur only over those frames with the ethernet type indicated in ethernetType. If enableEthernetType is set, this is the ethernet type to match on. Enables jitter calculations to occur only over those frames with the frame size indicated in framesize. If enableFramesize is set, this is the frame size to match on. Enables jitter calculations to occur only over those frames with a pattern match as indicated in patternOffset and pattern. If enableFramesize is set, this is the expected offset within the frame for the pattern match. If enableFramesize is set, this is the expected pattern for the pattern match.

Category Constraints

Member enableEthernetType

ethernetType enableFramesize

framesize enablePattern

patternOffset

patternOffset
TABLE 5-81. captureBuffer

Sub-Commands

Member get getFrame clearConstraint setConstraint getConstraint getStatistics export import

Usage Copies the data for a range of frame numbers from the hardware capture buffer. Gets an individual frames data. Clears the constraint values for jitter calculation. Sets a new set of jitter calculation constraints. Gets the current set of jitter calculation constraints. Gets the jitter statistics for the current set of constraints. Export the contents of a capture buffer for later import or usage by another program. Import a previously saved and exported capture buffer for analysis.

The following example will import a previously saved capture buffer and print out the number of bytes in each frame:
captureBuffer import d:/adrian.cap 1 1 1 set numRxPackets [captureBuffer cget -numFrames] ixPuts "$numRxPackets packets in buffer" for {set frame 1} {$frame <= $numRxPackets} {incr frame} { captureBuffer getframe $frame set capframe [captureBuffer cget -frame] ixPuts "Frame $frame is [llength $capframe] bytes long"

5-40

Ixia Tcl Development Guide

IxTclHal API Description


Data Capture and Statistics

stat

Provides access to a wide range of statistics; the instantaneous value or rate is retrieved. See stat on page A-262 for full details. Statistics may be gathered in several ways: Statistics in bulk, through the use of the stat get allStats <chassis> <card> <port> followed by calls to get the data using stat cget -statName. Rate statistics in bulk, through the use of the stat getRate allStats <chassis> <card> <port> followed by calls to get the data using stat cget -statName. An individual statistic, through the use of the stat get statName <chassis> <card> <port>. The values is returned from the call. An individual rate statistic, through the use of the stat getRate statName <chassis> <card> <port>. The value is returned from the call. Note also that most of the statistics are 64-bit values. mpexpr should be used to perform calculations on these values. The important options and sub-commands of this command are:
TABLE 5-82. statistics

Options

Member mode

Usage Sets the mode of the counters: Normal. QoSreuses eight of the counters for QoS values. UDS 5,6reuses two of the counters for User Defined Statistics 5 and 6. Checksum Errorsreuses six hardware counters for IP, TCP and UDP checksum errors. Data Integrityreuses two counters for data integrity errors.

<statistics>

The number and type of statistics is too large to mention here.

See stat on page A-262 for a description of the stat command


and Appendix G - Available Statistics for description of all statistics available.
TABLE 5-83. statistics

Sub-Commands
Usage Gets a particular statistic value or all statistics. Gets the frame rate for a particular statistic value or all statistics. Determines whether a ports capture buffer is active or idle. Gets the link state for a port.

Member get getRate getCaptureState getLinkState

Ixia Tcl Development Guide

5-41

IxTclHal API Description


Data Capture and Statistics

TABLE 5-83. statistics

Sub-Commands
Usage Determines whether a port is actively transmitting or idle. Sets the ports statistics mode as indicated in the mode member.

Member getTransmissionState set

statGroup and statList

These commands provide an alternate means for accessing statistics across a set of ports. See statGroup on page A-279 and statList on page A-281 for full details. A group is formed using statGroup and all of the valid statistics for the ports in the group are available through statList: Note also that most of the statistics are 64-bit values. mpexpr should be used to perform calculations on these values. The important options and sub-commands of statGroup are:
TABLE 5-84. statGroup

Options

Member numPorts

Usage The current number of ports in the group.

TABLE 5-85. statGroup

Sub-Commands

Member setDefault add del get

Usage Resets the list to empty. Adds a port to the group. Deletes a specific port from the group. Retrieves all of the valid statistics for all of the ports in the group. The individual statistics are available through statList.

The important options and sub-commands of statList are:


TABLE 5-86. statList

Options

Member <statistics>

Usage The number and type of statistics is too large to mention here.

See stat on page A-262 for a description of the stat command


and Appendix G - Available Statistics for description of all statistics available.
TABLE 5-87. statList

Sub-Commands
Usage Gets a particular statistic value or all statistics. Gets the frame rate for a particular statistic value or all statistics.

Member get getRate

5-42

Ixia Tcl Development Guide

IxTclHal API Description


Data Capture and Statistics

qos

qos allows the user to set up the QoS counter filters and offsets. See qos on

page A-219 for full details. The important options and sub-commands of this command are:
TABLE 5-88. qos

Options
Usage The offset in the frame where a particular pattern will be matched before QoS counting will occur. The value to look for at the patternOffset. The mask to be applied in the pattern match. The offset in the packet where the priority value is located - to be used to increment the correct QoS counter.

Member patternOffset patternMatch patternMask byteOffset


TABLE 5-89. qos

Sub-Commands
Usage Sets the QoS counters for certain types of packets: Ethernet II 802.3 Snap VLAN ppp Cisco HDLC

Member setup

packetGroupStats

packetGroupStats is used to retrieve statistics related to packet groups. The get method must be used to get the data related to a number of groups, followed by a call to getGroup for a particular group number. See packetGroupStats

on page A-183 for full details. The important options and sub-commands of this command are:
TABLE 5-90. packetGroupStats

options
Usage The number of actual groups received. The total number of frames used to calculate the statistics. The average/min/max latency for a group.

Category Basic

Member numGroups totalFrames

Latency

averageLatency minLatency maxLatency firstTimeStamp lastTimeStamp

Time Stamps

Transmission start time. Transmission stop time. The bit rate. Note that this requires multiple calls to get before valid values are obtained.

Bit Rate

bitRate

Ixia Tcl Development Guide

5-43

IxTclHal API Description


Data Capture and Statistics

TABLE 5-91. packetGroupStats

Sub-Commands

Member get getGroup

Usage Used to get the data for a range of group IDs into local memory. Used to retrieve the latency for a particular group.

5-44

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

Protocol Server
The protocol server implements a number of intelligent, bi-directional test SubCommands and data gathering routines: IPconstructs an IP address to MAC address correspondence table. ARPsends ARP requests and maintains an IP address to MAC address correspondence table based on responses. IGMPsends and responds to IGMP messages. BGP4simulates one or more BGP4 routers in a network of routers. OSPFsimulates one or more OSPF routers in a network of routers. IS-ISsimulates one or more routers IS-IS routers in a network of routers. RSVP-TEsimulates one or more RSVP ingress or egress routers. Concentrates on Traffic Engineering parameters. RIPsimulates one or more RIP routers in a network of routers.

protocolServer

The protocolServer command enables/disables each of the protocol servers and provides the first entry for the IP address table. See protocolServer on page A-216 for full details. The important options of this command are:
TABLE 5-92. protocolServer

Options
Usage (Non-PoS cards only) Enables ARP requests and responses. Enables BGP4 testing. Enables IGMP testing. Enables ISIS testing Enables OSPF testing. Enables PING requests and responses. Enables RIP testing Enables RSVP testing

Member enableArpResponse enableBgp4Response enableIgmpQueryResponse enableIsisResponse enableOspfResponse enablePingResponse enableRipResponse enableRsvpResponse

IP

Please refer to IP on page 3-17 for a discussion of the Ixia Protocol Servers testing model with respect to IP. ipAddressTable The address table is a list of entries, each of which is described in the item command. The address table command is used to position within the list and elements

Ixia Tcl Development Guide

5-45

IxTclHal API Description


Protocol Server

are accessed with the list object. The typical series of operations is shown in the table below:
TABLE 5-93. Typical

Address Table Operations

Operation add address table items

Steps

1. Set values in the ipAddressTableItem command. 2. Use the set sub-command of the ipAddressTableItem command which transfers the data into a holding area. 3. Use the addItem sub-command of the ipAddressTable command to move the data from the holding area to the actual list. 4. Repeat steps 1, 2 and 3 for each table item to be added. 5. Use the set sub-command of the ipAddressTable command to send the table to the hardware.

look through address table

1. Use the get sub-command ipAddressTable command to transfer the data from the hardware to the object. 2. Use the get sub-command of the ipAddressTableItem command to get the data into the ipAddressTableItem options. 3. Use the getNextItem sub-command of the ipAddressTable command to position to the next table item. 4. Repeat steps 2 and 3 until an error is returned from step 3.

find the address table item for an IP address

1. Use the getItem sub-command of the ipAddressTable command to position the list to the correct entry. 2. Use the get sub-command of the ipAddressTableItem command to get the data into the ipAddressTableItem options.

See ipAddressTable on page A-118 for full details. The important options and sub-commands of this command are:
TABLE 5-94. ipAddressTable

Options

Member defaultGateway

Usage The IP address of where all non-overridden ARP requests are sent. This is usually the address of the Device Under Test.

5-46

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

TABLE 5-95. ipAddressTable

Sub-Commands

Member clear addItem

Usage Clears the IP address table. Adds the address table item as set by the last call to ipAddressTableItem.set to the address table at the current table position. Deletes the address table item at the current position. Finds the address table item for a particular IP address. Positions to the first address table item. Moves to the next address table item.

delItem getItem getFirstItem getNextItem

ipAddressTableItem This command holds an individual table item; ipAddressTable takes care of keeping the actual list of address table items. See ipAddressTableItem on page A-120 for full details. The important options and sub-commands of this command are:
TABLE 5-96. addressTableItem

Options

Member fromIpAddress toIpAddress fromMacAddress toMacAddress numAddresses enableUseNetwork netMask

Usage The IP address range. The MAC address range. The number of consecutive addresses. Enables and sets the network mask to be applied to the IP addresses.

overrideDefaultGateway Override the default gateway address from the protocolServer object. gatewayIpAddress mappingOption If the gateway is overridden, this is the new gateway address value. IP to MAC mapping: either one IP to one MAC or many IP to one MAC.

TABLE 5-97. addressTableItem

Sub-Commands

Member get set

Usage Gets the current item from the ipAddressTable command. Saves the current item for use by ipAddressTable.

Ixia Tcl Development Guide

5-47

IxTclHal API Description


Protocol Server

ARP

Please refer to ARP on page 3-17 for a discussion of the Ixia Protocol Servers testing model with respect to ARP. arpServer The ARP table is automatically populated when ARP responses are received from automatically generated ARP requests. The arpAddressTableEntry command operates in concert with arpServer to show the entries in the table. The arpServer object sets the position in the list and arpAddressTableEntry access the entry at the current position. The typical series of operations is shown in the table below:
TABLE 5-98. Typical

Address Table Operations

Operation look through ARP table

Steps

1. Use the get sub-command of the arpServer command to transfer the data from the hardware to the object. 2. Use the get sub-command of the arpAddressTableEntry command to get the data into the arpAddressTableEntry options. 3. Use the getNextItem sub-command of the arpServer command to position to the next table item. 4. Repeat steps 2 and 3 until an error is returned from step 3.

find the ARP table item for an IP address

1. Use the getItem sub-command of the arpServer command to position the list to the correct entry. 2. Use the get sub-command of the arpAddressTableEntry command to get the data into the arpAddressTableEntry options.

See arpServer on page A-8 for details. The important options and sub-commands of this command are:
TABLE 5-99. arpServer

Options

Member mode

Usage The type of ARP request handling: Send a single ARP request to each gateway IP address for the first IP address found in the IP address table. Results are saved in the ARP table. Send ARP requests using all of the addresses found in the IP address table as source addresses. ARP responses are ignored. Both operations.

rate retries

ARP frame rates in frames per second. Number of retries.

5-48

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

TABLE 5-100. arpServer

Sub-Commands

Member clearArpTable getEntry getFirstEntry getNextEntry sendArpRequest

Usage Clears the ARP table. Finds the entry for a particular IP address. The data may be retrieved by calling arpAddressTableEntry.get. Positions to the first entry in the list. The data may be retrieved by calling arpAddressTableEntry.get. Positions to the next entry in the list. The data may be retrieved by calling arpAddressTableEntry.get. Sends ARP requests as per the mode member.

arpAddressTableEntry See arpAddressTableEntry on page A-7 for full details. The important options of this command are:
TABLE 5-101. arpAddressTableEntry

Options

Member ipAddress macAddress

Usage IP address for the entry. MAC address for the entry

Ixia Tcl Development Guide

5-49

IxTclHal API Description


Protocol Server

IGMP

Please refer to IGMP on page 3-17 for a discussion of the Ixia Protocol Servers testing model with respect to IGMP. The IGMP related commands are: igmpServer configures overall operation of the Protocol Servers IGMP operation. igmpAddressTable a container used to hold the list of address table items. igmpAddressTableItem an individual item for the IGMP Address Table. These commands, and the data that they maintain are arranged in a hierarchy, as shown in Figure 5-32, IGMP Command Hierarchy, on page 5-50.

igmpServer

igmpAddressTable

igmpAddressTableItem
Figure 5-32. IGMP Command Hierarchy

igmpServer The igmpServer object configures the overall operation of the IGMP Protocol Server. See igmpServer on page A-109 for full details. The important options of this command are:
TABLE 5-102. igmpServer

Options

Member version sendRouterAlert reportMode

Usage Version 1 or 2 of the protocol. Sets the IP header Send Router Alert bit. Basic mode of response: Report to one when queriedcauses each simulated host to respond just to the specific query that it is presented with. Report to all when queriedcauses each simulated host to respond with all of its memberships, regardless of the type of query that it is presented with. Report to all unsolicitedcauses each simulated host to automatically send full memberships messages at regular intervals.

5-50

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

TABLE 5-102. igmpServer

Options

Member reportFrequency

Usage When the mode is report to all unsolicited, this is the frequency in seconds with with unsolicited messages are generated. Enables responses after initial join message.

enableQueryResponse

igmpAddressTable The address table is a list of entries, each of which is described in the item command. One positions within the list with the address table object and accesses elements with the list object. The typical series of operations is shown in the table below:
TABLE 5-103. Typical

Address Table Operations

Operation add table items

Steps

1. Set values in the igmpAddressTableItem command. 2. Use the set sub-command of the igmpAddressTableItem command which transfers the data into a holding area. 3. Use the addItem sub-command of the igmpAddressTable command to move the data from the holding area to the actual list. 4. Repeat steps 1, 2 and 3 for each table item to be added. 5. Use the set sub-command of the igmpAddressTable command to send the table to the hardware.

look through table

1. Use the get sub-command of the igmpAddressTable command to transfer the data from the hardware to the object. 2. Use the get sub-command of the igmpAddressTableItem command to get the data into the ipAddressTableItem options. 3. Use the getNextItem sub-command of the igmpAddressTable command to position to the next table item. 4. Repeat steps 2 and 3 until an error is returned from step 3.

Ixia Tcl Development Guide

5-51

IxTclHal API Description


Protocol Server

See igmpAddressTable on page A-105 for full details. The important sub-commands of this command are:
TABLE 5-104. igmpAddressTable

Sub-Commands

Member clear addItem

Usage Clear the IGMP address table. Adds the table item as set by the last call to igmpAddressTableItem.set to the table at the current table position. Deletes the address table item at the current position. Positions to the first table item. Moves to the next table item.

delItem getFirstItem getNextItem

igmpAddressTableItem The igmpAddressTableItem is used in concert with the igmpAddressTable command. This command holds an individual table item; igmpAddressTable takes care of keeping the actual list of address table items. See ipAddressTableItem on page A-120 for full details. The important options of this command are:
TABLE 5-105. igmpAddressTableItem

Options

Member fromClientAddress toClientAddress fromGroupAddress toGroupAddress numClientAddresses numGroupAddresses

Usage The client address range. toClientAddress is readonly. The group address range. toGroupAddress is readonly. The number of consecutive client addresses. The number of consecutive group addresses.

5-52

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

BGP4

Please refer to BGP4 on page 3-19 for a discussion of the Ixia Protocol Servers testing model with respect to BGP4. The BGP4 related commands are: bgp4Server provides access to the BGP4 part of a ports protocol server. bgp4InternalTable / bgp4ExternalTable a container used to hold the list of neighbor routers in the form of bgp4InternalNeighborItem / bgp4ExternalNeighborItem items. Internal and external routers are separated into different tables. bgp4InternalNeighborItem / bgp4ExternalNeighborItem a container used to hold the list of route ranges in the form of bgp4RouteItem items. bgp4RouteItem an individual route range and associated route attributes. More complex list based attributes are held in a list of bpg4AsPathItem items. bpg4AsPathItem represents list based route attributes, including AS Set and AS Sequence. bgp4StatsQuery provides access to a large number of BGP4 related statistics. These commands, and the data that they maintain are arranged in a hierarchy, as shown in Figure 5-33, BGP4 Command Hierarchy, on page 5-53.

bgp4Server

bgp4 Internal Table bgp4 Internal Neighbor Item bgp4 Route Item bgp4 AsPath Item

bgp4 External Table bgp4 External Neighbor Item

Figure 5-33. BGP4 Command Hierarchy

bgp4Server The bgp4Server command is necessary in order to access the BGP4 component of the Protocol Server for a particular port. The select sub-command must be used before all others in this category. For example,
bgp4server select 1 3 4

will access the BGP4 server for chassis 1, card 3, port 4. Once a BGP4 simulation has been set up with the other commands in this section, streams can be automat-

Ixia Tcl Development Guide

5-53

IxTclHal API Description


Protocol Server

ically generated which sends traffic to all IP addresses in all defined route ranges. This is done through the use of the generateStreams sub-command. bgp4InternalTable / bgp4ExternalTable The bgp4InternalTable / bgp4ExternalTable holds all entries for the simulated internal/external neighbor routers. Separate lists are kept for simulated internal versus external routers. Items are added to this table from the bgp4InternalNeighborItem / bgp4ExternalNeighborItem command; these commands are used in conjunction with the Table commands to build the neighbor router lists. The important options and sub-commands of this command are:
TABLE 5-106. bgp4InternalTable

/ bgp4ExternalTable Options

Member localASNum

Usage (Internal Neighbors) The Autonomous System number associated with the routers participating in the Internal BGP (IBGP) group. When retries are necessary, the delay between retries. The number of times to attempt an OPEN connection with the DUT router(s) before giving up. Causes a HELLO message to be actively sent when BGP testing starts.

retryDelay retries enableActiveConnect

TABLE 5-107. bgp4InternalTable

/ bgp4ExternalTable Sub-Commands

Member clear addNeighborItem

Usage Removes all neighbors from the table. Adds a neighbor to the table. The neighbor must have been previously been configured through the use of the bgpInternalNeighborItem / bgpExternalNeighborItem command. Allows iterative access to all the table items. Each accessed item is available via the bgpInternalNeighborItem / bgpExternalNeighborItem command. The currently accessed item (via getFirstItem and getNextItem) is deleted.

getFirstItem getNextItem

delNeighborItem

bgp4InternalNeighborItem / bgp4ExternalNeighborItem The bgpInternalNeighborItem / bgpExternalNeighborItem holds information about a range of neighbor (routers). Bgp4RouteItems are added to the Neighbor with the addRouteItem command until all routItems are added, then bgp4InternalNeighborItems / bgp4ExternalNeighborItems are added to the bgp4InternalNeighborTable / bgp4ExternalNeighborTable with the addInternal-

5-54

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

Neighbor / addExternalNeighbor command. The important options and sub-commands of this command are:
TABLE 5-108. bgp4InternalNeighborItem

/ bgp4ExternalNeighborItem

Options
Member localIpAddress rangeCount neighborASNum asNumMode dutIPAddress keepAliveTime messageTime enableLinkFlap linkFlapTIme linkFlapDropTime enableStaggeredStart staggeredStartPeriod Usage The first IP address for the simulated neighbor routers and the number of routers. (External only) The first AS Num assigned to the simulated router. (External only) Indicates that each new session uses a different AS number. The IP address of the DUT router. The period of time between KEEP-ALIVE messages sent to the DUT. The frequency with which UPDATE messages are sent to the DUT. Controls flapping of the link between the simulated routers and the DUT, including the period and down time. Controls the staggering and period of initial start messages.

TABLE 5-109. bgp4InternalNeighborItem / bgp4ExternalNeighborItem Sub-Commands

Member clearRouteList addRouteItem

Usage Clears the route items associated with the table item. Adds a route item to the table item. The route item must have been previously been configured through the use of the bgpRouteItem command. Allows direct or iterative access to all the route items. Each accessed item is available via the bgpRouteItem command. Deletes the currently accessed route item.

getRouteItem getFirstRouteItem getNextRouteItem delRouteItem

bgp4RouteItem The bgp4RouteItem holds a route range that is associated with a bgp4InternalNeighborItem / bgp4ExternalNeighborItem. This command defines a set of routes and associated attributes. One attribute is supplied by a subsidiary command: bgp4ASPathItem, whose elements are included as a list associated

Ixia Tcl Development Guide

5-55

IxTclHal API Description


Protocol Server

with bgp4RouteItem. The important options and sub-commands of this command are:
TABLE 5-110. bgp4RouteItem

Options
Usage Controls the range and number of network prefix addresses generated as well as how many are packed in each UPDATE message.

Category Route Ranges

Member networkAddress fromPrefix thruPrefix numRoutes fromPacking thruPacking iterationStep enableGenerate UniqueRoutes enableRouteFlap routeFlapTime routeFlapDropTime flapFrom flapTo enableNextHop nextHopIpAddress nextHopMode enableOrigin originProtocol enableLocalPref localPref enableMED MED enableCommunity communityList enableAtomicAggregate enableAggregator aggregatorIPAddress aggregatorASNum aggregatorIDMode enableOriginatorId originatorId enableCluster clusterList enableASPath asPathSetMode

Flapping

Enables and controls the flapping of routes to the DUT.

Next Hop

Enables the generation of NEXT HOP attribute. Enables the generation of the ORIGIN attribute Enables the generation of the LOCAL PREF attribute. Enables the generation of the MULTI-EXIT DISCRIMINATOR attribute. Enables the generation of a community list and specifies the contents of that list. Enables the generation of attributes related to route aggregation: the ATOMIC AGGREGATOR and AGGREGATOR attributes. Enables the generation of the ORIGINATOR attribute. Enables the generation of a cluster list and specifies the contents of that list. Enables the use of the AS Path attribute and its contents.

Origin Local Preference Multi-Exit Discriminator Communities

Aggregator

Originator Clusters

AS Path

5-56

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

TABLE 5-111. bgp4RouteItem

Sub-Commands

Member clearASPathItem addASPathItem

Usage Clears the AS Path list associated with the route item. Adds an AS path item to the route item. The AS path item must have been previously been configured through the use of the bgpAsPathItem command. Allows direct or iterative access to all the AS Path items. Each accessed item is available via the bgpAsPathItem command.

getASPathItem getFirstASPathItem getNextASPathItem

bpg4AsPathItem The bgp4AsPathItem is used to construct AS list related items. These items must be added to a route item through the use of the bgp4RouteItem addASPath item command. The important options of this command are:
TABLE 5-112. bgp4AsPathItem

Options

Member enableAsSegment asList asSegmentType

Usage Indicates that this particular list is enabled. The list of AS numbers. The type of AS list in the item.

bgp4StatsQuery The bgp4StatsQuery command is used to fetch statistics about a BGP4 session, either while it is running or afterwards. Because of the large number of statistics and the large amount of data that might be generated, this command provides the means to limit the statistics to a set of statistics for a particular pairs of neighbor routers. The important options and sub-commands of this command are:
TABLE 5-113. bgp4StatsQuery

Options

Member statName statValue

Usage The name of the statistics retrieved The value of the statistic.

TABLE 5-114. bgp4StatsQuery

Sub-Commands

Member addNeighbor delNeighbor clearAllNeighbors addStat delStat clearAllStats getStat

Usage Sets up the neighbor pairs to monitor.

Sets up the statistics to monitor

Fetches a particular statistics into the options.

Ixia Tcl Development Guide

5-57

IxTclHal API Description


Protocol Server

OSPF

Please refer to OSPF on page 3-17 for a discussion of the Ixia Protocol Servers testing model with respect to OSPF. The OSPF related commands are: ospfServer provides access to the OSPF part of a ports protocol server. ospfRouter a container used to hold three lists associate with the router: route ranges, interfaces and Link State Advertisements (LSA). ospfRouteRange a set of routes, to be included in ospfRouter. ospfInterface a network interface, to be included in ospfRouter. ospfUserLSAGroup a list of LSAs, to be included in ospfRouter. ospfUserLSA a single LSA description, to be included in ospfUserLSAGroup. For Router LSA entries, this command holds a list of such entries. ospfRouterLSAInterface a single Router LSA Interface entry, to be included in ospfUserLSA. These commands, and the data that they maintain are arranged in a hierarchy, as shown in Figure 5-34, OSPF Command Hierarchy, on page 5-58.

ospfServer

ospfRouter

ospfRouteRange

ospfInterface

ospfUserLsaGroup

ospfUserLsa

ospfRouterLsaInterface

Figure 5-34. OSPF Command Hierarchy

ospfServer Refer to ospfServer on page A-166 for a complete description of this command. The ospfServer command is necessary in order to access the OSPF component of the Protocol Server for a particular port. The select sub-command must be used before all others in this category. For example,
ospfserver select 1 5 2

will access the OSPF server for chassis 1, card 5, port 2.

5-58

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

This command holds a list of the simulated routers. The definition of these routes occurs using the ospfROuter command and subsidiary commands. The important sub-commands of this command are:
TABLE 5-115. ospfServer

Sub-Commands

Member select clearAllRouters addRouter

Usage Selects the chassis, card and port to operate on. Removes all routers from the list of routers. Adds a router to the list of routers. The router must have been previously been configured through the use of the ospfRouter command. Accesses a particular router from the list, either directly by ID or by iterating through all of the routers. The data appears in the ospfRouter command. Deletes a particular router from the list. It is possible to change OSPF router configuration on the fly. In order to do this, the following steps are necessary: 1. Modify the routers configuration with ospfRouter. (ospfRouter has capabilities for modifying elements of underlying objects as well). 2. Use the ospfServer setRouter command to set the values from ospfRouter into IxHal. 3. Use the ospfServer write command to write the changes to the hardware.

getRouter getFirstRouter getNextRouter delRouter setRouter

generateStreams

Once an OSPF simulation has been set up with the other commands in this section, this sub-command automatically generates traffic to all IP addresses in all defined route ranges.

ospfRouter The ospfRouter command represents a simulated router. In addition to some identifying options, it holds three lists for the router: Route ranges routes to be advertised by the simulated router, constructed in the ospfRouteRange command. Interfaces router interface, constructed in the ospfInterface command. LSA Groups Link State Advertising Groups which will be associated with advertised routes, constructed in the ospfUserLSAGroup command and subsidiary commands.The important options and sub-commands of this command shown in Table 5-116 on page 5-60.

Ixia Tcl Development Guide

5-59

IxTclHal API Description


Protocol Server

TABLE 5-116. ospfRouter

Options

Member enable routerId

Usage Enables or disables the simulated router. The ID of the simulated router, expressed as an IP address.

TABLE 5-117. ospfRouter

Sub-Commands
Usage Clears all route ranges. Adds a new route range. The route range must have been previously been configured through the use of the ospfRouteRange command. Accesses a particular route range either by ID, or by iterating through all of the route ranges. The data appears in the ospfRouteRange command. Deletes a particular route range. It is possible to change route range configuration on the fly. In order to do this, the following steps are necessary: 1. Modify the route ranges configuration with ospfRouteRange. 2. Use the ospfRouter setRouteRange command to set the values from ospfRouteRange into IxHal. 3. Use the ospfServer write command to write the changes to the hardware.

Category Route Ranges

Member clearAllRouteRanges addRouteRange

getRouteRange getFirstRouteRange getNextRouteRange delRouteRange setRouteRange

Interfaces

clearAllInterface addInterface

Clears all interfaces. Adds a new interface. The interface must have been previously been configured through the use of the ospfInterface command. Deletes a particular interface. Accesses a particular interface either by ID or by iterating through all of the interfaces. The data appears in the ospfInterface command.

delInterface getInterface getFirstInterface getNextInterface

5-60

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

TABLE 5-117. ospfRouter

Sub-Commands
Usage It is possible to change interface configuration on the fly. In order to do this, the following steps are necessary: 1. Modify the interfaces configuration with ospfInterface. 2. Use the ospfRouter setInterface command to set the values from ospfInterface into IxHal. 3. Use the ospfServer write command to write the changes to the hardware.

Category

Member setInterface

User LSA Group

clearAllUserLsaGroup addUserLsaGroup delUserLsaGroup

Deletes a particular user LSA group. Clears all user LSA group. Adds a new user LSA group. The interface must have been previously been configured through the use of the ospfUserLsaGroup command. Accesses a particular user LSA group either by ID or by iterating through all of the LSA groups. The data appears in the ospfUserLsaGroup command. It is possible to change user LSA group configuration on the fly. In order to do this, the following steps are necessary: 1. Modify the LSAs configuration with ospfUserLsaGroup. 2. Use the ospfRouter setUserLsaGroup command to set the values from ospfInterface into IxHal. 3. Use the ospfServer write command to write the changes to the hardware.

getUserLsaGroup getFirstUserLsaGroup getNextUserLsaGroup setUserLsaGroup

ospfRouteRange The ospfRouteRange command describes an individual set of routes. Route ranges are added into ospfRouter lists using the ospfRouter addRouteRange command. The important options of this command are:
TABLE 5-118. ospfRouteRange

Options

Member enable networkIpAddress

Usage Enables the use of this route range for the simulated router. The IP address of the routes to be advertised.

Ixia Tcl Development Guide

5-61

IxTclHal API Description


Protocol Server

TABLE 5-118. ospfRouteRange

Options

Member prefix

Usage The number of bits in the prefixes to be advertised. For example, a value of 24 is equivalent to a network mask of 255.255.255.0. The number of prefixes to be advertised. The cost metric associated with the route. Whether the route originated within the area or externally.

numberOfNetworks metric routeOrigin

ospfInterface Refer to the ospfInterface on page A-156 for a full description of this command. The ospfInterface holds the information related to a single interface on the simulated router. Interfaces are added into the ospfRouter interface list using the ospfRouter addInterface command. In addition, learned LSAs from the DUT are made available through this command. The important options and sub-commands of this command are:
TABLE 5-119. ospfInterface

Options
Usage Enables the use of the simulated interface. Indicates that this interface is directly connected to the DUT. The IP address of the interface. The IP mask associated with the interface. The OSPF area ID associated with the interface. The priority of the interface, for use in election of the designated or backup master. The metric associated with the interface. Options related to the interface. Multiple options may be ord together.Enables the validation of maximum transfer units with peers The advertised MTU size The type of network attached to the link: Point to point network Broadcast network

Class Basic

Member enable connectToDut ipAddress ipMask

OSPF Basic

areaId priority

metric options enableValidate Mtu mtuSize networkType

5-62

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

TABLE 5-119. ospfInterface

Options
Usage The type of link advertised in router LSAs, one of: Point to point network Transit network Stub network

Class

Member linkType

neighborRouterId

If the linkType is a point to point network, this is the address of the other end of the link The time between HELLO messages sent over the interface. The time after which the DUT router is considered dead if it does not send HELLO messages. Enables the generation of the Traffic Engineering opaque LSA with the remainder of the options in this class. The traffic engineering metric of the interface The maximum bandwidth that can be used on the link The maximum bandwidth that can be reserved on the link The amount of bandwidth not yet reserved at each of the eight priority levels The number of obtained LSAs. ospfInterface getLearnedLsaList must be called first

Hello Interval

helloInterval deadInterval

Traffic Engineering

enableTraffic Engineering linkMetric maxBandwidth maxReservable Bandwidth unreservedBand widthPriority0-7

Learned LSAs

numberLearned Lsas

TABLE 5-120. ospfInterface

Sub-Commands

Member requestLearnedLsa getLearnedLsaList

Usage The first step in obtaining the learned LSA list. It sends a request to the hardware. The second step in obtaining the learned LSA list. It allows the Tcl program to wait until the values are available The third step in obtaining the learned LSA list. It reads back the first learned LSA, whose values may be read through the ospfUserLsa command. The fourth step in obtaining the learned LSA list. It reads back the next learned LSA, whose values may be read through the ospfUserLsa command. It should be used multiple times to obtain the whole list.

getFirstLearnedLsa

getNextLearnedLsa

Ixia Tcl Development Guide

5-63

IxTclHal API Description


Protocol Server

ospfUserLSAGroup Refer toospfUserLsaGroup on page A-176 for a full description of this command. The ospfUserLSAGroup describes a list of LSAs to be associated with advertised routes. The list consists of elements constructed through the use of the ospfUserLsa command. The important options and sub-commands of this command are:
TABLE 5-121. ospfUserLSAGroup

Options

Member enable areaId

Usage Enables the use of the LSA group. The area ID for the LSA group.

TABLE 5-122. ospfUserLSAGroup

Sub-Commands

Member clearAllUserLsas addUserLsa

Usage Clears all LSAs in the list. Adds a new user LSA. The user LSA must have been previously been configured through the use of the ospfUserLSA command. Accesses a particular user LSA by ID or by iterating through all of the user LSAs. The data appears in the ospfUserLSA command. Deletes a particular user LSA.

getUserLsa getFirstUserLsa getNextUserLsa delUserLsa

ospfUserLSA Refer toospfUserLsa on page A-171 for a full description of this command. The ospfUserLSA describes an individual LSA. The types supported are: Route LSA describes all of the routers interfaces along with state and cost. This consists of a list of ospfRouterLSAInterface elements added via the ospfUserLSA addInterfaceDescriptionToRouterLsa command. Network LSA generated by a designated router and lists all attached routers. Summary IP LSA describes destinations outside of an area. Summary ASBR LSA generated by AS Border Routers and list the ASBR itself. Opaque LSAs holds information used by other protocols. Three types of LSAs are defined to indicate the scope of flooding to be performed: Local indicates that the LSA is to be flooded only within the local (sub)network, Area indicates that the LSA is to be flooded only within the associated area and Domain indicates that the LSA is to be flooded throughout the AS. The options available cover all of the possible LSAs that are held by this command. See the command description in ospfUserLsa on page A-171 for the

5-64

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

details of which options go with each LSA. The important sub-commands of this command related to Router LSAs only, they are:
TABLE 5-123. ospfUserLSA

Sub-Commands
Usage Clears all router interface descriptions LSAs in the list. Adds a new router LSA. The router LSA must have been previously been configured through the use of the ospfRouterLSAInterface command. Accesses a particular router LSA by ID or by iterating through the descriptions. The data appears in the ospfRouterLSAInterface command. Deletes a particular router LSA.

Member clearInterfaceDescription addInterfaceDescription ToRouterLsa

getFirstInterfaceDescription getNextInterfaceDescription

delInterfaceDescription

ospfRouterLSAInterface Refer toospfRouterLsaInterface on page A-164 for a full description of this command.The ospfRouterLSAInterface command describes a single Router LSA interface entry. The data from this entry is added to an ospfUserLsa list for a Router LSA entry using the ospfUserLsa addInterfaceDescriptionToRouterLsa command. The options available cover the attributes of a Router LSA entry. See the command description in Appendix A for the details of which options go with each LSA. No special sub-commands are associated with this command.

Ixia Tcl Development Guide

5-65

IxTclHal API Description


Protocol Server

IS-IS

Please refer to IS-IS on page 3-24 for a discussion of the Ixia Protocol Servers testing model with respect to IS-IS. The IS-IS related commands are: isisServer provides access to the IS-IS part of a ports protocol server. isisRouter a container used to hold two lists associate with the router: route ranges and interfaces. isisRouteRange a set of routes, to be included in isisRouter. isisInterface a network interface, to be included in isisRouter. These commands, and the data that they maintain are arranged in a hierarchy, as shown in Figure 5-35, ISIS Command Hierarchy, on page 5-66.

isisServer

isisRouter

isisRouteRange

isisInterface

Figure 5-35. ISIS Command Hierarchy

isisServer Refer toisisServer on page A-134 for a full description of this command. The isisServer command is necessary in order to access the ISIS component of the Protocol Server for a particular port. The select sub-command must be used before all others in this category. For example,
isisServer select 1 5 2

will access the IS-IS server for chassis 1, card 5, port 2. This command holds a list of the simulated routers. The definition of these routes occurs using the isisRouter command and subsidiary commands. The important sub-commands of this command are shown in Table 5-124 on page 5-66.
TABLE 5-124. isisServer

Sub-Commands

Member select clearAllRouters addRouter

Usage Selects the chassis, card and port to operate on. Removes all routers from the list of routers. Adds a router to the list of routers. The router must have been previously been configured through the use of the isisRouter command. Accesses a particular router from the list, either directly by ID or by iterating through all of the routers. The data appears in the isisRouter command.

getRouter getFirstRouter getNextRouter

5-66

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

TABLE 5-124. isisServer

Sub-Commands

Member delRouter setRouter

Usage Deletes a particular router from the list. It is possible to change ISIS router configuration on the fly. In order to do this, the following steps are necessary: 1. Modify the routers configuration with isisRouter. (isisRouter has capabilities for modifying elements of underlying objects as well). 2. Use the isisServer setRouter command to set the values from isisRouter into IxHal. 3. Use the isisServer write command to write the changes to the hardware.

generateStreams

Once an OSPF simulation has been set up with the other commands in this section, this sub-command automatically generates traffic to all IP addresses in all defined route ranges.

isisRouter Refer toisisRouter on page A-130 for a full description of this command. The isisRouter command represents a simulated router. In addition to some identifying options, it holds two lists for the router: Route ranges routes to be advertised by the simulated router, constructed in the isisRouteRange command. Interfaces router interface, constructed in the isisInterface command. The important options and sub-commands of this command are shown in Table 5-125 on page 5-67.
TABLE 5-125. isisRouter

Options
Usage Enables or disables the simulated router. The ID of the simulated router, expressed as an IP address. The Number of Area Addresses permitted for this IS area. The list of area addresses to use.

Member enable routerId maxNumberOfAddresses areaAddressList

Ixia Tcl Development Guide

5-67

IxTclHal API Description


Protocol Server

TABLE 5-126. isisRouter

Sub-Commands
Usage Clears all route ranges. Adds a new route range. The route range must have been previously been configured through the use of the isisRouteRange command. Accesses a particular route range either by ID, or by iterating through all of the route ranges. The data appears in the isisRouteRange command. Deletes a particular route range. It is possible to change route range configuration on the fly. In order to do this, the following steps are necessary: 1. Modify the interfaces configuration with isisRouteRange. 2. Use the isisRouter setRouteRange command to set the values from isisRouteRange into IxHal. 3. Use the isisServer write command to write the changes to the hardware.

Category Route Ranges

Member clearAllRouteRanges addRouteRange

getRouteRange getFirstRouteRange getNextRouteRange delRouteRange setRouteRange

Interfaces

clearAllInterface addInterface

Clears all interfaces. Adds a new interface. The interface must have been previously been configured through the use of the isisInterface command. Deletes a particular interface. Accesses a particular interface either by ID or by iterating through all of the interfaces. The data appears in the isisInterface command. It is possible to change interface configuration on the fly. In order to do this, the following steps are necessary: 1. Modify the interfaces configuration with isisInterface. 2. Use the isisRouter setInterface command to set the values from isisInterface into IxHal. 3. Use the isisServer write command to write the changes to the hardware.

delInterface getInterface getFirstInterface getNextInterface setInterface

5-68

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

isisRouteRange Refer toisisRouteRange on page A-133 for a full description of this command. The isisRouteRange command describes an individual set of routes. Route ranges are added into isisRouter lists using the isisRouter addRouteRange command. The important options of this command are:
TABLE 5-127. isisRouteRange

Options

Member enable networkIpAddress prefix

Usage Enables the use of this route range for the simulated router. The IP address of the routes to be advertised. The number of bits in the prefixes to be advertised. For example, a value of 24 is equivalent to a network mask of 255.255.255.0. The number of prefixes to be advertised. The cost metric associated with the route.

numberOfNetworks metric

isisInterface Refer toisisInterface on page A-128 for a full description of this command. The isisInterface holds the information related to a single interface on the simulated router. Interfaces are added into the isisRouter interface list using the isisRouter addInterface command. The important options of this command are:
TABLE 5-128. isisInterface

Options

Member enable connectToDut networkType ipAddress ipMask metric level interfaceId priorityLevel1 priorityLevel2

Usage Enables the use of this route range for the simulated router. If set, this IS-IS interface is directly connected to the DUT. Indicates the type of network attached to the interface: broadcast or point-to-point. The IP address for this interface. The IP mask associated with the IP address for this interface. The cost metric associated with the route. The IS-IS level associated with the interface: level 1, 2 or both. The OSI interface ID for this interface. The priority level associated with the Level 1 or Level 2 aspect of the interface. This is used in master election.

Ixia Tcl Development Guide

5-69

IxTclHal API Description


Protocol Server

TABLE 5-128. isisInterface

Options

Member helloIntervalLevel1 helloIntervalLevel2 deadIntervalLevel1 dealIntervalLevel2

Usage The hello interval used with the Level 1 or Level 2 aspect of the interface. Used to send regular messages to neighbor IS-IS routers. The dead interval used with the Level 1 or Level 2 aspect of the interface. Used to determine if neighbor routers are non-operational.

5-70

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

RSVP-TE

Please refer to RSVP-TE on page 3-27 for a discussion of the Ixia Protocol Servers testing model with respect to RSVP. The RSVP related commands are: rsvpServer provides access to the RSVP part of a ports protocol server. rsvpNeighborPair describes a pair of routers in which one is the DUT and the other is simulated by the Ixia port. rsvpDestinationRange describes a set of routers which are the destination of MPLS tunnels. Destination ranges correspond to Ingress or Egress routers. rsvpSenderRange describes a set of routers which are the source of MPLS tunnels in an Ingress simulation. rsvpEroItem describes an Explicit Route Item entry for use in Ingress router simulations. rsvpRroItem describes an Return Route Item entry for use in Egress router simulations. These commands, and the data that they maintain are arranged in a hierarchy, as shown in Figure 5-36, RSVP Command Hierarchy, on page 5-71.

rsvpServer

rsvpNeighborPair

rsvpDestinationRange

rsvpSenderRange

rsvpEroItem

rsvpRroItem

Figure 5-36. RSVP Command Hierarchy

rsvpServer Refer torsvpServer on page A-248 for a full description of this command. The rsvpServer command is necessary in order to access the RSVP component of the Protocol Server for a particular port. The select sub-command must be used before all others in this category. For example,
rsvpServer select 1 5 2

will access the RSVP server for chassis 1, card 5, port 2. This command holds a list of adjacent routers, called neighbor pairs. The definition of these routers occurs using the rsvpNeighborPair command and subsidiary commands. The important sub-commands of this command are shown in Table 5-129 on page 5-72.

Ixia Tcl Development Guide

5-71

IxTclHal API Description


Protocol Server

TABLE 5-129. rsvpServer

Sub-Commands

Member select clearAllNeighborPair addNeighborPair

Usage Selects the chassis, card and port to operate on. Removes all Neighbor Pairs from the list of Neighbor Pairs. Adds a NeighborPair to the list of Neighbor Pairs. The Neighbor Pair must have been previously been configured through the use of the rsvpNeighborPair command. Accesses a particular Neighbor Pair from the list, either directly by ID or by iterating through all of the Neighbor Pairs. The data appears in the rsvpNeighborPair command. Deletes a particular NeighborPair from the list. It is possible to change RSVP neighbor pair configuration on the fly. In order to do this, the following steps are necessary: 1. Modify the neighbor pairs configuration with rsvpNeighborPair. (rsvpNeighborPair has capabilities for modifying elements of underlying objects as well). 2. Use the rsvpServer setNeighborPair command to set the values from rsvpNeighborPair into IxHal. 3. Use the rsvpServer write command to write the changes to the hardware.

getNeighborPair getFirstNeighborPair getNextNeighborPair delNeighborPair setNeighborPair

generateStreams

Once an RSVP simulation has been set up with the other commands in this section, has been started and has run long enough to receive labels from the DUT, this sub-command automatically generates traffic. Traffic is generated for each label received from the DUT. Traffic is sent from the first address in the sender range to the first address in the destination range for the neighbor pair associated with the label.

rsvpNeighborPair Refer torsvpNeighborPair on page A-241 for a full description of this command. The rsvpNeighborPair command represents a pair of routers one is the DUT and the other is simulated by the Ixia Protocol Server. In addition to some identifying options, it holds a list for the router: Destination Ranges a list of routers which represent the termination point of MPLS tunnels being constructed. Destination ranges are constructed in the rsvpRouteRange command.

5-72

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

The important options and sub-commands of this command are shown in Table 5-130 on page 5-73.
TABLE 5-130. rsvpNeighborPair

Options
Usage Enables or disables the simulated neighbor pair. The IP address of the simulated router The IP address of the Device Under Test. This is the RSVP router that the simulated router is directly connected to. Enables the transmission of HELLO messages between the simulated router and the DUT. The interval, in seconds, between HELLO messages. The number of Hellos sent without confirmation before the DUT is considered dead. The first label to be used for RSVP tunnels. The last label to be used for RSVP tunnels. When received MPLS labels are retrieved from the Protocol Server for the simulated server, this represents the tunnel ID for the returned label. This is the MPLS label associated with the tunnel ID in lsp_tunnel. The number of received labels

Category Neighbor Pair

Member enableNeighborPair ipAddress dutAddress

Hello Messages

enableHello

helloInterval helloTimeoutMultplier

Label Space

labelSpaceStart labelSpaceEnd

Returned Labels lsp_tunnel

rxLabel numRxLabels
TABLE 5-131. rsvpRouter

Sub-Commands
Usage Clears all destination ranges associated with the neighbor pair. Adds a new destination range. The destination range must have been previously been configured through the use of the rsvpDestinationRange command.

Category Destination Ranges

Member clearAllDestinationRange addDestinationRange

Ixia Tcl Development Guide

5-73

IxTclHal API Description


Protocol Server

TABLE 5-131. rsvpRouter

Sub-Commands
Usage Accesses a particular destination range either by ID, or by iterating through all of the destination ranges. The data appears in the rsvpDestinationRange command. Deletes a particular destination range. This is the first step in retrieving labels from the DUT. This subcommand requests that all of the received MPLS tunnel-label pairs be retrieved. This is the second step in retrieving labels from the DUT. This subcommand allows the Tcl program to wait until the labels have been retrieved. This is the last step in retrieving labels from the DUT. These subcommands gets the first and subsequent received tunnel-label pair from the list retrieved with requestRxLabels. The values are available in the numRxLabels, lsp_tunnel and rxLabel options.

Category

Member getDestinationRange getFirstDestinationRange getNextDestinationRange

delDestinationRange Received Labels requestRxLabels

getLabels

getFirstLabel getNextLabel

rsvpDestinationRange Refer torsvpDestinationRange on page A-235 for a full description of this command. The rsvpDestinationRange command describes a set of MPLS routers which are the tunnel endpoints for a number of MPLS tunnels established with RSVP. Three other lists are associated with this command: rsvpSenderRangea set of MPLS routers which are the tunnel start-points. rsvpEroItema set of addresses associated with the Explicit Route Option of RSVP messages. This option indicates the path through a set of MPLS routers that the tunnel is to take. This is used when the destination range is associated with an Ingress router. rsvpRroItema set of addresses associated with the Returned Route Option. This option indicates the set of MPLS routers that were used in a tunnels creation. This is used when the destination range is associated with an Egress router.

5-74

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

The important options and sub-commands of this command are shown in Table 5-132 on page 5-75.
TABLE 5-132. rsvpDestinationRange

Options
Usage Enables or disables the use of the destination range. Indicates whether the destination range corresponds to an Ingress or Egress router. The IP address of the first destination router. The number of destination routers. Each routers address is one greater than the previous ones. Sets the start of the range of Tunnel IDs to be used in simulations. The end of the range of Tunnel IDs. Enables use of the ERO option in Ingress mode. Indicates whether the DUTs address is to be prepended to the ERO list and whether it is a LOOSE or STRICT entry. If the DUTs address is to be prepended to the ERO list, this indicates what prefix length is to be used for the entry. When the destination range is used in Ingress mode, this indicates that a SEND RRO option is to be included in RSVP messages sent downstream. When the destination range is used in Egress mode, this indicates the time, in seconds, between the simulated routers message to the DUT. The requested bandwidth for the tunnel, expressed in kbits per second. The number of Hellos before a router is declared dead. Indicates whether RESV confirmation messages are to generated in response to RESV messages with the RESV confirmation class object.

Category DestinationRange

Member enableDestination Range behavior

fromIpAddress rangeCount

tunnelIdStart tunnelIdEnd ERO enableEro eroMode

prefixLength

Ingress Options

enableSendRro

Egress Options

refreshInterval

bandwidth timeoutMultiplier enableResvConf

Ixia Tcl Development Guide

5-75

IxTclHal API Description


Protocol Server

TABLE 5-133. rsvpDestinationRange

Sub-Commands
Usage Clears all sender ranges. Adds a new sender range. The sender range must have been previously been configured through the use of the rsvpSenderRange command. Accesses a particular sender range either by ID, or by iterating through all of the Sender ranges. The data appears in the rsvpSenderRange command. Deletes a particular sender range. It is possible to change sender range configuration on the fly. In order to do this, the following steps are necessary: 1. Modify the sender ranges configuration with rsvpSenderRange. 2. Use the rsvpDestinationRange setSenderRange command to set the values from rsvpSenderRange into IxHal. 3. Use the rsvpServer write command to write the changes to the hardware.

Category Sender Ranges

Member clearAllSender addSenderRange

getSenderRange getFirstSenderRange getNextSenderRange

delSenderRange setSenderRange

ERO Items

clearAllEro addEroItem

Clears all ERO list items. Adds a new ERO item. The ERO item must have been previously been configured through the use of the rsvpEroItem command. Accesses a particular sender range by iterating through all of the Sender ranges. The data appears in the rsvpEroItem command. Clears all RRO list items.

getFirstEroItem getNextEroItem

RRO Items

clearAllRro

5-76

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

TABLE 5-133. rsvpDestinationRange

Sub-Commands
Usage Adds a new RRO item. The RRO item must have been previously been configured through the use of the rsvpRroItem command. Accesses a particular sender range by iterating through all of the Sender ranges. The data appears in the rsvpRroItem command.

Category

Member addRroItem

getFirstRroItem getNextRroItem

rsvpSenderRange Refer torsvpSenderRange on page A-246 for a full description of this command. The rsvpSenderRange holds the information related to the originating routers for the MPLS tunnels being simulated in Ingress cases. Sender ranges are added into the rsvpDestinationRanges list using the rsvpDestinationRanges addSenderRange command. The important options of this command are:
TABLE 5-134. rsvpSenderRange

Options
Usage Enables the sender range entry. The IP address of the first sender router. The number of routers in the sender range. Each sender router has an IP address one higher than its predecessor. The start of the range of LSP IDs to be generated. The end of the range of LSP IDs. The value of the refresh interval, in milliseconds. The bandwidth requested for the connection, expressed in kbits/sec. The number of Hellos before a neighbor is declared dead. Enables the Session Name to be generated automatically. If enableAutoSessionName is not set, this is the name assigned to this Session.

Category Sender Range

Member enableSenderRange fromIpAddress rangeCount

lspIdStart lspIdEnd General Options refreshInterval bandwidth timeoutMultiplier Session Attributes enableAuto SessionName sessionName

Ixia Tcl Development Guide

5-77

IxTclHal API Description


Protocol Server

TABLE 5-134. rsvpSenderRange

Options
Usage This is the session priority with respect to taking resources, such as preempting another session. The valid range is from 0 to 7. The highest priority is indicated by 0. This is the session priority with respect to holding resources, such as keeping a session during preemption. The valid range is from 0 to 7. The highest priority is indicated by 0. This permits transit routers to use a local traffic rerouting repair mechanism, in the event of a fault on an adjacent downstream link or node. This may result in a violation of the explicit route object. This indicates that label information is to be included when doing a record route operation. This indicates that the tunnel ingress node may reroute this tunnel without tearing it down. A tunnel egress node should use the SE Style when responding with an RESV message. Enables the use of resource affinities as set by excludeAny, includeAny, and includeAll. Represents a set of attribute filters associated with a tunnel, any of which renders a link unacceptable. Represents a set of attribute filters associated with a tunnel, any of which makes a link acceptable (with respect to this test). When all bits are set to 0 (null set), it automatically passes. Represents a set of attribute filters associated with a tunnel, all of which must be present for a link to be acceptable (with respect to this test). When all bits are set to 0 (null set), it automatically passes.

Category

Member setupPriority

holdingPriority

enableLocalProtection Desired

enableLabelRecording Desired enableSeStyleDesired

enableRaSession Attribute excludeAny

includeAny

includeAll

rsvpEroItem Refer torsvpEroItem on page A-239 for a full description of this command. The rsvpEroItem holds the information related to an ERO item used for in Ingress mode. ERO items are added into the rsvpDestinationRange list using the

5-78

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

rsvpDestinationRange addEroItem command. The important options of this command are:


TABLE 5-135. rsvpEroItem

Options

Member type ipAddress asNumber prefixLength enableLooseFlag

Usage The type of contents in the ERO entry. Either IP (IPv4 address) or AS (Autonomous System). If the type field is IP, then this is the ERO value as an IP address prefix. If the type field is AS, then this is the ERO value as an Autonomous System Number. If the type field is IP, then this defines the prefix length of the DUT IP address. Indicates whether the ERO item is to be considered a LOOSE item or a STRICT item.

rsvpRroItem Refer torsvpRroItem on page A-244 for a full description of this command. The rsvpRroItem holds the information related to an RRO item used for Egress mode. RRO items are added into the rsvpDestinationRange list using the rsvpDestinationRange addRroItem command. The important options of this command are:
TABLE 5-136. rsvpRroItem

Options

Member type ipAddress label enableProtection Available enableProtectionInUse

Usage The type of contents in the RRO entry. Either IP (IPv4 address) or Label. If the type field is IP, then this is the RRO value as an IPv4 address. If the type field is Label, then this is the RRO value as an assigned label. If the type field is IP, then this indicates that local protection is made available for the downstream link. If the type field is IP, then this indicates that the local protection is being used currently to maintain this tunnel. If the type field is IP, then this is the C_Type of the included Label Object. If the type field is IP, then this indicates that the label will be understood if received on any interface.

cType enableGlobalLabel

Ixia Tcl Development Guide

5-79

IxTclHal API Description


Protocol Server

RIP

The RIP related commands are: ripServer provides access to the RIP part of a ports protocol server. ripInterfaceRouter a container used to hold the list of route ranges associated with the simulated router. ripRouteRange a set of routes, to be included in ripInterfaceRouter. These commands, and the data that they maintain are arranged in a hierarchy, as shown in Figure 5-37, RIP Command Hierarchy, on page 5-80.

ripServer

ripRouter

ripRouterRange

Figure 5-37. RIP Command Hierarchy

ripServer Refer toripServer on page A-231 for a full description of this command. The ripServer command is necessary in order to access the RIP component of the Protocol Server for a particular port. The select sub-command must be used before all others in this category. For example,
ripServer select 1 5 2

will access the RIP server for chassis 1, card 5, port 2. This command holds a list of the simulated routers. The definition of these routers occurs using the ripInterfaceRouter command and subsidiary commands. The important sub-commands of this command are shown in Table 5-137 on page 580.

TABLE 5-137. ripServer

Sub-Commands

Member select clearAllRouter addRouter

Usage Selects the chassis, card and port to operate on. Removes all routers from the list of routers. Adds a router to the list of routers. The router must have been previously been configured through the use of the ripInterfaceRouter command.

5-80

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

TABLE 5-137. ripServer

Sub-Commands

Member getRouter getFirstRouter getNextRouter delRouter setRouter

Usage Accesses a particular router from the list, either directly by ID or by iterating through all of the routers. getFirstRouter should be called before getNextRouter. The data appears in the ripInterfaceRouter command. Deletes a particular router from the list. This command allows you to change a routers configuration on-the-fly while the RIP protocol is running. Changes to the routers configuration are made with the ripInterfaceRouter command. This call must be followed by a call to ripServer write.

ripInterfaceRouter The ripInterfaceRouter command represents a simulated router. In addition to some identifying options, it holds a list for the router: Route ranges routes to be advertised by the simulated router, constructed in the ripRouteRange command. The important options and sub-commands of this command are shown in Table 5-138 on page 5-81.
TABLE 5-138. ripInterfaceRouter

Options
Usage Enables or disables the simulated router. The IP address of the simulated RIP router. The network mask associated with the ipAddress. The current implementation uses Split Horizon as its update mode. Split Horizon is a method for omitting routes learned from a neighbor in update messages to that same neighbor. Additional options will be offered in future releases. The method for sending RIP packets. One of: Multicast - sends Version 2 packets via multicast. Broadcast Ver1 - sends V1 packets via broadcast. Broadcast Ver2 - sends V2 packets via broadcast.

Category Router

Member enableRouter ipAddress ipMask

Operating mode

responseMode

sendType

Ixia Tcl Development Guide

5-81

IxTclHal API Description


Protocol Server

TABLE 5-138. ripInterfaceRouter

Options
Usage Filters the version of messages this router will receive. One of: Version1 - RIP Version 1 messages only. Version2 - RIP Version 2 messages only. Version1+2 - Both RIP version messages.

Category

Member receiveType

updateInterval updateIntervalOffset

The time, in seconds, between transmitted update messages. A random percentage of this time value, expressed in seconds, which will be added or subtracted from the update interval. Indicates whether authorization is included in update messages. If enableAuthorization is set, this is the 16-character password to be used. Only simple password authentication is supported.

Authorization

enableAuthorization authorizationPassword

TABLE 5-139. ripInterfaceRouter

Sub-Commands
Usage Clears all route ranges. Adds a new route range. The route range must have been previously been configured through the use of the ripRouteRange command. Accesses a particular route range either by ID, or by iterating through all of the route ranges. getFirstRouteRange should be called before getNextRouteRange. The data appears in the ripRouteRange command. Deletes a particular route range. This command may be used to change an individual route range on-the-fly while the RIP protocol server is running. Changes to the route range are made with the ripRouteRange command. This command must be followed with a call to ripServer write.

Category Route Ranges

Member clearAllRouteRange addRouteRange

getRouteRange getFirstRouteRange getNextRouteRange

delRouteRange setRouteRange

5-82

Ixia Tcl Development Guide

IxTclHal API Description


Protocol Server

ripRouteRange The ripRouteRange command describes an individual set of routes. Route ranges are added into ripInterfaceRouter lists using the ripInterfaceRouter addRouteRange command. The important options of this command are:
TABLE 5-140. ripRouteRange

Options

Member enableRouteRange routeTag

Usage Enables the use of this route range for the simulated router. A arbitrary value associated with the routes in this range. It is used to provide a means for distinguishing internal vs. external RIP routes. The network address to be used in creating this route range. The network mask to be applied to the networkIpAddress to yield the non-host part of the address. A value of 0 means there is no subnet address. The number of networks to be generated for this route range, based on the network address plus the network mask. The immediate next hop IP address on the way to the destination address. The total metric cost for these routes. The valid range is from 1 to 16 (inclusive). A value of 16 means that the destination is not reachable, and that route will be removed from service.

networkIpAddress networkMaskWidth

numberOfNetworks

nextHop metric

Ixia Tcl Development Guide

5-83

IxTclHal API Description


Protocol Server

5-84

Ixia Tcl Development Guide

Chapter 6:

High-Level and Utility API Description

This chapter presents a description of the High-Level API commands organized by major topics: Initialization and Setupbasic overhead to set up the test and Ixia hardware. Port Ownershipcommands to control port ownership and sharing. Data Transmissionsetup for data transmission and control of the transmission. Data Capture and Statisticssetup for data capture and control capture and statistics. Protocol Serverspecial treatment given to IP, ARP and IGMP. Console Output and Loggingoutput messages to the console and log files.

This chapter provides an overview of the high-level API functions and utility commands. The full details of the commands described herein may be found in the following appendices: Appendix B - Utility Commands includes complete descriptions of each of the Utility commands. Appendix C - High-Level API includes complete descriptions of each of the high-level commands.

The high-level commands are characterized by one or more characteristics: They perform a combination of IxTclHAL commands. They perform one or more IxTclHAL commands over a range of ports. They control test operation sequences.

Arguments to the high-level APIs are passed in one of two ways: By valuedenoted by (By value) in the Appendix C description. By value arguments are either a constant or a $variable reference. For example: 32, {{1 1 1} {1 2 1}} or $portList

Ixia Tcl Development Guide

6-1

High-Level and Utility API Description

By referencedenoted by (By reference) in the Appendix C description. By value arguments must be references to variables, without the $. For example, pl after set pl {{1 1 1} [1 1 2}} or one2oneArray. Read the individual description pages in Appendix C to determine which arguments are passed by reference and by value.

6-2

Ixia Tcl Development Guide

High-Level and Utility API Description


Initialization and Setup

Initialization and Setup


The commands in this section relate to overhead operations necessary to prepare for data transmission, capture and statistical analysis. The commands covered in this section are: Mapping and Port Lists map ixCreatePortListWildCard ixCreateSortedPortList Including Source Code ixSource Chassis and TclServer Connection ixInitialize ixConnectToTclServer / ixDisconnectTclServer ixProxyConnect ixConnectToChassis / ixDisconnectFromChassis ixGetChassisID user General Purpose Commands ixWritePortsToHardware ixWriteConfigToHardware

Mapping and Port Lists

Four types of traffic mappings are common in Tcl tests, as shown in Figure 6-1 on page 6-4. 1. One-to-one mapping: one transmit port is mapped to one receive port. For example, port 1 of the Ixia chassis transmits to port 1 of the DUT, which forwards traffic back on its port 2 to Ixia chassis port 2. 2. One-to-many mapping: one transmit port is mapped to multiple receive ports. For example, port 1 of the Ixia chassis transmits to port 1 of the DUT, which forwards back on its ports 2, 3, and 4 to Ixia chassis ports 2, 3, and 4. 3. Many-to-one mapping: multiple transmit ports mapped to a single receive port. For example, ports 1, 2, and 3 of Ixia chassis transmit to ports 1, 2, and 3 of the DUT, which forwards back on its port 4 to Ixia chassis port 4. 4. Many-to-many mapping: multiple transmit ports are mapped to multiple receive ports. For example, port 1 of the Ixia chassis transmits to port 1 of the DUT, which forwards back on its ports 2, 3, and 4 to Ixia chassis ports 2, 3, and 4; at the same time, port 2 of the Ixia chassis transmits to port 2 of the DUT which forwards back on its ports 1, 3, 4 to Ixia chassis ports 1, 3, and 4; and so on. In this mapping, all ports transmit to and receive from all other ports in the system.

Ixia Tcl Development Guide

6-3

High-Level and Utility API Description


Initialization and Setup

The traffic mapping is a logical collection of ports and configurations stored in memory. It simplifies the identification of transmit and receive ports during the configuration of streams and filters. Ixia Tester DUT Ixia Tester DUT

One-to-One Mapping Ixia Tester DUT

One-to-Many Mapping Ixia Tester DUT

Many-to-One Mapping
Figure 6-1. Traffic Mappings

Many-to-Many Mapping

Tcl programmers will find it convenient to configure their ports using the map utility command. map builds one of four global arrays: one2oneArraysets up one transmit and one receive port for traffic flow. The transmit/receive port pair that has been configured once cannot be used in a different port pair. That is, each port pair is mutually exclusive. one2manyArraysets up one transmit port and multiple receive ports. Each group of transmit and its multiple receive ports is mutually exclusive with other groups. many2oneArraysets up multiple transmit ports and one receive port. Each group of multiple transmit ports and its receive port is mutually exclusive with other groups. many2manyArraysets up multiple transmit ports and multiple receive ports. Any port may transmit and receive to any other port in any group of ports.

6-4

Ixia Tcl Development Guide

High-Level and Utility API Description


Initialization and Setup

map The map command is used to define any of the four basic array types. Refer to map on page B-16 for full details. The important options and sub-commands of this command are:
TABLE 6-1. map

Options
Usage The type of mapping; one of one2one, one2many, many2one or many2many.

Member type
TABLE 6-2. map

Sub-Commands
Usage Adds a new transmit port - receive port pair to the mapping. Deletes a transmit port - receive port pair from the mapping. Clears the current map and creates a new map as described in type, above. Shows the current map configuration.

Member add del new show

Any of the four global arrays may be used in most of the high-level commands where a portList is called for as: one2oneArray one2manyArray many2oneArray many2manyArray The command will use the part of the array appropriate to the command; for example, ixStartTransmit will use only the transmit ports of the array. Alternatively, any command that calls for a portList may construct an array of ports and use it as an argument. Two alternative forms are defined: {{1 1 1} {1 1 2} {1 1 3} {1 1 4}} four ports: chassis 1, card 1, ports 1-4 {1,1,1 1,1,2 1,1,3 1,1,4} four ports: chassis 1, card 1, ports 1-4. Specifications are separated by spaces. ixCreatePortListWildCard Port lists may of course be created by hand. For example:
{{1 1 1} {1 1 2} {1 1 3} {1 1 4}}

The ixCreatePortListWildCard command can be used to build a sorted list containing wild card characters (*) to indicate all cards and/or all ports. For example,
ixCreatePortListWildCard {{1 * *}} - all cards and all ports on chassis 1 ixCreatePortListWildCard {{1 1 *} {1 2 1} {1 2 2}} - all ports on card 1 and ports 1 and 2 on card 2.

Ixia Tcl Development Guide

6-5

High-Level and Utility API Description


Initialization and Setup

A wild card cannot be used for chassis ID. Also, if a combination of a list element containing wild cards and port numbers are used, then the port list passed must be in a sorted order. The format of this command is: ixCreatePortListWildCardOptions portList [excludePortList] where portList is the list of ports (with wildcards) to be included, and excludePortList is a list of ports, which may not contain wildcards, which should be omitted from the returned list. Refer to ixCreatePortListWildCard on page -24 for full details of this command. ixCreateSortedPortList The ixCreateSortedPortList command can be used to construct a port list for a range of ports from a port on a single card to another port on a different card. For example:
ixCreateSortedPortList {1 1 1} {1 5 4} {{1 3 2}}- all ports between chassis 1 card 1 port 1 and port 4 on card 5, excluding card 3 port 2.

The format of this command is: ixCreateSortedPortList portFrom portTo exclude where portFrom is the first port in the range and portTo is the last port in the range. These are individual port specifications not a list of lists as in other commands. exclude is a list of lists indicating individual ports to be omitted from the list; an empty list is expressed as {{}}. Refer to ixCreateSortedPortList on page C-25 for full details of this command.

Including Source Code

ixSource The ixSource command is very useful in sourcing large number of .tcl files from a directory or a number of individual files. It may be called with either a single directory name or a set of full path names. In the former case, all the .tcl files within the directory are sourced and in the latter case, each of the individual files are sourced. The format of this command is: ixSource {fileNames | directoryName} where fileNames is any number of files to be sourced and directoryName is the directory name where all the files under that directory are going to be sourced. Refer to ixSource on page C-71 for full details on this command.

Chassis and TclServer Connection

Several commands are available to initialize connection to the chassis chain to be used for testing. Provisions are included to connect to TclServer from Unix platforms.

6-6

Ixia Tcl Development Guide

High-Level and Utility API Description


Initialization and Setup

ixInitialize The ixInitialize command establishes connection with a list of chassis and will assign chassis ID numbers to the chassis in the chain. The ID numbers will be assigned in incrementing order to the master and slave chassis with the master chassis given ID 1. Also, it will open a log file for the script. This command should be the first one in the script file after the IxTclHal package is loaded using package require command. The format of this command is: ixInitialize chassisList [cableLen [logfilename] [client]] where chassisList is a list of all of the chassis in the chain either IP addresses or host names that can be resolved through DNS, cableLen is the length of cables that connects the chassis, logfilename is the file to create to store log messages and client is the name of the user. If this command is called from a Unix client, it will also connect to the TclServer running on the first chassis in the list. If the TclServer is running on a host other than the chassis, then the ixConnectToTclServer and ixConnectToChassis commands should be used instead. Running TclServer on an Ixia chassis can adversely affect its performance; it is recommended that TclServer be run on some other Windows machine. Refer to ixInitialize on page C-36 for a full description of this command. ixConnectToTclServer / ixDisconnectTclServer It can be used from a Unix client to connect to a host that runs the TclServer, or disconnect from the server. The format of these command is: ixConnectToTclServer serverName ixDisconnectTclServer where serverName is the hostname or IP address of the Windows based machine hosting the TCL Server. Refer to ixConnectToTclServer on page C-23 and ixDisconnectTclServer on page C-30 for a full description of this command. ixProxyConnect The ixProxyConnect command combines the functions of ixTclSrvConnect and IxInitialize. The format of this command is: ixProxyConnect chassisName chassisList [cableLen [logfilename]] where chassisName is the hostname or IP address of a host running TclServer which will be used from Unix clients, chassisList is a list of all of the chassis in the chain - either IP addresses or host names that can be resolved through DNS, cableLen is the length of cables that connects the chassis, and logfilename is the file to create to store log messages. Refer to ixProxyConnect on page C-50 for a full description of this command.

Ixia Tcl Development Guide

6-7

High-Level and Utility API Description


Initialization and Setup

ixConnectToChassis / ixDisconnectFromChassis The ixConnectToChassis command is called from ixInitialize. It connects to a list of chassis given the host names or IP addresses. The format of these commands are: ixConnectToChassis chassisList [cableLen] ixDisconnectFromChassis where chassisList is a list of all of the chassis in the chain - either IP addresses or host names that can be resolved through DNS and cableLen is the length of cables that connects the chassis. Refer to ixConnectToChassis on page C-21 and ixDisconnectFromChassis on page C-29 for a full description of these commands. ixGetChassisID This command obtains the chassis ID of a chassis given its hostname or IP address. This command is needed after using ixInitialize or ixProxyConnect in order to obtain automatically assigned chassis IDs. The format of the command is: ixGetChassisID chassisName where chassisName is the hostname or IP address of the chassis. Refer to ixGetChassisID on page C-35 for a full description of this command. user This command has no effect on test operation. Rather it provides a means of storing global information about the user and the DUT. The only sub-commands available are config and cget. The important options of this command are:
TABLE 6-3. user

Options
Usage Name of the DUT being tested. Version number of the product. Serial number of the product. The name of the user running the tests.

Member productname version serial# username

Refer to user on page B-19 for a full description of this command.

6-8

Ixia Tcl Development Guide

High-Level and Utility API Description


Initialization and Setup

General Purpose Commands

The following two commands are invaluable tools for committing large amounts of configuration information to the hardware. ixWriteConfigToHardware This command commits the configuration of streams, filters, and protocol information on a group of ports to hardware. The format of the command is: ixWriteConfigToHardware portList where portList is a list of ports to apply the command to. Refer to ixWriteConfigToHardware on page C-133 for full description of this command. ixWritePortsToHardware In addition to performing all of the functions of IxWriteConfigToHardware, this command commits the configuration of ports such as Mii properties on 10/100 interface (speed, duplex modes, auto-negotiation), port properties on Gigabit interfaces, and PPP parameters on Packet over Sonet interfaces on a group of ports to hardware. Link may drop as a result of this commands execution. The format of the command is: ixWritePortsToHardware portList where portList is a list of ports to apply the command to. Refer to ixWritePortsToHardware on page C-135 for full description of this command.

Ixia Tcl Development Guide

6-9

High-Level and Utility API Description


Port Ownership

Port Ownership
Ports on chassis may be shared among a number of users. The commands in this section control user login and port sharing: ixLogin / ixLogout ixCheckOwnership ixPortTakeOwnership / ixTakeOwnership / ixPortClearOwnership / ixClearOwnership

ixLogin / ixLogout

The ixLogin command registers a name to associate with port ownership and the ixLogout command dissociates ownership. The format of these commands are: ixLogin ixiaUser ixLogout where ixiaUser is the name of the current user. Refer to ixLogin on page C-46 and ixLogout on page C-47 for full details on these commands.

ixCheckOwnership

The ixCheckOwnership command is used to check for the availability of a number of ports before taking ownership. The format of this command is: ixCheckOwnership portList where portList is a list of ports, which may contain wildcards. The ixCheckOwnership command requires that the list be passed by value. For example,
set p1 {{1 1 1} {1 1 2}} ixCheckOwnership $p1

A value of 0 is returned if all of the ports are available. Refer to ixCheckOwnership on page C-4 for a full description of this command.

ixPortTakeOwnership
/ ixTakeOwnership / ixPortClearOwnership / ixClearOwnership

The ixPortTakeOwnership and ixTakeOwnership commands take ownership of a single port or list of ports, respectively. The ixPortClearOwnership and ixClearOwnership commands give the ports back. The format of these command are: ixPortTakeOwnership chassisID cardID portID [takeType] ixTakeOwnership portList [takeType] ixPortClearOwnership chassisID cardID portID [takeType] ixClearOwnership [portList [takeType]] where chassisID, cardID and portID define an individual port, portList is a list of ports and takeType may be force in order to force the taking or release of ownership regardless of ownership by another user. The port list must be passed by

6-10

Ixia Tcl Development Guide

High-Level and Utility API Description


Port Ownership

value as in the ixCheckOwnership command. A call to ixClearOwnership without any arguments will clear all ports owned by the currently logged on user. Refer to ixPortTakeOwnership on page C-49, ixTakeOwnership on page C123, ixPortClearOwnership on page C-48 and ixClearOwnership on page C-12 for complete descriptions of these commands.

Ixia Tcl Development Guide

6-11

High-Level and Utility API Description


Data Transmission

Data Transmission
The data transmission commands relate the preparation for or the transmission of data to the DUT. Several utility commands, which calculate frequently used values, are detailed as well. The commands covered are: Setup ixCheckLinkState ixCheckPPPState ixSetPortPacketFlowMode / ixSetPacketFlowMode ixSetPortPacketStreamMode / ixSetPacketStreamMode ixSetPortTcpRoundTripFlowMode / ixSetTcpRoundTripFlowMode disableUdfs Start Transmit ixStartPortTransmit / ixStartTransmit / ixStopPortTransmit / ixStopTransmit ixStartStaggeredTransmit ixCheckPortTransmitDone / ixCheckTransmitDone ixStartPortCollisions / ixStartCollisions / ixStopPortCollisions / ixStopCollisions Calculation Utilities calculateFrameRate calculateGap validateFramesize validatePreamblesize host2addr byte2IpAddr dectohex hextodec

Setup

ixCheckLinkState The ixCheckLinkState command checks the link state on a group of ports. This command should be called early in the script to ensure that all links are up before any traffic is transmitted to the DUT. The format of the command is: ixCheckLinkState portList where portList is the set of ports to check. A success value of 0 is returned if all of the ports have link.

6-12

Ixia Tcl Development Guide

High-Level and Utility API Description


Data Transmission

Refer to ixCheckLinkState on page C-2 for a complete explanation of this command. ixCheckPPPState The ixCheckPPPState command checks the state on a group of POS ports. This command should be called early in the script to ensure that all POS ports are up before any traffic is transmitted to the DUT. The format of the command is: ixCheckPPPState portList where portList is the set of ports to check. A success value of 0 is returned if all of the ports have link. Refer to ixCheckPPPState on page C-6 for a complete explanation of this command. ixSetPortPacketFlowMode / ixSetPacketFlowMode These commands set the mode of the indicated ports to flow mode as opposed to stream mode (see Streams and Flows on page 3-4). The format of these commands are: ixSetPortPacketFlowMode chassisID cardID portID [write] ixSetPacketFlowMode portList [write] where chassisID, cardID, and portID identifies a single port and portList identifies a number of ports. The write argument will commit the settings to the hardware immediately. Refer to ixSetPortPacketFlowMode on page C-65 and ixSetPacketFlowMode on page C-58 for a complete explanation of these commands. ixSetPortPacketStreamMode / ixSetPacketStreamMode These commands set the mode of the indicated ports to stream mode as opposed to flow mode (see Streams and Flows on page 3-4). The format of these commands are: ixSetPortPacketStreamMode chassisID cardID portID [write] ixSetPacketStreamMode portList [write] where chassisID, cardID, and portID identifies a single port and portList identifies a number of ports. The write argument will commit the settings to the hardware immediately. Refer to ixSetPortPacketStreamMode on page C-67 and ixSetPacketStreamMode on page C-62 for a complete explanation of these commands.

Ixia Tcl Development Guide

6-13

High-Level and Utility API Description


Data Transmission

ixSetPortTcpRoundTripFlowMode / ixSetTcpRoundTripFlowMode These commands set the mode of the indicated ports to TCP round trip flow mode as opposed to flow or stream mode (see Streams and Flows on page 34). The format of these commands are: ixSetPortTcpRoundTripFlowMode chassisID cardID portID [write] ixSetTcpRoundTripFlowMode portList [write] where chassisID, cardID, and portID identifies a single port and portList identifies a number of ports. The write argument will commit the settings to the hardware immediately. Refer to ixSetPortTcpRoundTripFlowMode on page C-68 and ixSetTcpRoundTripFlowMode on page C-69 for a complete explanation of these commands. disableUdfs The disableUfs command disables one or more UDFs. The format of the command is: disableUdfs udfList where udfList is a list of values in the range 1-4. For example, {1 2 3 4}. A call to stream set is needed to write these values to the hardware. Refer to disableUdfs on page B-6 for a full description of this command.

Start Transmit

ixStartPortTransmit / ixStartTransmit / ixStopPortTransmit / ixStopTransmit These commands are used to start and then stop transmission on a single port or a group of ports. The ixStartCapture or ixStartPortCapture should be used before these commands. The format of these commands are: ixStartPortTransmit chassisID cardID portID ixStartTransmit portList ixStopPortTransmit chassisID cardID portID ixStopTransmit portList where chassisID, cardID, and portID identifies a single port and portList identifies a number of ports. Refer to ixStartPortTransmit on page C-89, ixStartTransmit on page C-96, ixStopPortTransmit on page C-116 and ixStopTransmit on page C-121 for complete descriptions of these commands.

6-14

Ixia Tcl Development Guide

High-Level and Utility API Description


Data Transmission

ixStartStaggeredTransmit This command performs the same function as ixStartTransmit, but staggers the time from one ports start to the next by 25 - 30ms. The format of this command is: ixStartStaggered portList where portList identifies a number of ports to start staggered transmission on. Refer to ixStartStaggeredTransmit on page C-94 for a complete descriptions of this command. ixCheckPortTransmitDone / ixCheckTransmitDone These commands poll a single port or list of ports to determine when all data has been transmitted to the DUT. This command does not return until transmission is complete on all the ports referenced. Note: these commands should be called no earlier than one second after starting transmit with ixStartTransmit or ixStartPortTransmit. It is recommended that an after 1000 statement be included after each start transmit. The format of these commands are: ixCheckPortTransmitDone chassisID cardID portID ixCheckTransmitDone portList where chassisID, cardID, and portID identifies a single port and portList identifies a number of ports. Refer to ixCheckPortTransmitDone on page C-7 and ixCheckTransmitDone on page C-9 for a complete explanation of these commands. ixStartPortCollisions / ixStartCollisions / ixStopPortCollisions / ixStopCollisions These commands are used to start and then stop generation of forced collisions on a single port or list of ports. The forcedCollisions command should be used before these commands to set up the parameters for collision generation. The format of these commands are: ixStartPortCollisions chassisID cardID portID ixStartCollisions portList ixStopPortCollisions chassisID cardID portID ixStopCollisions portList where chassisID, cardID, and portID identifies a single port and portList identifies a number of ports. Refer to ixStartPortCollisions on page C-85, ixStartCollisions on page C76, ixStopPortCollisions on page C-112 and ixStopCollisions on page C102 for complete descriptions of these commands.

Ixia Tcl Development Guide

6-15

High-Level and Utility API Description


Data Transmission

Calculation Utilities

calculateFrameRate The calculateFrameRate command calculates the frame rate in frames per second based on the inter-frame gap, frame size, preamble size and interface speed. The format of the command is: calculateFrameRate ifgap frame_size frame_preambleSize speed where ifgap is the inter-frame gap expressed in clock ticks, frame_size is expressed in bytes, frame_preambleSize is the size of the preamble expressed in bytes and speed is the interface speed expressed in Mbps. See command stream config ifg in stream on page A-282 for the definition of clock ticks. Refer to calculateFrameRate on page B-3 for a full description of this command. calculateGap The calculateGap command calculates the inter-frame gap in clock tick units based on the frame rate, frame size, preamble size and interface speed. See command stream config ifg in stream on page A-282 for the definition of clock ticks.The format of the command is: calculateGap frame_rate frame_size frame_preambleSize speed where frame_rate is expressed in frames per second, frame_size is expressed in bytes, frame_preambleSize is the size of the preamble expressed in bytes and speed is the interface speed expressed in Mbps. Refer to calculateGap on page B-4 for a full description of this command. validateFramesize The validateFramesize command checks the argument to see whether it falls in the legal range of frame sizes: 64 through 1518. The format of the command is: validateFramesize arg where arg is the frame size to be checked. Refer to validateFramesize on page B-20 for a full description of this command. validatePreamblesize The validatePreamblesize command checks the argument to see whether it falls in the legal range of preamble sizes: 2 through 255. The format of the command is: validatePreamblesize arg where arg is the frame size to be checked.

6-16

Ixia Tcl Development Guide

High-Level and Utility API Description


Data Transmission

Refer to validatePreamblesize on page B-21 for a full description of this command. host2addr This command converts an IP address in dotted notation to a list of hex bytes. The format of the command is: host2addr IPaddr where IPaddr is the address in dotted notation. The result is a list of four hex byte values. Refer to host2addr on page B-9 for a full description of this command. byte2IpAddr This command converts a list of four hex bytes into an IP address in dotted notation. The format of the command is: byte2IpAddr hexIPaddr where hexIPaddr is the address as a list of four hex byte values. The result is a dotted notation. Refer to byte2IpAddr on page B-2 for a full description of this command. dectohex This command converts a decimal number to hexadecimal notation. The format of the command is: dectohex decnum where decnum is the decimal value. The result is in hexadecimal notation. Refer to dectohex on page B-5 for a full description of this command. hextodec This command converts a hexadecimal number to decimal notation. The format of the command is: hextodec hexnum where hexnum is the hexadecimal value. The result is in decimal notation. Refer to hextodec on page B-8 for a full description of this command.

Ixia Tcl Development Guide

6-17

High-Level and Utility API Description


Data Capture and Statistics

Data Capture and Statistics


The commands in this section relate to setup for data capture, initiating data capture and collection of statistics. Although this section follows the one on data transmission, all capture setup and initiation should be done before any data transmission is started. The commands covered in this section are: Setup ixSetPortCaptureMode / ixSetCaptureMode ixSetPortPacketGroupMode / ixSetPacketGroupMode ixClearTimeStamp ixClearPortStats / ixClearStats ixResetSequenceIndex / ixResetPortSequenceIndex Capture Data ixStartPortCapture / ixStartCapture / ixStopPortCapture / ixStopCapture ixStartPortPacketGroups / ixStartPacketGroups / ixStopPortPacketGroups / ixStopPacketGroups Statistics ixCollectStats

Setup

The data capture and statistics setup commands should be performed before any data capture operations are started. ixSetPortCaptureMode / ixSetCaptureMode These commands sends a message to the IxServer to set the receive mode of a single port or list of ports to Capture mode. This mode must be used when traffic is to be captured in the capture buffer. This mode is mutually exclusive with the Packet Group receive mode. The format of these commands are: ixSetPortCaptureMode chassisID cardID portID [write] ixSetCaptureMode portList [write] where chassisID, cardID, and portID identifies a single port and portList identifies a number of ports. The write argument will commit the settings to the hardware immediately. Refer to ixSetPortCaptureMode on page C-64 and ixSetCaptureMode on page C-56 for a full description of these commands. ixSetPortPacketGroupMode / ixSetPacketGroupMode These commands send a message to the IxServer to set the receive mode of a single port or list of ports to Packet Group mode. This mode must be used when

6-18

Ixia Tcl Development Guide

High-Level and Utility API Description


Data Capture and Statistics

real-time latency metrics are to be obtained. This mode is mutually exclusive with the Capture receive mode. The format of these commands are: ixSetPortPacketGroupMode chassisID cardID portID [write] ixSetPacketGroupMode portList [write] where chassisID, cardID, and portID identifies a single port and portList identifies a number of ports. The write argument will commit the settings to the hardware immediately. Refer to ixSetPortPacketGroupMode on page C-66 and ixSetPacketGroupMode on page C-60 for a full description of these commands. ixClearTimeStamp The ixClearTimeStamp command sends a message to the IxServer to synchronize the timestamp on a group of chassis. This feature is useful for calculating latency on ports across chassis. The format of this command is: ixClearTimeStamp portList where portList identifies a number of ports. Refer to ixClearTimeStamp on page C-17 for a full description of this command. ixClearPortStats / ixClearStats These commands clear all of the statistics counters on a single port or list of ports. The format of these commands is: ixClearPortStats chassisID cardID portID ixClearStats portList where chassisID, cardID, and portID identifies a single port and portList identifies a number of ports. Refer to ixClearPortStats on page C-14 and ixClearStats on page C-15 for a full description of these commands. ixResetSequenceIndex / ixResetPortSequenceIndex These commands send a message to the IxServer to reset the sequence index of a single port or a list of ports. The format of these commands are: ixResetPortSequenceIndex chassisID cardID portID [write] ixResetSequenceIndex portList [write] where chassisID, cardID, and portID identifies a single port and portList identifies a number of ports. The write argument will commit the settings to the hardware immediately.

Ixia Tcl Development Guide

6-19

High-Level and Utility API Description


Data Capture and Statistics

Refer to ixResetSequenceIndex on page C-54 and ixResetPortSequenceIndex on page C-53 for a full description of these commands.

Capture Data

ixStartPortCapture / ixStartCapture / ixStopPortCapture / ixStopCapture These commands start and stop port capture on a single port or on a group of ports. The format of these commands is: ixStartPortCapture chassisID cardID portID ixStartCapture portList ixStopPortCapture chassisID cardID portID ixStopCapture portList where chassisID, cardID, and portID identify a single port and portList identifies a number of ports. Refer to ixStartPortCapture on page C-84, ixStartCapture on page C-74, ixStopPortCapture on page C-110 and ixStopCapture on page C-100 for complete descriptions of these commands. ixStartPortPacketGroups / ixStartPacketGroups / ixStopPortPacketGroups / ixStopPacketGroups These commands start and stop calculation of real-time latency metrics on a single port or on a group of ports. The minimum, maximum and average latencies will be calculated for each packet group ID (PGID). The format of these commands is: ixStartPortPacketGroups chassisID cardID portID ixStartPacketGroups portList ixStopPortPacketGroups chassisID cardID portID ixStopPacketGroups portList where chassisID, cardID, and portID identifies a single port and portList identifies a number of ports. Refer to ixStartPacketGroups on page C-82, ixStartPacketGroups on page C-82, ixStopPortPacketGroups on page C-114 and ixStopPacketGroups on page C-108 for complete descriptions of these commands.

Statistics

ixCollectStats This command gathers the same specified statistic from a number of ports and places the results in a return array. The format of this command is: ixCollectStats portList statName RxStats TotalStats

6-20

Ixia Tcl Development Guide

High-Level and Utility API Description


Data Capture and Statistics

where portList identifies a number of ports to collect statistics from, statName is the name of the statistic to collect, RxStats is the returned array of statistics and TotalStats is the returned total number of frames. statName must match one of the standard options defined in the stat command (see stat on page A-262). RxStats is an array whose indices are the ports over which the statistics were collected. Note that the RxStats indices are separated by commas and not spaces as in other array references used with maps. Also recall that most of the statistics collected are 64-bit values, as indicated in the stat command. Calculations on these values should be performed using the mpexpr command. Refer to ixCollectStats on page C-19 for a full description of this command.

Ixia Tcl Development Guide

6-21

High-Level and Utility API Description


Protocol Server

Protocol Server
Various features are controlled by a set of port software called the protocol server. The protocol server understand and deals with high-level protocols. The commands in this section are: Check for Installed Software ixUtils isArpInstalled / isBgpInstalled / isIgmpInstalled / isIsisInstalled / isOspfInstalled / isRipInstalled / isRsvpInstalled ARP ixEnableArpResponse / ixEnablePortArpResponse ixDisableArpResponse / ixDisablePortArpResponse ixClearPortArpTable / ixClearArpTable ixTransmitPortArpRequest / ixTransmitArpRequest IGMP ixTransmitIgmpJoin ixTransmitIgmpLeave BGP4 ixStartBGP4 / ixStopBGP4 OSPF ixStartOSPF / ixStopOSPF ISIS ixStartISIS / ixStopISIS RIP ixStartRIP / ixStopRIP RSVP ixStartRSVP / ixStopRSVP

Check for Installed Software

The two commands in this section allow a Tcl program to check if optional routing protocol support software is installed. ixUtils can be used for all of these functions, or isXXXInstalled may be used for each protocol. ixUtils ixUtils is called with one of the following arguments to determine if software has been installed: isArpInstalled isBgpInstalled

6-22

Ixia Tcl Development Guide

High-Level and Utility API Description


Protocol Server

isIgmpInstalled isIsisInstalled isOspfInstalled isRipInstalled isRsvpInstalled isArpInstalled / isBgpInstalled / isIgmpInstalled / isIsisInstalled / isOspfInstalled / isRipInstalled / isRsvpInstalled These commands are wrappers which provide access to the corresponding ixUtils isXXXInstalled usage.

ARP

All of the commands in this section require that the ip command be used on the port(s) before any ARP command. ixEnableArpResponse / ixEnablePortArpResponse These commands enable ARP response to ARP requests on a single port or list of ports. The format of these commands is: ixEnablePortArpResponse chassisID cardID portID ixEnableArpResponse portList where chassisID, cardID, and portID identifies a single port and portList identifies a number of ports. Refer to ixEnableArpResponse on page C-31 and ixEnablePortArpResponse on page C-33 for a full description of these commands. ixDisableArpResponse / ixDisablePortArpResponse These commands disable ARP response to ARP requests on a single port or list of ports. The format of these commands is: ixDisablePortArpResponse chassisID cardID portID ixDisableArpResponse portList where chassisID, cardID, and portID identifies a single port and portList identifies a number of ports. Refer to ixDisableArpResponse on page C-26 and ixDisablePortArpResponse on page C-28 for a full description of these commands. ixClearPortArpTable / ixClearArpTable These commands clear all of the statistics counters on a single port or list of ports. The format of these commands is: ixClearPortArpTable chassisID cardID portID

Ixia Tcl Development Guide

6-23

High-Level and Utility API Description


Protocol Server

ixClearArpTable portList where chassisID, cardID, and portID identifies a single port and portList identifies a number of ports. Refer to ixClearPortStats on page C-14 and ixClearStats on page C-15 for a full description of these commands. ixTransmitPortArpRequest / ixTransmitArpRequest These commands signal the protocol server to start transmission of Arp requests as indicated through the arpServer command on a single port or list of ports. The format of these commands is: ixTransmitPortArpRequest chassisID cardID portID ixTransmitArpRequest portList where chassisID, cardID, and portID identifies a single port and portList identifies a number of ports. Refer to ixTransmitPortArpRequest on page C-130 and ixTransmitArpRequest on page C-124 for a full description of these commands.

IGMP

ixTransmitIgmpJoin This command sends a message to the IxServer to start transmission of IGMP membership messages for a list of ports. The format of these commands is: ixTransmitIgmpJoin portList [groupId] where portList identifies a number of ports and groupId is the optional group ID number to use (101064 is the default). Refer to ixTransmitIgmpJoin on page C-126 for a full description of this command. ixTransmitIgmpLeave This command sends a message to the IxServer to start transmission of IGMP membership leave messages for a list of ports. The format of these commands is: ixTransmitIgmpLeave portList [groupId] where portList identifies a number of ports and groupId is the optional group ID number to use (101064 is the default). Refer to ixTransmitIgmpLeave on page C-128 for a full description of this command.

6-24

Ixia Tcl Development Guide

High-Level and Utility API Description


Protocol Server

BGP4

ixStartBGP4 / ixStopBGP4 These commands start and stop the BGP4 component of the Protocol Server for a list of ports. The format of these commands is: ixStartBGP4 portList ixStopBGP4 portList Refer to ixStartBGP4 on page C-72 and ixStopBGP4 on page C-98 for a full description of these commands.

OSPF

ixStartOSPF / ixStopOSPF These commands start and stop the OSPF component of the Protocol Server for a list of ports. The format of these commands is: ixStartOSPF portList ixStopOSPF portList Refer to ixStartOspf on page C-80 and ixStopOspf on page C-106 for a full description of these commands.

ISIS

ixStartISIS / ixStopISIS These commands start and stop the ISIS component of the Protocol Server for a list of ports. The format of these commands is: ixStartISIS portList ixStopISIS portList Refer to ixStartIsis on page C-78 and ixStopIsis on page C-104 for a full description of these commands.

RIP

ixStartRIP / ixStopRIP These commands start and stop the RIP component of the Protocol Server for a list of ports. The format of these commands is: ixStartRIP portList ixStopRIP portList Refer to ixStartRip on page C-90 and ixStopRip on page C-117 for a full description of these commands.

RSVP

ixStartRSVP / ixStopRSVP These commands start and stop the RSVP component of the Protocol Server for a list of ports. The format of these commands is: ixStartRSVP portList

Ixia Tcl Development Guide

6-25

High-Level and Utility API Description


Protocol Server

ixStopRSVP portList Refer to ixStartRsvp on page C-92 and ixStopRsvp on page C-119 for a full description of these commands.

6-26

Ixia Tcl Development Guide

High-Level and Utility API Description


Console Output and Logging

Console Output and Logging


The commands in this section relate to textual output to the console and to the operation of the log file. The commands covered in this section are: Console Output ixPuts Logging logOn / logOff logMsg logger

Console Output

ixPuts Refer to ixPuts on page C-52 for a full description of this command. The ixPuts command outputs its arguments to the console window with or without a newline. The format of the command is: ixputs [-nonewline] arg... where -nonewline indicates that a newline should not be appended to the output and arg... is any number of arguments, which will be concatenated and printed.

Logging

logOn / logOff These commands enable and disable logging. The logOn command also defines the name of the log file. The format of these commands are: logOn filename logOff where filename is the name of the log file to be created. Refer to logOn on page B-14 and logOff on page B-13 for a full description of these commands. logMsg The logMsg command outputs its arguments to the log file with or without a newline. The format of the command is: logMsg [-nonewline] arg... where -nonewline indicates that a newline should not be appended to the output and arg... is any number of arguments, which will be concatenated and logged. Refer to logMsg on page B-12 for a full description of this command.

Ixia Tcl Development Guide

6-27

High-Level and Utility API Description


Console Output and Logging

logger The logger command is the underlying command behind logOn, logOff, logMsg and ixInitialize. The standard options and sub-commands of this command are:
TABLE 6-4. logger

Options

Member fileBackup logFileName directory

Usage If this flag is true, then the current log file will be renamed before a new one is created. The name of the log file; default is default.log. The name of the log directory; default is

c:\Program Files\ixia\TclScripts\Logs.
TABLE 6-5. logger

Sub-Commands
Usage Writes a message to the log file. Turns off logging. Turns on logging. Shows the current logging parameters.

Member message off on show

Refer to logger on page B-15 for a full description of this command.

6-28

Ixia Tcl Development Guide

ACCM ACK

A
See Asynchronous Control Character Mask. An acknowledge signal or message. For IP session establishment, an ACK message is sent in response to a SYN message. The Internet protocol used to map an IP address to a MAC address. Defined in RFC 826. An Ixia hardware capability for some POS cards that allows an interleaved set of streams to be sent to the DUT. Alarm Indication Signal used in POS transmissions. Included as a setting in the K2 byte. See Application Programming Interface. A set of supplied program modules and environment used to provide support in building a software application.

Address Resolution Protocol Advanced Stream Scheduler AIS-L

Glossary

API Application Programming Environment ARP APS AS Asynchronous Control Character Mask Asynchronous Interrupt Asynchronous Region Automatic Protection Switching Auto-Negotiation

See Address Resolution Protocol. See Automatic Protection Switching. See Autonomous System and Available Seconds. A 32-bit mask that represents control characters with ASCII values 0 through 31. If a bit is set to 1, PPP encodes the corresponding control character before sending it over the link. An event that can happen at any time. In the Ixia system, an asynchronous interrupt can trigger the transmission of an asynchronous region. A set of streams which can be triggered and transmitted at any time. A technique used in Packet over Sonet networks to switch working channels to backup protection channels. The algorithm that allows two devices at either end of a link segment to negotiate common data service functions.

Ixia Tcl Development Guide

7-1

7
Autonomous System 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 numbers called ASNs (autonomous system numbers) which are key to inter-domain routing During PoS data reception, the seconds during which the block state was in an available condition; generally error free for 10 seconds or more.

Available Seconds

B
Base Station In wireless networks, the non-mobile part of the connection. The base station is responsible for sending and receiving data to Mobile Stations and wide-area networks. See Bit Error Rate Testing. Bit Interleaved Parity errors found in POS circuits. BIP errors can occur as Section, Line or Parity Errors. An OSI Layer 1/2 test in which low level data integrity is tested. See Border Gateway Protocol. Bootstrap Protocol. Protocol used by a network node to determine the IP address of its Ethernet interfaces, in order to affect network booting. The principal protocol used along the Internet backbone and within larger organizations Bridge Protocol Data Unit. A spanning-Tree Protocol hello packet that is sent out at configurable intervals to exchange information among bridges in the network. See Base Station. A counted number of data packets, each separated by an Inter-Packet Gap (IPG).

BERT BIP Errors

Bit Error Rate Testing BGP BOOTP

Border Gateway Protocol BPDU

BS Burst

C
C/C++ A pair of related computer programming languages. Ixia supplies an API for the use of C++ in test development. The CPE in a cable data system. The Cable Modem handles RF signals from the cable network and ethernet/USB signals on the local network. The central office equipment in a cable data network. The CMTS handles RF signals form the cable network and ethernet signals to the wide-area network.

Cable Modem

Cable Modem Termination System

7-2

Ixia Tcl Development Guide

Capture Capture Buffer

A basic receive modeas opposed to packet group mode. A memory area associated with each port. Data is captured after the Capture Trigger is satisfied and the Capture Filter allows data to be recorded. A set of conditions that determine which data is recorded in a ports capture buffer. A set of conditions that determine which when data is starts to record in a ports capture buffer. See Card Module. A plug-in card that fits within an Ixia Chassis and contains one or more ports. A feature of the Ixia User Defined Fields that allows counting to continue from previous streams. Code-Division Multiple Access. A technique used in cellular phone/data systems to allow multiple coded transmissions on the same frequency range. An Ixia chassis, containing a card frame into which Card Modules are plugged in. A Chassis also contains an Intel processor (or equivalent), disk and network adapter. A transmission option for subscribers of symmetrical services. Channelized service allows a subscriber to assign one device (such as a PC) to a DS0 channel, resulting in many devices being able to transmit and receive simultaneously at 64 kbps. A set of Chassis connected together with special cables such that ports in different chassis may initiate transmission (nearly) simultaneously. A value calculated from packet data which, when included with the packet, may be used to guarantee the validity of received data. A Cisco proprietary version of Frame Relay. In C++ programming, the definition of a set of related data members and subroutine methods used to implement operations of a particular type or on a particular set of data. See Cable Modem. See Cable Modem Termination System. A condition that results from concurrent transmissions from multiple sources.

Capture Filter

Capture Trigger

Card Card Module Cascading UDF

CDMA

Chassis

Channelized

Chassis Chain

Checksum

Cisco Frame Relay Class

CM CMTS Collision

Ixia Tcl Development Guide

7-3

7
Collision Backoff An algorithm which each transmitting party uses to determine when to attempt a retransmit in the event of a collision. A transmission option for subscribers of symmetrical services. Concatenated service applies all of the bandwidth to a single stream. See Cyclic Redundancy Check. An error-checking technique in which the frame recipient calculates a remainder by dividing the frame contents by a prime binary divisor and compares the calculated remainder to a value stored in the frame by the sending node.

Concatenated

CRC Cyclic Redundancy Check

D
DA Datagram (IP) See Destination Address. Fundamental unit of information passed across the Internet. Contains source and destination addresses along with data and a number of fields that define such things as the length of the datagram, the header checksum, and flags to indicate whether the datagram can be (or was) fragmented. Layer 2 of the OSI reference model. Provides reliable transit of data across a physical link. The data-link layer is concerned with physical addressing, network topology, line discipline, error notification, ordered delivery of frames, and flow control. The IEEE divided this layer into two sublayers: the MAC sublayer and the LLC sublayer. Sometimes simply called link layer. In IP routing procedures, the IP address of a routing device to send all packets that are not otherwise directed by a routing protocol. In Ixia testing, the DUT is often the Default Gateway. An IP header bit that indicates that the sender is interested in minimizing packet delay. The networking or other device that is being tested through a combination of input data and sensed output data. A Data Link Layer field that indicates the MAC level destination of the packet. Dynamic Host Control Protocol. DHCP provides a mechanism for allocating IP addresses dynamically so that addresses can be reused when hosts no longer need them. A bit-oriented Ethernet header which uses bit stuffing. The system used in the Internet for translating names of network nodes into addresses.

Data Link Layer

Default Gateway

Delay (IP)

Device Under Test

Destination Address DHCP

DIX Domain Name System

7-4

Ixia Tcl Development Guide

DNS Dribble Bit Error

See Domain Name System. An error condition that occurs when additional data follows the FCS at the end of a packet. The mode of an Ethernet port - either half-duplex or full-duplex. See Device Under Test.

Duplex Mode DUT

E
EFS Egress Router Errored Blocks Error Free Seconds See Error Free Seconds. In MPLS routing networks, the router by which the network was entered. In POS, the number of blocks in which one or more bits are in error. For PoS received data, the number of one-second periods for which no bit error or defect was detected. For PoS received data, the number of one-second periods with one or more errored blocks or at least on defect. See errored seconds. A baseband LAN specification invented by Xerox Corporation and developed jointly by Xerox, Intel, and Digital Equipment Corporation. Ethernet networks use run over a variety of cable types at 10/100/1000 Mbps. Ethernet is similar to the IEEE 802.3 series of standards.

Errored Seconds

ES Ethernet

F
Farm FCS Filter FIN See Server Farm. See Frame Check Sequence. See Capture Filter. A TCP packet with the FIN bit set. This is used by one party in a connection to end a TCP connection. A TCP packet with the FIN and ACK bits set. This is used by a party in a connection to acknowledge the conclusion of a connection. See Frame Identity Record.

FIN-ACK

FIR

Ixia Tcl Development Guide

7-5

7
Flags (IP) Flow A 3-bit flag of the IP header that deals with IP fragments. A means of programming the Ixia transmit hardware so as to allow thousands of unique packets. These packets are pre-generated in software. Field Programmable Gate Arrays. These are programmable elements of the Ixia chassis and cards, downloaded by IxServer as needed. A set of data formatted according to a data link standard, such as Ethernet or 802.3. Also referred to as a packet. Extra characters added to a frame for error control purposes. See CRC.

FPGA

Frame

Frame Check Sequence Frame Identity Record

An Ixia port capability that allows additional data to inserted at the end of the data part of a packet. This data can be used to locate the source of the frame when the frame is received in a capture buffer A high-speed, packet-mode data communications protocol based on ITU-T recommendation I.122 and the link access procedure on the D channel (LAPD) specification. It is specifically designed for transport over today's reliable highspeed digital facilities. The overall size of the frame, including the FCS. The ability of a communications device to both transmit and receive at the same time.

Frame Relay

Frame Size Full Duplex

G
GBIC An input/output device that plugs into a Gigabit ethernet port, linking the module port with the fiber-optic network A network operating at 1000 Mbps. The Global Positioning System is a "constellation" of 24 well-spaced satellites that orbit the Earth and make it possible for people with ground receivers to pinpoint their geographic location. An additional benefit of GPS is the ability to derive a very accurate time-of-day. See Global Positioning System.

Gigabit Global Positioning System

GPS

H
HAL Hardware Abstraction Layer. A layer of software used to isolate the user input software from the actual hardware control.

7-6

Ixia Tcl Development Guide

Half Duplex

The characteristic of a communications device that it can only transmit or receive data. High bits of Source Address. The high order 24 bits of an ISL packets source address.

HSA

I
IBG IEEE 802.3 See Inter-Burst Gap. IEEE LAN protocol that specifies an implementation of the physical layer and the MAC sublayer of the data link layer. (Internet Control Message Protocol) A network layer Internet protocol that reports errors and provides other information relevant to IP packet processing. Documented in RFC 792. An element of the IP header which identifies the datagram that the fragment belongs to. Internet Group Management Protocol. Used by IP hosts to report their multicast group memberships to an adjacent multicast router. In MPLS routing networks, the router by which the network was exited. The amount of time inserted between multiple bursts in a stream. In OSI routing, including IS-IS, an Intermediate System is a router or other device that forwards as opposed to generates or uses traffic. The amount of time inserted between consecutive packets in a burst. The amount of time preceding each stream in a region. See IPv4 and IPv6. Internet Protocol version 4. The network layer protocol in the TCP/IP stack offering a connection-less internetwork service. IP provides features for addressing, type-of-service specification, fragmentation and reassembly, and security. Defined in RFC 791. Also known as IPNG (IP Next Generation). A number of improvements over IPv4, including the use of 128-bit IP addresses. See Inter-Packet Gap.

ICMP

Identification (IP)

IGMP

Ingress Router Inter-Burst Gap Intermediate System

Inter-Packet Gap Inter-Stream Gap IP IPv4

IPv6

IPG

Ixia Tcl Development Guide

7-7

7
IPX Internetwork Packet Exchange. NetWare network layer (Layer 3) protocol used for transferring data from servers to workstations. See Intermediate System. An OSI/IP routing technique, Intermediate System to Intermediate System. I.e. router to router. See Inter-Stream Gap. Inter-Switch Link. A protocol used to inter-connect two VLAN capable ethernet switches. An Ixia device that features a GPS, rubidium oscillator and additional timing inputs. An IxClock is used in conjunction with another standard Ixia chassis. A software module that resides on an Ixia chassis and receives commands from Unix machines running ScriptMate or TCL-based code.

IS IS-IS

ISG ISL

IxClock

IxServer

J
Jitter The standard deviation of latency measurements.

K
K1 / K2 Two control bytes used in POS APS.

L
Label Switched Path In MPLS and RSVP-TE, a path through a number of routers from an ingress to an egress router that has been established through the use of labels used in Label Switching Routers. In MPLS and other label switching environments, routers that switch traffic based on labels. The delay between the time a device receives a frame and the time that frame is forwarded out the destination port. See Line Control Protocol. A particular type of BIP Errors found or inserted in POS systems. Implementation of a POS APS for an arrangement of nodes that are configured as a string

Label Switching Routers Latency

LCP Line Errors Linear APS

7-8

Ixia Tcl Development Guide

Line Control Protocol Line Speed Link State Advertisement Load Balancing Loopback

A part of the PPP protocol used to control the communications line. For 10/100/1000 Mbps ports, the choice of which speed is selected. An element of an OSPF message that indicates the state of a routers link, including additional attributes. See Server Load Balancing. The condition in which a ports transmitter and receiver are connected together to test basic port operation. See Link State Advertisement. See Label Switched Path. See Label Switching Routers.

LSA LSP LSR

M
MAC Magic Number Media Access Control see Media Access Control. A PPP negotiation feature used primarily to detect looped connections. The data link sublayer that is responsible for transferring data to and from the Physical Layer. In C++ programming, a data item associated with a Class. In C++ programming, a subroutine associated with a Class. Media Independent Interface. A set of data registers which control the operation of the PHY. In a wireless network, the mobile component of the system. It deals with CDMA signal to ethernet signal translation. Multi-protocol layered switching. A protocol for controlling wide area routing. See Mobile Station. Multicast is communication between a single sender and multiple receivers on a network. Multicast addresses are assigned from the 224.*.*.* range.

Member Method MII Registers

Mobile Station

MPLS MS Multicast

Ixia Tcl Development Guide

7-9

7
N
NCP Network Layer See Network Control Protocol. Layer 3 of the OSI reference model. This layer provides connectivity and path selection between two end systems. The network layer is the layer at which routing occurs. A set of bits that indicates that part of an IP address that corresponds to the network number. A network mask must have a contiguous set of 1 from its MSB. An endpoint of a network connection or a junction common to two or more lines in a network. Nodes can be processors, controllers, or workstations. Node is sometimes used generically to refer to any entity that can access a network, and is frequently used interchangeably with device. That part of an IP address that corresponds to the network being addressed. Formed by anding the Network Mask with the IP address. Each Network Node has 64k connection endpoints called sockets that are used in IP communications. Half of a byte; four bits.

Network Mask

Network Node

Network Number

Network Socket

Nibble

O
Object Open Shortest Path First OSPF See Class. A set of messaging protocols that are used by routers located within a single Autonomous System (AS). See Open Shortest Path First.

P
Packet A logical grouping of information that includes a header containing control information and user data. Packets are most often used to refer to network layer units of data. The terms datagram, frame, message, and segment are also used to describe logical information groupings at various layers of the OSI reference model. A basic mode of Ixia ports which allows transmitted packets to be grouped by the inclusion of an ID within the packet. The Ixia receive hardware then has the ability to categorize latency for each distinct packet group.

Packet groups

7-10

Ixia Tcl Development Guide

Packet over Sonet Path Errors PDU PHY

The ability to include IP packets within SONET payloads. A particular type of BIP Errors found or inserted in POS systems. See Protocol Data Unit. Physical Layer entity. The PHY contains the functions that transmit, receive and manage the encoded signals that are impressed on and recovered from the physical medium. A protocol used to establish point to point connections. Most often used in dialup connections. PPP is also used in Packet Over Sonet connections and is simulated by Ixia ports. In the Ixia architecture, the element of a Card Module capable of transmitting and receiving network data. See Packet over Sonet. See Point to Point Protocol. An initial set of data preceding a packet. Data bytes all of the form 0xAA and is normally 8 bytes in length. The size of the preamble. A 3-bit field that indicates the type of service desired for a packet. A formal description of a set of rules and conventions that govern how devices on a network exchange information. An aspect of the Ixia Hardware that allows handling of IP to MAC mapping, BGP, OSPF, IGMP, IS-IS, RSVP and RIP testing. A set of repeatable data patterns that exhibits random distributions of bits.

Point to Point Protocol

Port

POS PPP Preamble

Preamble Size Precedence (IP) Protocol

Protocol Server

Pseudo-Random

Q
QoS Quality of Service See Quality of Service. A measure of performance for a transmission system that reflects its transmission quality and service availability. QoS flags are available in IP headers and may be set and measured with the Ixia system.

Ixia Tcl Development Guide

7-11

7
R
RDI-L Receive Mode Region Request Reverse Option Resource Reservation Protocol Traffic Engineering Ring APS Remote Defect Indicator. Included as a setting in the K2 byte. An Ixia ports basic mode of operationeither capture or packet group. In the Ixia architecture, a set of related Streams. An RSVP-TE option that requests that a complete list of routers be constructed by reverse message transmission. A subset of the entire RSVP protocol related to Traffic Engineering (TE). This protocol implements an assignment of labels from ingress to egress routers, with consideration for bandwidth and other QoS requirements. Ring APS signalling provides protection switching for bi-directional lineswitched rings. Ixia cards do not perform any Automatic Protection Switching between Ixia cards. APS may be forced on the cards under test by modifying the K1/K2 bytes sent from the Ixia port. Routing Information Protocol. The Internet gateway protocol supplied with UNIX BSD systems. The most common IGP in the Internet. RIP uses hop count as a routing metric. An Ixia technique by which packets are reflected back to their source and the round trip time measured. In routing protocols, a unique number associated with the router. Often one of its IP addresses. See Request Reverse Option. See Resource Reservation Protocol Traffic Engineering.

RIP

RoundTrip Flows

Router ID

RRO RSVP-TE

S
SA ScriptGen SDK Section Errors Server Farm See Source Address. An Ixia tool for generating Tcl setup scripts from active port configurations. See Application Programming Interface. A particular type of BIP Errors found or inserted in POS systems. A set of servers delivering the same information content.

7-12

Ixia Tcl Development Guide

Server Load Balancing

A set of tests for SLB switches, which route incoming traffic to servers in a server farm. See Severely Errored Seconds. For PoS received traffic, the number of one-second periods which contain 30% errored blocks or at least one defect. See Start Field Descriptor. A protocol use by applications to contact a time server, in order to obtain current time-of-day data. See Server Load Balancing. In the Ixia architecture, the amount of data saved in a ports capture buffer, per packet. See Application Programming Interface.

SES Severely Errored Seconds SFD Simple Network Transport Protocol SLB Slice Size

Software Development Kit Source Address SNTP Speed Selection Split Horizon

A Data Link Layer field that indicates the MAC level source of the packet. See Simple Network Transport Protocol. For 10/100/1000 Mbps ports, the choice of which speed is selected. A technique used in RIP routers whereby the RIP router does not absorb received routes into its own routing table. See Spatial Reuse Protocol. A Cisco-developed MAC-layer protocol that enables IP routers to be connected directly to optical ring topologies. Interconnecting devices connect directly to fiber via SRP modules without the need for Sonet equipment. A single byte with a value of 0xAD that separates the preamble of a packet from its header. In the Ixia architecture, a set of transmitted data that consists of a number of bursts, each burst containing a number of packets. A TCP packet with the SYN bit set. This is the start of a TCP session establishment A TCP packet with the SYN and ACK bit set. This is the acknowledgement from the second part of the start of communications.

SRP Spatial Reuse Protocol

Start Field Descriptor

Stream

SYN

SYN-ACK

Ixia Tcl Development Guide

7-13

7
T
Tcl Short for Tool Command Language. Tcl is an interpreted programming language. Ixia supplies an API to use Tcl in network testing. Transmission Control Protocol. A connection-oriented transport layer protocol that provides reliable full-duplex data transmission. TCP is part of the TCP/IP protocol stack. See RSVP-TE. An element of the IP header that indicates how many more hops a packet is allowed to take. An element of the FIR. See Frame Identity Record. See Precedence (IP). Layer 4 of the OSI reference model. This layer is responsible for reliable network communication between end nodes. The transport layer provides mechanisms for the establishment, maintenance, and termination of virtual circuits, transport fault detection and recovery, and information flow control. See Capture Trigger. See Time to Live (IP). In RSVP-TE, an identification of a flow within a LSP (Label Switched Path). A generic type of many Ixia modules with limited capabilities.

TCP

TE Time to Live (IP)

Time Stamp TOS (IP) Transport Layer

Trigger TTL (IP) Tunnel ID Type-3

U
UAS UDF UDP See Unavailable Seconds. See User Defined Fields. User Datagram Protocol. A connectionless transport layer protocol in the TCP/IP protocol stack. UDP is a simple protocol that exchanges datagrams without acknowledgments or guaranteed delivery, requiring that error processing and retransmission be handled by other protocols. UDP is defined in RFC 768. See User Defined Statistics. During PoS data reception, the seconds during which the block state was in an unavailable condition; generally an error condition within the last 10 seconds.

UDS Unavailable Seconds

7-14

Ixia Tcl Development Guide

Unicast Universal Serial Bus

Communication between a single sender and a single receiver over a network. USB (Universal Serial Bus) is a plug and play interface between a computer and add-on devices (such as audio players, joysticks, keyboards, telephones, scanners, and printers). The USB peripheral bus standard was developed by Compaq, IBM, DEC, Intel, Microsoft, NEC, and Northern Telecom and the technology is available without charge for all computer and device vendors. See Universal Serial Bus. In the Ixia Architecture, one of four 32-bit counters which can be configured in a number of ways in order to generate data patterns within packets. In the Ixia architecture, the ability of the user to define up to four statistics based on packet contents, errors and size.

USB User Defined Fields

User Defined Statistics

V
VLAN Virtual LAN. A technique by which a number of nodes on one or more networks form a virtual network.

W
Workspace A file on the workstation disk that stores the state of an IxExplorer session.

X Y Z

Ixia Tcl Development Guide

7-15

7-16

Ixia Tcl Development Guide

Appendix A:

IxTclHAL Commands

Ixia Tcl Development Guide

A-1

arp

NAME - arp
arp - configure the ARP parameters on a stream of a port. SYNOPSIS DESCRIPTION arp sub-command options The arp command is used to configure the ARP parameters on a stream of a port to transmit ARP frames. Any number of varying ARP frames may be generated.

STANDARD OPTIONS
destHardwareAddr

The MAC address of the interface receiving the ARP message. (default = 00 de bb 00 00 01) Indicates how the destHardwareAddr field is to vary between consequtive frames. One of:
Option arpIdle arpIncrement arpDecrement arpContinuousIncrement Value 0 1 2 3 (default) no change increment by 1 for the count in destHardwareAddrRepeatCount. decrement by 1 for the count in destHardwareAddrRepeatCount. increment by 1 continuously. decrement by 1 continuously. Usage

destHardware AddrMode

arpContinuousDecrement 4

destHardwareAddr RepeatCount destProtocolAddr

Indicates the repeat count for the destHardwareAddrMode increment and decrement options. (default = 0) Protocol address of the station that is receiving the ARP message. (default = 127.0.0.1) Indicates how the destProtocolAddr field is to vary between consequtive frames. One of:
Option arpIdle arpIncrement arpDecrement arpContinuousIncrement Value 0 1 2 3 (default) no change increment by 1 for the count in destProtocolAddrRepeatCount. decrement by 1 for the count in destProtocolAddrRepeatCount. increment by 1 continuously. decrement by 1 continuously. Usage

destProtocolAddrMode

arpContinuousDecrement 4

destProtocolAddr RepeatCount hardwareAddrLength

Indicates the repeat count for the destProtocolAddrMode increment and decrement options. (default = 0) Read-Only. Number of bytes in the hardware address. (default = 6)

A-2

Ixia Tcl Development Guide

arp

miiaehardwareType

Read-Only. Indicates the hardware type that the physical layer of the network is using. Available option values are:
Option hwTypeEthernet hwTypeAmateur hwTypeProteon hwTypeChaos hwTypeIEEE hwTypeARCNET hwTypeHyperchannel hwTypeLocalTalk Value 1 3 4 5 6 7 8 11 Usage (default) Ethernet 10 Mb Amateur radio AX.25 Proteon ProNET token ring Chaos IEEE 802 networks ARCNET Hyperchannel LocalTalk

operation

The type of operation the ARP process is attempting. Available options are:
option arpRequest arpReply rarpRequest rarpReply Value 1 2 3 4 (default) ARP request ARP reply or response RARP request RARP reply or response Usage

protocolAddrLength

Read-Only. Number of bytes that each of the protocol addresses, source and target, will contain in the ARP frame. (default = 4) Read-Only. Indicates the type of network protocol address the local network (or subnet) is using. (default = 0x0800) The MAC address of the interface sending the ARP message. (default = 00 de bb 00 00 00) Indicates how the sourceHardwareAddr field is to vary between consequtive frames. One of:
Option arpIdle arpIncrement arpDecrement arpContinuousIncrement Value 0 1 2 3 (default) no change increment by 1 for the count in sourceHardwareAddrRepeatCount. decrement by 1 for the count in sourceHardwareAddrRepeatCount. increment by 1 continuously. decrement by 1 continuously. Usage

protocolType sourceHardwareAddr sourceHardware AddrMode

arpContinuousDecrement 3

sourceHardware AddrRepeatCount sourceProtocolAddr sourceProtocol AddrMode

Indicates the repeat count for the sourceHardwareAddrMode increment and decrement options. (default = 0) Protocol address of the station that is sending the ARP message. (default =127.0.0.1) Indicates how the sourceProtocolAddr field is to vary between consequtive frames. One of:
Option arpIdle Value 0 (default) no change Usage

Ixia Tcl Development Guide

A-3

arp

Option arpIncrement ArpDecrement arpContinuousIncrement

Value 1 2 3

Usage increment by 1 for the count in sourceProtocolAddrRepeatCount. decrement by 1 for the count in sourceProtocolAddrRepeatCount. increment by 1 continuously. decrement by 1 continuously.

arpContinuousDecrement 3

sourceProtocolAddr RepeatCount

Indicates the repeat count for the sourceProtocolAddrMode increment and decrement options. (default = 0) The arp command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available. Returns the current value of the configuration option given by option. Option may have any of the values accepted by the arp command.

COMMANDS arp cget option

arp config option value Modify the configuration options of the arp. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for arp. arp decode capSlice [chasID cardID portID] Decodes a captured slice/frame into the arp variables. If not an arp frame, returns TCL_ERROR. May be used to determine if the captured frame is a valid arp frame. If chasID, cardID and portID are omitted, then packet offsets for Ethernet packets are used. Specific errors are:
No connection to a chassis The captured frame is not an ARP frame

arp get chasID cardID portID Gets the current configuration of the arp frame for port with id portID on card cardID, chassis chasID. from its hardware. Call this command before calling arp cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

arp set chasID cardID portID Sets the configuration of the arp in IxHAL for port with id portID on card cardID, chassis chasID by reading the configuration option values set by the arp config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user Configured parameters are not valid for this setting

arp setDefault Sets default values for all configuration options.

A-4

Ixia Tcl Development Guide

arp

EXAMPLES

package require IxTclHal # In this example, ports 1 and 2 of a card are directly connected together # Port 1 transmits an ARP request and looks at the response packet # Port 2 uses its address table and protocol server to respond to the arp # request # Connect to chassis and get chassis ID set host galaxy ixInitialize $host set chas [ixGetChassisID $host] set card 1 set txPort 1 set rxPort 2 set set set set txPortMAC rxPortMAC txIP rxIP {00 00 00 01 01 01} {00 00 00 01 01 02} {192.168.18.1} {192.168.18.2}

# Useful port lists set portList [list [list $chas $card $txPort] \ [list $chas $card $rxPort]] # Set up Transmit Port # Nothing special about the port setup port setFactoryDefaults $chas $card $txPort port setDefault # Stream: 1 packet to broadcast address stream setDefault stream config -numFrames 1 # A 1 packet stream cant go at 100% stream config -percentPacketRate 1 stream config -rateMode usePercentRate stream config -sa $txPortMAC # Broadcast arp request stream config -da {ff ff ff ff ff ff} stream config -dma stopStream protocol protocol protocol protocol setDefault config -name config -appName config -ethernetType

ipV4 Arp ethernetII

# Now set up the ARP request packet arp setDefault arp config -sourceProtocolAddr $txIP arp config -destProtocolAddr $rxIP arp config -operation arpRequest arp config -sourceHardwareAddr $txPortMAC arp config -destHardwareAddr {ff ff ff ff ff ff} arp set $chas $card $txPort stream set $chas $card $txPort 1 port set $chas $card $txPort # Set up Receive Port for automatic ARP response

Ixia Tcl Development Guide

A-5

arp

# Nothing special about the port setup port setFactoryDefaults $chas $card $rxPort port setDefault port set $chas $card $rxPort protocol setDefault protocol config -ethernetType

ethernetII

# Add an address table item for IP/MAC ipAddressTable setDefault ipAddressTableItem ipAddressTableItem ipAddressTableItem ipAddressTableItem setDefault config -fromIpAddress $rxIP config -fromMacAddress $rxPortMAC set

ipAddressTable addItem ipAddressTable set $chas $card $rxPort # Let the port protocolServer protocolServer protocolServer respond to arp requests setDefault config -enableArpResponse true set $chas $card $rxPort

# Commit to hardware ixWritePortsToHardware portList # Make sure link is up after 1000 ixCheckLinkState portList ixStartPortCapture $chas $card $txPort ixStartPortTransmit $chas $card $txPort after 1000 ixCheckPortTransmitDone $chas $card $txPort ixStopPortCapture $chas $card $txPort # Get the ARP response from the capture buffer captureBuffer get $chas $card $txPort if {[captureBuffer cget -numFrames] == 0} \ { ixPuts No packets received } \ else \ { # and extract just the returned address captureBuffer getframe 1 set data [captureBuffer cget -frame] set data [string range $data 84 94] ixPuts ARP response (IP in hex): $data }

SEE ALSO

ip

A-6

Ixia Tcl Development Guide

arpAddressTableEntry

NAME - arpAddressTableEntry
arpAddressTableEntry - configure the ARP address table entry parameters. SYNOPSIS DESCRIPTION arpAddressTableEntry sub-command options The arpAddressTableEntry command is used to configure the ARP address table entry parameters.

STANDARD OPTIONS
ipAddress macAddress

Read-only. IP address. (default = 0.0.0.0) Read-only. MAC address. (default = 00 00 00 00 00 00) The arpAddressTableEntry command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

COMMANDS

arpAddressTableEntry cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the arpAddressTableEntry command. arpAddressTableEntry config option value Modify the configuration options of the arpAddressTableEntry. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for arpAddressTableEntry. arpAddressTableEntry get Gets the current ARP table entry. Call this command before calling arpAddressTableEntry cget option value to get the value of the configuration option. arpAddressTableEntry setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under arpServer. arp

Ixia Tcl Development Guide

A-7

arpServer

NAME - arpServer
arpServer - configure the ARP server parameters. SYNOPSIS DESCRIPTION STANDARD OPTIONS
mode

arpServer sub-command options The arpServer command is used to configure the ARP server parameters.

Enable the ARP mode. Mode includes:


Option arpGatewayOnly Value 0 Usage (default) Sends a single ARP request to each gateway IP address using the first IP address found in the IP table entry as the source address Sends ARP requests using all of the addresses found in the IP address table as source addresses. Performs both the arpGatewayOnly and arpLearnOnly operations.

arpLearnOnly arpGatewayAndLearn

1 2

rate requestRepeatCount

Frame rate in frames per second. (default = 100) When mode is set to arpLearnOnly or arpGatewayAndLearn, each ARP request is repeated this number of times with request gaps dictated by rate. (default = 3) Number of retries. Valid range is 1 65535. (default = 3) The arpServer command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

retries

COMMANDS

arpServer cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the arpServer command. arpServer clearArpTable Clears the ARP table. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user Network problem between the client and chassis

arpServer config option value Modify the configuration options of the arpServer. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for arpServer.

A-8

Ixia Tcl Development Guide

arpServer

arpServer get chasID cardID portID Gets the current configuration of the arpServer frame for port portID on card cardID, chassis chasID from its hardware. This command should be called before arpServer cget option value to get the configuration option. Specific errors are:
No connection to a chassis Invalid port number

arpServer getEntry ipAddr Gets the entry with IP address ipAddr out of the ARP table. The data is available through the arpAddressTableEntry command. Specific errors are:
There is no arp table in the Arp Server There are no entries in the Arp Table The specified IP address is not in the Arp Table

arpServer getFirstEntry Gets the first entry out of the ARP table. The data is available through the arpAddressTableEntry command. Specific errors are:
There is no arp table in the Arp Server There are no entries in the Arp Table

arpServer getNextEntry Gets the next entry out of the ARP table. The data is available through the arpAddressTableEntry command. arpServer sendArpRequest chasID cardID portID Sends ARP request for port with id portID on card cardID, chassis chasID. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user Network problem between the client and chassis

arpServer set chasID cardID portID Sets the configuration of the arpServer in IxHAL for port with id portID on card cardID, chassis chasID by reading the configuration option values set by the arpServer config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user Configured parameters are not valid for this setting

arpServer setDefault Sets default values for all configuration options. EXAMPLES
package require IxTclHal # In this example, we assume that Card 1, ports 1 and 2 are directly # connected or through a L2 switch # Well set up IP address tables for both and start the arp server # on both ports. For each port, this should obtain the MAC address of # the other party.

Ixia Tcl Development Guide

A-9

arpServer

# Connect to chassis and get chassis ID set host galaxy ixInitialize $host set chas [ixGetChassisID $host] # Assume card to be used is in slot 1 set card 1 set port1 1 set port2 2 set portList [list \ [list $chas $card $port1] \ [list $chas $card $port2] \ ] # IP addresses set port1IP 148.0.0.1 set port2IP 148.0.0.2 # And MAC addresses set port1MAC {00 11 11 00 00 11} set port2MAC {00 11 11 00 00 22} # Configure Port 1 # Reset the port port setFactoryDefaults $chas $card $port1 port setDefault port set $chas $card $port1 # Set up IP table with our IP-MAC and Gateway (= port2) ipAddressTable setDefault ipAddressTable config -defaultGateway $port2IP ipAddressTableItem ipAddressTableItem ipAddressTableItem ipAddressTableItem ipAddressTableItem setDefault config -fromIpAddress $port1IP config -fromMacAddress $port1MAC config -numAddresses 1 set

ipAddressTable addItem ipAddressTable set $chas $card $port1 # Clear and set up the ARP server arpServer setDefault arpServer clearArpTable $chas $card $port1 arpServer set $chas $card $port1 # Now start the Protocol Server to allow arp responses protocolServer setDefault protocolServer config -enableArpResponse true protocolServer set $chas $card $port1 # Configure Port 2 # Reset the port port setFactoryDefaults $chas $card $port2 port setDefault port set $chas $card $port2 # Set up IP table with our IP-MAC and Gateway (= port1) ipAddressTable setDefault ipAddressTable config -defaultGateway $port1IP

A-10

Ixia Tcl Development Guide

arpServer

ipAddressTableItem ipAddressTableItem ipAddressTableItem ipAddressTableItem ipAddressTableItem

setDefault config -fromIpAddress $port2IP config -fromMacAddress $port2MAC config -numAddresses 1 set

ipAddressTable addItem ipAddressTable set $chas $card $port2 # Clear and set up the ARP server arpServer setDefault arpServer clearArpTable $chas $card $port2 arpServer set $chas $card $port2 # Now start the Protocol Server to allow arp responses protocolServer setDefault protocolServer config -enableArpResponse true protocolServer set $chas $card $port2 # Ready to go - send our configuration to the hardware ixWritePortsToHardware portList # And then tell each port to ARP for their respective gateways arpServer sendArpRequest $chas $card $port1 arpServer sendArpRequest $chas $card $port2 # Wait for ARPs to be serviced after 5000 # Port1: Get the ARP table, get the first entry and print the entry arpServer get $chas $card $port1 if {[arpServer getFirstEntry]} \ { ixPuts Port 1: No ARP table entries } arpAddressTableEntry get set ipi [arpAddressTableEntry cget -ipAddress] set maca [arpAddressTableEntry cget -macAddress] ixPuts Port 1: $ipi = $maca # Port2: Get the ARP table, get the first entry and print the entry arpServer get $chas $card $port2 if {[arpServer getFirstEntry]} \ { ixPuts Port 2: No ARP table entries } arpAddressTableEntry get set ipi [arpAddressTableEntry cget -ipAddress] set maca [arpAddressTableEntry cget -macAddress] ixPuts Port 2: $ipi = $maca

SEE ALSO

arp

Ixia Tcl Development Guide

A-11

bert

NAME - bert
bert - configure Packet over Sonet cards for Bit Error Rate Testing. SYNOPSIS DESCRIPTION bert sub-command options The bert command is used to configure the transmission and receive patterns for BERT testing. Deliberate errors may be inserted with the bertErrorGeneration command. Refer to Bit Error Rate Testing (BERT) on page 3-44 for a discussion on BERT testing in Ixia equipment.

STANDARD OPTIONS
enableInvertRxPattern

enable / disable enable / disable


rxPatternIndex

If txRxPatternMode is set to independent, this indicates that the expected receive pattern is to be inverted. (default = disable) If set, indicates that the transmitted pattern is to be inverted. (default = disable) If txRxPatternMode is set to independent, this indicates the expected receive pattern one of a set of predefined patterns:
Option bertPatternAllZero bertPatternUserDefined bertPattern2_11 bertPattern2_15 bertPattern2_20 bertPattern2_23 bertPattern2_31 bertPatternAutoDetect Value 8 10 12 13 14 15 11 17 Usage all zeroes are expected. alternating ones and zeroes are expected. the pattern indicated in rxUserPattern is expected. the 2^11 pattern as specified in ITU-T 0151 is expected. the 2^15 pattern as specified in ITU-T 0151 is expected. the 2^20 pattern as specified in ITU-T 0151 is expected. the 2^23 pattern as specified in ITU-T 0151 is expected. the 2^23 pattern as specified in ITU-T 0151 is expected. (default) the pattern is automatically detected by the receiver.

enableInvertTxPattern

bertPatternAlternatingOneZero 9

rxUserPattern

If the rxPatternIndex is set to user defined, then this is the expected pattern. If the pattern is shorter than the received data, then the pattern is repeated as necessary. (default = 00 00 00 00) Indicates the pattern to be transmitted one of a set of predefined patterns:
Option bertPatternAllZero Value 8 Usage all zeroes are transmitted. alternating ones and zeroes are transmitted.

txPatternIndex

bertPatternAlternatingOneZero 9

A-12

Ixia Tcl Development Guide

bert

Option bertPatternUserDefined bertPattern2_11 bertPattern2_15 bertPattern2_20 bertPattern2_23 bertPattern2_31

Value 10 12 13 14 15 11

Usage the pattern indicated in txUserPattern is transmitted. the 2^11 pattern as specified in ITU-T 0151 is transmitted. (default) the 2^15 pattern as specified in ITUT 0151 is transmitted. the 2^20 pattern as specified in ITU-T 0151 is transmitted. the 2^23 pattern as specified in ITU-T 0151 is transmitted. the 2^31 pattern as specified in ITU-T 0151 is transmitted.

txRxPatternMode

Indicates if transmit and receive patterns are tied together or not:


Option bertTxRxCoupled Value 0 Usage the rxPatternIndex, rxUserPattern and enabInvertRxPattern values are set from txPatternIndex, txUserPattern and enabInvertTxPattern. (default) transmit and receive patterns are set independently.

bertTxRxIndependent

txUserPattern

If the txPatternIndex is set to user defined, then this is the transmitted pattern. If the pattern is shorter than the packet data size, then the pattern is repeated as necessary. (default = 00 00 00 00) The bert command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

COMMANDS bert cget option

Returns the current value of the configuration option given by option. Option may have any of the values accepted by the bert command. bert config option value Modify the configuration options of the bert. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for bert. bert get chasID cardID portID Gets the current configuration of the bert for port with id portID on card cardID, chassis chasID. from its hardware. Call this command before calling bert cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

bert set chasID cardID portID Sets the configuration of the bert in IxHAL for port with id portID on card cardID, chassis chasID by reading the configuration option values set by the bert config option value command. Specific errors are:
No connection to a chassis

Ixia Tcl Development Guide

A-13

bert

Invalid port number The port is being used by another user Bert is not supported for this port type (PoS only) Configured parameters are not valid for this setting

bert setDefault Sets default values for all configuration options. EXAMPLES

package require IxTclHal # Connect to chassis and set host localhost ixInitialize $host set chas [ixGetChassisID # Assuming that an OC48c set card 30 set portList [list [list get chassis ID

$host] BERT card is in slot 30 $chas $card 1]]

# Check for missing card if {[card get $chas $card] != 0} \ { ixPuts Card $card does not exist exit } # Get the type of card and check if its the correct type set cardType [card cget -type] if {[port isValidFeature $chas $card 1 portFeatureBert] == 0} \ { ixPuts Card $card does not have Bert capability return 1 } # Set the options to default values bert setDefault # In this example, well couple the transmit and receive side # To simulate the port connected to a device which sends its data # back to the port bert config -txRxPatternMode bertTxRxCoupled # Select inverted 2^20 pattern to transmit bert config -txPatternIndex bertPattern2_20 bert config -enableInvertTxPattern enable bert set $chas $card 1 ixWritePortsToHardware portList # Now we need to send a start transmit to the port to gather statistics # and then read the statistics ixStartPortTransmit $chas $card 1 after 1000 # Stop statistics gathering ixStopPortTransmit $chas $card 1 # Fetch the number of bits received stat get statBertBitsReceived $chas $card 1 set received [stat cget -bertBitsReceived] ixPuts $received bits were received after 1 second

A-14

Ixia Tcl Development Guide

bert

# Bert error generation example bertErrorGeneration setDefault # Set for 10^4 errors bertErrorGeneration config -errorBitRate bert_1e4 bertErrorGeneration set $chas $card 1 ixWritePortsToHardware portList # Enable statistics gathering ixStartPortTransmit $chas $card 1 # Send the error continously for 10 seconds bertErrorGeneration startContinuousError $chas $card 1 after 10000 bertErrorGeneration stopContinuousError $chas $card 1 ixStopPortTransmit $chas $card 1 # And get the number of errored bits stat get statBertBitErrorsReceived $chas $card 1 set received [stat cget -bertBitErrorsReceived] ixPuts $received bit errors were received after 10 seconds

SEE ALSO

bertErrorGeneration

Ixia Tcl Development Guide

A-15

bertErrorGeneration

NAME - bertErrorGeneration
bertErrorGeneration - configure the BERT Error Generation parameters on a Packet over Sonet port of a card on a chassis. SYNOPSIS DESCRIPTION bertErrorGeneration sub-command options The bertErrorGeneration command is used to configure the insertion of deliberate errors on a port. The port must previously have been setup using the bert command. Refer to Bit Error Rate Testing (BERT) on page 3-44 for a discussion on BERT testing in Ixia equipment.

STANDARD OPTIONS
bitMask

A 32-bit mask, expressed as a list of four one-byte elements, which indicates which bit in a 32-bit word is to be errored. (default = 00000000 00000000 00000000 00000001) The number of times that the error is to be inserted. (default = 1) The number of bits between error insertions. (default = 32) The number of bits in the error insertion; this should be set to 32 or less. (default = 32) During continuous burst rate situations, this is the error rate. One of:
Option bert_1e2 bert_1e3 bert_1e4 bert_1e5 bert_1e6 bert_1e7 bert_1e8 bert_1e9 bert_1e10 bert_1e11 bert_UserDefined Value 0 1 2 3 4 5 6 7 8 9 10 Usage An error is inserted every 2^2 (4) bits. An error is inserted every 2^3 (8) bits. An error is inserted every 2^4 (16) bits. An error is inserted every 2^5 (32) bits. An error is inserted every 2^6 (64) bits. An error is inserted every 2^7 (128) bits. An error is inserted every 2^8 (256) bits. (default) An error is inserted every 2^9 (512) bits. An error is inserted every 2^10 (1024) bits. An error is inserted every 2^11 (2048) bits. An error is inserted every period bits.

burstCount burstPeriod burstWidth

errorBitRate

period

If errorBitRate is set to bert_UserDefined, then this is the number of bits between error insertions. (default = 1000000000)

A-16

Ixia Tcl Development Guide

bertErrorGeneration

COMMANDS

The bertErrorGeneration command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

bertErrorGeneration cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the bertErrorGeneration command. bertErrorGeneration config option value Modify the configuration options of the bertErrorGeneration. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for bertErrorGeneration. bertErrorGeneration get chasID cardID portID Gets the current configuration of the bertErrorGeneration for port with id portID on card cardID, chassis chasID. from its hardware. Call this command before calling bertErrorGeneration cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

bertErrorGeneration insertSingleError chasID cardID portID Inserts a single error into the BERT stream as specified by the STANDARD OPTIONS. Specific errors are:
No connection to a chassis Invalid port number

bertErrorGeneration set chasID cardID portID Sets the configuration of the bertErrorGeneration in IxHAL for port with id portID on card cardID, chassis chasID by reading the configuration option values set by the bertErrorGeneration config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user Bert is not supported for this port type (PoS only) Configured parameters are not valid for this setting

bertErrorGeneration setDefault Sets default values for all configuration options. bertErrorGeneration startContinuousError chasID cardID portID Continuously inserts errors into the BERT stream, as dictated by the STANDARD OPTIONS. Errors are inserted once every 2^errorBitRate bits. Specific errors are:
No connection to a chassis Invalid port number Bert is not supported for this port type (PoS only)

Ixia Tcl Development Guide

A-17

bertErrorGeneration

bertErrorGeneration stopContinuousError chasID cardID portID Stops the continuous insertion of errors into the BERT stream. Specific errors are:
No connection to a chassis Invalid port number Bert is not supported for this port type (PoS only)

EXAMPLES SEE ALSO

See examples in bert. bert

A-18

Ixia Tcl Development Guide

bgp4AsPathItem

NAME - bgp4AsPathItem
bgp4AsPathItem - contains list based route attributes, including AS set and AS sequence. SYNOPSIS DESCRIPTION bgp4AsPathItem sub-command options The bgp4AsPathItem is used to construct AS Path related items. These items must be added to a route item through the use of the bgp4RouteItem addASPathItem command. Note: bgp4AsPathItem builds a list of AS Path segments each time you call it. If you do not want to add a list of AS Path segments, call bgp4RouteItem and use the sub-command clearASPathList before calling bgp4ASPathItem. Refer to BGP4 on page 3-19 for a discussion on BGP4 testing with Ixia equipment. Refer to bpg4AsPathItem on page 5-57 for an overview of this command. The optional BGP4 test package must be installed in order for this command to operate. STANDARD OPTIONS
asList asSegmentType

A Tcl list of AS numbers. (default = { }) The type of list. One of:


Option bgpSegmentAsSet bgpSegmentAsSequence bgpSegmentAsConfedSequence bgpSegmentAsConfedSet Value 1 2 3 4 AS Path Set AS Path Sequence AS Path Confederation Sequence AS Path Confederation Set Usage

enableAsSegment

Enables the generation of an AS segment, as described by asList and asSegmentType. (default = 0)

DEPRECATED STANDARD OPTIONS


asPathConfedSeqList asPathConfedSetList asPathSeqList asPathSetList enableAsPath ConfedSeq enableAsPath ConfedSet enableAsPathSeq enableAsPathSet enableAsSegment

Ixia Tcl Development Guide

A-19

bgp4AsPathItem

COMMANDS

The bgp4AsPathItem command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

bgp4AsPathItem cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the bgp4AsPathItem command. bgp4AsPathItem config option value Modify the configuration options of the bgp4AsPathItem. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for bgp4AsPathItem. bgp4AsPathItem setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under bgp4Server bgp4Server, bgp4InternalTable, bgp4ExternalTable, bgp4InternalNeighborItem, bgp4ExternalNeighborItem, bgp4RouteItem

A-20

Ixia Tcl Development Guide

bgp4ExternalNeighborItem

NAME - bgp4ExternalNeighborItem
bgp4ExternalNeighborItem - configure external BGP neighbors routes. SYNOPSIS DESCRIPTION bgp4ExternalNeighborItem sub-command options The bgpExternalNeighborItem holds information about a range of neighbor (routers). Bgp4RouteItems are added to the Neighbor with the addRouteItem command until all routeItems are added, then externalNeighborItems are added to the externalNeighborTable with the addExternalNeighbor command. Refer to BGP4 on page 3-19 for a discussion on BGP4 testing with Ixia equipment. Refer to bgp4InternalNeighborItem / bgp4ExternalNeighborItem on page 554 for an overview of this command. The optional BGP4 test package must be installed in order for this command to operate.

STANDARD OPTIONS
asNumMode

When rangeCount is greater than 1, this controls the AS Number assigned to additional routers. When set to 0, all simualted routers will have the same AS number as specified with the neighborAsNum option. When set to 1, routers will be assigned incrementing AS numbers starting at neighborAsNum. (default = 1) The DUT routers IP address. (default = 0.0.0.0) Indicates that this is an exterior neighbor router. This should not be changed from its default value of 1. (default = 1) Enables link flapping. (default = 0) Enables staggered start of neighbors. (default = 0) Configures the hold time for BGP sessions for this Neighbor. Keepalives are sent out every 1/3rd of this interval. With the devaul value of 90, KeepAlive messages will be sent every 30 seconds. (default = 90) Specifies the time, in seconds, that the simulated router will not respond or transmit. (default = 0) Specifies the time, in seconds, between flaps. (default = 0) The first IP address that will be used for simulated routers. (default = 0.0.0.0) The frequency with which UPDATE messages are sent to the DUT, expressed in milliseconds.. (default = 0) The AS number for the simulated router. (default = 0) The number of routers to be simulated. (default = 1) Duration of the start process, measured in seconds. (default = 0)

dutIpAddress enableExternal Neighbor enableLinkFlap enableStaggeredStart keepAliveTime

linkFlapDropTime

linkFlapTime localIPAddress messageTime

neighborASNum rangeCount staggeredStartPeriod

Ixia Tcl Development Guide

A-21

bgp4ExternalNeighborItem

COMMANDS

The bgp4ExternalNeighborItem command is invoked with the following subcommands. If no sub-command is specified, returns a list of all sub-commands available.

bgp4ExternalNeighborItem addRouteItem Adds the route range created with the bgp4RouteItem command to this router. Specific errors are:
Invalid route range parameters The route range already exists. (Delete an old entry before adding it again)

bgp4ExternalNeighborItem cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the bgp4ExternalNeighborItem command. bgp4ExternalNeighborItem clearRouteList Clears all of the route ranges associated with the command. bgp4ExternalNeighborItem config option value Modify the configuration options of the bgp4ExternalNeighborItem. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for bgp4ExternalNeighborItem. bgp4ExternalNeighborItem delRouteItem Deletes the currently accessed route item. bgp4ExternalNeighborItem getFirstRouteItem Gets the first route item from the list. The contents of the item are available in the bgp4RouteItem command. Specific errors are:
The neighbor does not have any route ranges

bgp4ExternalNeighborItem getNextRouteItem Gets the next route item in the list. The contents of the item are available in the bgp4RouteItem command. Specific errors are:
The neighbor does not have any more route ranges

bgp4ExternalNeighborItem setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under bgp4Server bgp4Server, bgp4InternalTable, bgp4ExternalTable, bgp4InternalNeighborItem, bgp4ExternalNeighborItem, bgp4RouteItem

A-22

Ixia Tcl Development Guide

bgp4ExternalTable

NAME - bgp4ExternalTable
bgp4ExternalTable - configure BGP4 external neighbors. SYNOPSIS DESCRIPTION bgp4ExternalTable sub-command options The bgp4ExternalTable holds all the simulated External neighbor routers. Items are added to this table using the addNeighborItem command. Refer to BGP4 on page 3-19 for a discussion on BGP4 testing with Ixia equipment. Refer to bgp4InternalTable / bgp4ExternalTable on page 5-54 for an overview of this command. The optional BGP4 test package must be installed in order for this command to operate.

STANDARD OPTIONS
enableActiveConnect

If enabled, a HELLO message is actively sent when BGP testing starts. Otherwise, the port waits for the DUT to send its HELLO message. (default = 1) The number of times to attempt an OPEN connection with the DUT routers before giving up. (default = 3) When retries are necessary, the delay in seconds between retries. (default = 120) The bgp4ExternalTable command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

retries

retryDelay

COMMANDS

bgp4ExternalTable addNeighborItem Adds a new neighbor range to the table. The neighbor range must have been configured using the bgp4ExternalNeighborItem command. Specific errors are:
bgp4server select hasnt been called The port is being used by another user The neighbor range parameters are invalid This neighbor range is already in the table

bgp4ExternalTable cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the bgp4ExternalTable command. bgp4ExternalTable clear Clears all the neighbor ranges and their route ranges from the table in the BGP4 server. Specific errors are:
bgp4server select hasnt been called The port is being used by another user

Ixia Tcl Development Guide

A-23

bgp4ExternalTable

bgp4ExternalTable config option value Modify the configuration options of the bgp4ExternalTable. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for bgp4ExternalTable. bgp4ExternalTable delNeighborItem Deletes the currently addressed neighbor range. Specific errors are:
bgp4server select hasnt been called This table is empty The port is being used by another user

bgp4ExternalTable get Gets the configuration of the bgp4ExternalTable in IxHAL for the port selected with the bgp4Server select command. Specific errors are:
bgp4server select hasnt been called

bgp4ExternalTable getFirstItem Gets the first neighbor range from the table. Specific errors are:
bgp4server select hasnt been called This table is empty

bgp4ExternalTable getNextItem Gets the next neighbor range from the table. Specific errors are:
bgp4server select hasnt been called There are no more neighbor ranges in the table

bgp4ExternalTable set Sets the configuration of the bgp4ExternalTable in IxHAL for the port selected with the bgp4Server select command, by reading the configuration option values set by the bgp4ExternalTable config option value command. Specific errors are:
bgp4server select hasnt been called Invalid configuration The port is being used by another user

bgp4ExternalTable setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under bgp4Server bgp4Server, bgp4InternalTable, bgp4ExternalTable, bgp4InternalNeighborItem, bgp4ExternalNeighborItem, bgp4RouteItem

A-24

Ixia Tcl Development Guide

bgp4InternalNeighborItem

NAME - bgp4InternalNeighborItem
bgp4InternalNeighborItem - configure internal BGP neighbors routers. SYNOPSIS DESCRIPTION bgp4InternalNeighborItem sub-command options The bgpInternalNeighborItem holds information about a range of neighbor (routers). Bgp4RouteItems are added to the Neighbor with the addRouteItem command until all routeItems are added, then internalNeighborItems are added to the internalNeighborTable with the addInternalNeighbor command. Refer to BGP4 on page 3-19 for a discussion on BGP4 testing with Ixia equipment. Refer to bgp4InternalNeighborItem / bgp4ExternalNeighborItem on page 554 for an overview of this command. The optional BGP4 test package must be installed in order for this command to operate.

STANDARD OPTIONS
dutIpAddress enableInternal Neighbor enableLinkFlap enableStaggeredStart keepAliveTime

The DUT routers IP address. (default = 0.0.0.0) Indicates that this is an interior neighbor router. This should not be changed from its default value of 1. (default = 1) Enables link flapping. (default = 0) Enables staggered start of neighbors. (default = 0) Configures the hold time for BGP sessions for this Neighbor. Keepalives are sent out every 1/3rd of this interval. With the devaul value of 90, KeepAlive messages will be sent every 30 seconds. (default = 90) Specifies the time, in seconds, that the simulated router will not respond or transmit. (default = 0) Specifies the time, in seconds, between flaps. (default = 0) The first IP address that will be used for simulated routers. (default = 0.0.0.0) The frequency with which UPDATE messages are sent to the DUT, expressed in milliseconds.. (default = 0) The number of routers to be simulated. (default = 1) Duration of the start process, measured in seconds. (default = 0) The bgp4InternalNeighborItem command is invoked with the following subcommands. If no sub-command is specified, returns a list of all sub-commands available.

linkFlapDropTime

linkFlapTime localIPAddress messageTime

rangeCount staggeredStartPeriod

COMMANDS

Ixia Tcl Development Guide

A-25

bgp4InternalNeighborItem

bgp4InternalNeighborItem addRouteItem Adds the route range created with the bgp4RouteItem command to this router. Specific errors are:
Invalid route range parameters The route range already exists. (Delete an old entry before adding it again)

bgp4InternalNeighborItem cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the bgp4InternalNeighborItem command. bgp4InternalNeighborItem clearRouteList Clears all of the route ranges associated with the command. bgp4InternalNeighborItem config option value Modify the configuration options of the bgp4InternalNeighborItem. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for bgp4InternalNeighborItem. bgp4InternalNeighborItem delRouteItem Deletes the currently accessed route item. bgp4InternalNeighborItem getFirstRouteItem Gets the first route item from the list. The contents of the item are available in the bgp4RouteItem command. Specific errors are:
The neighbor does not have any route ranges

bgp4InternalNeighborItem getNextRouteItem Gets the next route item in the list. The contents of the item are available in the bgp4RouteItem command. Specific errors are:
The neighbor does not have any more route ranges

bgp4InternalNeighborItem setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under bgp4Server bgp4Server, bgp4InternalTable, bgp4ExternalTable, bgp4InternalNeighborItem, bgp4ExternalNeighborItem, bgp4RouteItem

A-26

Ixia Tcl Development Guide

bgp4InternalTable

NAME - bgp4InternalTable
bgp4InternalTable - configure internal BGP neighbors. SYNOPSIS DESCRIPTION bgp4InternalTable sub-command options The bgp4InternalTable holds all the simulated internal neighbor routers. Items are added to this table using the addNeighborItem command. Refer to BGP4 on page 3-19 for a discussion on BGP4 testing with Ixia equipment. Refer to bgp4InternalTable / bgp4ExternalTable on page 5-54 for an overview of this command. The optional BGP4 test package must be installed in order for this command to operate.

STANDARD OPTIONS
enableActiveConnect

If enabled, a HELLO message is actively sent when BGP testing starts. Otherwise, the port waits for the DUT to send its HELLO message. (default = 1) The AS number for the routers participating in the simulated IBGP group. (default = 0) The number of times to attempt an OPEN connection with the DUT routers before giving up. (default = 0) When retries are necessary, the delay in seconds between retries. (default = 120) The bgp4InternalTable command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

localASNum

retries

retryDelay

COMMANDS

bgp4InternalTable addNeighborItem Adds a new neighbor range to the table. The neighbor range must have been configured using the bgp4ExternalNeighborItem command. Specific errors are:
bgp4server select hasnt been called The port is being used by another user The neighbor range parameters are invalid This neighbor range is already in the table

bgp4InternalTable cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the bgp4InternalTable command. bgp4InternalTable clear Clears all the neighbor ranges and their route ranges from the table in the BGP4 server. Specific errors are:
bgp4server select hasnt been called The port is being used by another user

Ixia Tcl Development Guide

A-27

bgp4InternalTable

bgp4InternalTable config option value Modify the configuration options of the bgp4InternalTable. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for bgp4InternalTable. bgp4InternalTable delNeighborItem Deletes the currently addressed neighbor range. Specific errors are:
bgp4server select hasnt been called This table is empty The port is being used by another user

bgp4InternalTable get Gets the configuration of the bgp4InternalTable in IxHAL for the port selected with the bgp4Server select command. Specific errors are:
bgp4server select hasnt been called

bgp4InternalTable getFirstItem Gets the first neighbor range from the table. Specific errors are:
bgp4server select hasnt been called This table is empty

bgp4InternalTable getNextItem Gets the next neighbor range from the table. Specific errors are:
bgp4server select hasnt been called There are no more neighbor ranges in the table

bgp4InternalTable set Sets the configuration of the bgp4InternalTable in IxHAL for the port selected with the bgp4Server select command, by reading the configuration option values set by the bgp4InternalTable config option value command. Specific errors are:
bgp4server select hasnt been called The port is being used by another user

bgp4InternalTable setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under bgp4Server bgp4Server, bgp4ExternalTable, bgp4InternalNeighborItem, bgp4ExternalNeighborItem, bgp4RouteItem

A-28

Ixia Tcl Development Guide

bgp4RouteItem

NAME - bgp4RouteItem
bgp4RouteItem - configure a route item, with attributes, to be associated with BGP neighbors. SYNOPSIS DESCRIPTION bgp4RouteItem sub-command options The bgp4RouteItem holds a route range that is associated with a bgp4InternalNeighborItem / bgp4ExternalNeighborItem. This command defines a set of routes and associated attributes. One attribute is supplied by a subsidiary command: bgp4ASPathItem, whose elements are included as a list associated with bgp4RouteItem. Refer to BGP4 on page 3-19 for a discussion on BGP4 testing with Ixia equipment. Refer to bgp4RouteItem on page 5-55 for an overview of this command. The optional BGP4 test package must be installed in order for this command to operate.

STANDARD OPTIONS
aggregatorASNum

The AS associated with the aggregator router ID in the AGGREGATOR attribute. (default = 0) Causes the AS field to be incremented for each neighbor session generated for the range of neighbor addresses in the AGGREGATOR attribute. (default = 1) The IP address of the router that aggregated two or more routes in the AGGREGATOR attribute. (default = 0.0.0.0) Determines the handling of the Local AS# in generated AS sequences and sets and AS Confederation Sequences and Sets. The options are:
Option bgpRouteAsPath NoInclude Value 0 Usage Do not include the Local AS#. When the route item is associated with an Internal router, this is only option availableand must be set in a bgp4RouteItem config -asPathSetMode 0. (default) Include the Local AS# in the AS Path Sequence only. Include the Local AS# in the AS Path Set only. Include the Local AS# in the AS Path Confederation Sequence only. Include the Local AS# in the AS Path Confederation Sequence only.

aggregatorIDMode

aggregatorIpAddress

asPathSetMode

bgpRouteAsPathInclude 1 AsSeq bgpRouteAsPathInclude 2 AsSet bgpRouteAsPathInclude 3 AsSeqConf bgpRouteAsPathInclude 4 AsSetConf

clusterList

A list of clusters that a particular route has passed through; associated with the CLUSTER attribute. Expressed as a TCL list {...}. (default = { }) A list of communities associated with the route entry; associated with the COMMUNITY attribute. (default = { })

communityList

Ixia Tcl Development Guide

A-29

bgp4RouteItem

enableAggregator

Generates an AGGREGATOR attribute using the aggregatorIpAddress, aggregatorASNum, and aggregatorIDMode. (default = 0) Enables the generation of AS Path related items (AsSet, AsSequence, AsConfedSet and AsConfedSequence) based on information added from the bgp4AsPathItem. (default = 0) Sets the attribute bit that indicates that the router has aggregated two or more prefixes in the AGGREGATOR attribute. (default = 0) Enables the generation of the CLUSTER attribute list based on information in clusterList. (default = 0) Enables the generation of a COMMUNIITY attribute list based on information in communityList. (default = 0) When set to 1, each router generates a different IP address range. a bgp4InternalNeighborItem or bgp4ExternalNeighborItem item must be configured with rangeCount > 1. When not enabled, each router will advertise the route range as is. When enabled, the first router advertises numRoutes routes starting at networkAddress, the next router advertises numRoutes routes starting at (networkAddress + numRoutes), and so on. (default = 0) Enables the generation of a LOCAL PREF attribute based on the information in localPref. This value should be set to true only for EBGP. (default = 0) Enables the generation of a MULTI EXIT DISCRIMINATOR attribute, based on the information in MED. (default = 0) Enables the generation of a NEXT HOP attribute, based on information in nextHopIpAddress and nextHopMode (default = 1) Enables the generation of an ORIGIN attribute, based on information in originProtocol. (default = 1) Enables the generation of an ORIGINATOR-ID attribute, based on information in originatorId. (default = 0) Enables the flapping functions described by routeFlapTime, routFlapDropTime, routesToFlapFrom and routesToFlapTo. (default = 0) Enables the use of this route item as an advertised range. (default = 0) The minimum number of routes to pack into an UPDATE message. Random numbers are chosen from the range fromPacking to toPacking. (default = 0) The following chart indicates the range of packing depending on the setting of this and the toPacking values:
fromPacking 0 0 a a 0 b 0 b toPacking Packing Ranges As many as possible Random from 1 to b Always a routes Random from a to b

enableASPath

enableAtomic Aggregate enableCluster

enableCommunity

enableGenerate UniqueRoutes

enableLocalPref

enableMED

enableNextHop

enableOrigin

enableOriginatorId

enableRouteFlap

enableRouteRange fromPacking

A-30

Ixia Tcl Development Guide

bgp4RouteItem

fromPrefix

The first prefix length to generate based on the networkAddress and numRanges. (default = 0) During prefix generation, the increment between prefixes. (default = 1) The local preference value for the routes with the LOCAL PREF attribute. (default = 0) The multi-exit discriminator value in the MULTI EXIT DISCRIMINATOR attribute. (default = 0) The network address used for the generated prefixes. (default = 0.0.0.0) The IP address of the next hop associated with the NEXT HOP attribute. (default = 0.0.0.0) Indicates that the nextHopIpAddress will be incremented for each neighbor session generated for the range of neighbor addresses. (default = 1) The number of prefixes (routes) to generate for this routeItem. (default = 0) The router that originated a particular route; associated with the ORIGINATORID attribute. (default = 0.0.0.0) An indication of where the route entry originated. One of:
Option bgpOriginIGP bgpOriginEGP bgpOriginIncomplete Value 0 1 2 Usage (default) Interior Gateway Protocol Exterior Gateway Protocol learned by some other means

iterationStep localPref

med

networkAddress nextHopIpAddress

nextHopMode

numRoutes originatorId

originProtocol

routeFlapDropTime

During flapping operation, the period expressed in seconds during which the route will be withdrawn from its neighbors. (default = 0) During flapping operation, the time between flap cycles, expressed in seconds. (default = 0) During flapping operation, the first route prefix in a range to flap. (default = 0) During flapping operation, the last route prefix in a range to flap. (default = 0) The maximum number of routes to pack into an UPDATE message. Random numbers are chosen from the range fromPacking to toPacking. See the discussion under fromPacking above. (default = 0) The last prefix length to generate based on the networkAddress and numRanges. (default = 0) The bgp4RouteItem command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

routeFlapTime

routesToFlapFrom routesToFlapTo thruPacking

thruPrefix

COMMANDS

Ixia Tcl Development Guide

A-31

bgp4RouteItem

bgp4RouteItem addASPathItem Adds the AS Path items specified via config option calls to the bgp4AsPath list.
The AS path item must have been previously been configured through the use of the bgp4ASPathItem command. Specific errors are:
Invalid AS path parameters

bgp4RouteItem cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the bgp4RouteItem command. bgp4RouteItem clearASPathList Clears all of the AS Path items associated with the command. bgp4RouteItem config option value Modify the configuration options of the bgp4RouteItem. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for bgp4RouteItem. bgp4RouteItem getFirstASPathItem Gets the first AS path item from the list. The contents of the item are available in the bgp4ASPathItem command. Specific errors are:
There are no items in the list

bgp4RouteItem getNextASPathItem Gets the next AS path item in the list. The contents of the item are available in the bgp4ASPathItem command. Specific errors are:
There are no more items in the list

bgp4RouteItem setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under bgp4Server bgp4InternalTable, bgp4ExternalTable, bgp4InternalNeighborItem, bgp4ExternalNeighborItem, bgp4RouteItem

A-32

Ixia Tcl Development Guide

bgp4Server

NAME - bgp4Server
bgp4Server - access the BGP4 component of the Protocol Server for a particular port. SYNOPSIS DESCRIPTION bgp4Server sub-command options The bgp4Server command is necessary in order to access the BGP4 component of the Protocol Server for a particular port. The select sub-command must be used before all other bgp4 commands. Refer to BGP4 on page 3-19 for a discussion on BGP4 testing with Ixia equipment. Refer to bgp4Server on page 553 for an overview of this command. The optional BGP4 test package must be installed in order for this command to operate.

STANDARD OPTIONS None. COMMANDS The bgp4Server command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

bgp4Server cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the bgp4Server command. bgp4Server config option value Modify the configuration options of the bgp4Server. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for bgp4Server. bgp4Server generateStreams chasID cardID portID action Generate streams creates additional streams for the indicated port and replaces the ports current streams or adds it to the current streams depending on the action option:
Option Value Usage Replace the ports current streams. Add the streams to the ports current streams.

protocolServerStreamReplace 0 protocolServerStreamAppend 1

A separate stream is generated for each enabled route range associated with each neighbor router; each stream covers the count of IP addresses associated with the route range. The characteristics of the generated streams are:
Each stream but the last is set to advance to the next stream; the last stream is set to return to the first stream. Ethernet II encapsulation is used. IPv4 framing is used. The transmission rate is the ports maximum rate. Minimum frame sizes are used. A data pattern of incrementing bytes (00 01 02 ...) is used.

Ixia Tcl Development Guide

A-33

bgp4Server

The source MAC address is set from the value associated with the indicated sending port. The destination MAC address is set via an ARP lookup on the destination IP address, which is set using UDF4. A single burst of packets is sent per stream, with the count equal to the count of addresses in the route range. UDF4 or IP address control are used to iterate through the count of addresses in the route range; it should not be reprogrammed.

bgp4Server select chasID cardID portID Accesses the BGP4 component of the Protocol server for the indicated port. Specific errors are:
No connection to the chassis Invalid port specified

bgp4Server setDefault Sets default values for all configuration options. EXAMPLES

package req IxTclHal # Define parameters used by BGP router set host hiwire # Port is chassis 1, card 1, port 1 set ch 1 set ca 1 set po 1 set pl [list [list $ch $ca $po]] set myMac {00 0a de 01 01 01} set as 100 set router 198.18.1.2 set neighbor 198.18.1.1 set enableLinkFlap false set update 30 set linkFlapDropTime 1 set linkFlapTime 10 set hold 90 set rangeCount 1 set rangeIp 10.0.0.0 set rangePrefix 16 set rangeNumRoutes 1000 set rangeEnableRouteFlap false set rangeDuration 1 set rangePeriod 2000 set asPath {100 200 300} set localPref 10 ixInitialize $host # Set up IP address table for others who ARP to us ipAddressTableItem setDefault ipAddressTableItem config -numAddresses ipAddressTableItem config -mappingOption ipAddressTableItem config -overrideDefaultGateway ipAddressTableItem config -fromIpAddress ipAddressTableItem config -fromMacAddress ipAddressTable addItem ipAddressTable set $ch $ca $po

1 oneIpToOneMAC false $router $myMac

A-34

Ixia Tcl Development Guide

bgp4Server

# Select port to operate bgp4Server select $ch $ca $po # Clear external table bgp4ExternalTable setDefault bgp4ExternalTable clear # Clear routes in neighbor bgp4ExternalNeighborItem # Make a route bgp4RouteItem bgp4AsPathItem bgp4AsPathItem bgp4AsPathItem bgp4AsPathItem

clearRouteList

item clearASPathList setDefault config -enableAsSegment true config -asList $asPath config -asSegmentType bgpSegmentAsSequence

# With an AS path if {[bgp4RouteItem addASPathItem]} { ixPuts Problem adding Path $asPath return } # And the rest of the route item settings bgp4RouteItem setDefault bgp4RouteItem config -networkAddress $rangeIp bgp4RouteItem config -fromPrefix $rangePrefix bgp4RouteItem config -thruPrefix $rangePrefix bgp4RouteItem config -numRoutes $rangeNumRoutes bgp4RouteItem config -enableRouteFlap $rangeEnableRouteFlap bgp4RouteItem config -routeFlapTime $rangePeriod bgp4RouteItem config -routeFlapDropTime $rangeDuration bgp4RouteItem config -enableNextHop true bgp4RouteItem config -nextHopIpAddress $router bgp4RouteItem config -enableASPath true bgp4RouteItem config -enableRouteRange true bgp4RouteItem config -localPref $localPref bgp4RouteItem config -enableLocalPref true bgp4RouteItem config -asPathSetMode bgpRouteAsPathIncludeAsSeq # Add the route item to the external neighbor if {[bgp4ExternalNeighborItem addRouteItem]} { ixPuts Problem adding external route Item } # Define the external neighbor bgp4ExternalNeighborItem setDefault bgp4ExternalNeighborItem config -localIpAddress $router bgp4ExternalNeighborItem config -rangeCount $rangeCount bgp4ExternalNeighborItem config -dutIpAddress $neighbor bgp4ExternalNeighborItem config -keepAliveTime $hold bgp4ExternalNeighborItem config -messageTime $update bgp4ExternalNeighborItem config -enableLinkFlap $enableLinkFlap bgp4ExternalNeighborItem config -linkFlapDropTime $linkFlapDropTime bgp4ExternalNeighborItem config -linkFlapTime $linkFlapTime bgp4ExternalNeighborItem config -enableExternalNeighbor true bgp4ExternalNeighborItem config -neighborASNum $as # And add the neighbor to the external table if {[bgp4ExternalTable addNeighborItem]} {

Ixia Tcl Development Guide

A-35

bgp4Server

ixPuts Problem adding External Neighbor $router } # And complete the setting for the external table bgp4ExternalTable setDefault bgp4ExternalTable config -retries 0 bgp4ExternalTable config -retryDelay 120 bgp4ExternalTable config -enableActiveConnect true bgp4ExternalTable config -enableEstablishOnce false bgp4ExternalTable set # Let the protocol server respond to ARP, protocolServer config -enableArpResponse protocolServer config -enableBgp4Service protocolServer config -enablePingResponse protocolServer set $ch $ca $po BGP and PING true true false

# Set up for bgp4StatsQuery bgp4StatsQuery clearAllNeighbors bgp4StatsQuery clearAllStats bgp4StatsQuery addNeighbor $neighbor $router bgp4StatsQuery addStat bgpExternalConnectedAccepted bgp4StatsQuery addStat bgpExternalConnectedReceived # Send the data to the hardware ixWriteConfigToHardware pl bgp4StatsQuery get $chassis $card $port # Need to wait until getStat returns successfully set timer 10 for {set time 0} {$time < $timer } {incr time} { if {![bgp4StatsQuery getStat bgpExternalConnectedAccepted \ $localIpAdd $dutIpAdd]} { set accepted [bgp4StatsQuery cget -statValue] bgp4StatsQuery setDefault if [bgp4StatsQuery getStat bgpExternalConnectedReceived \ $localIpAdd $dutIpAdd] { set received [bgp4StatsQuery cget -statValue] } break } after 1000 }

SEE ALSO

bgp4InternalTable, bgp4ExternalTable, bgp4InternalNeighborItem, bgp4ExternalNeighborItem, bgp4RouteItem

A-36

Ixia Tcl Development Guide

bgp4StatsQuery

NAME - bgp4StatsQuery
bgp4StatsQuery - gets the BGP server statistics on a port of a card on a chassis. bgpStatsQuery - also known by this name, but usage is deprecated. SYNOPSIS bgp4StatsQuery sub-command options DESCRIPTION The bgp4StatsQuery command is used to get BGP4 protocol server related statistics. Specific statistics must be requested for a set of <Neighbor IP address, DUT IP address> pairs. The pairs are set up using the addNeighbor sub-command, while the set of statistics desired are established with the addStat subcommand. Statistics are read from the hardware via the get sub-command, and specific statistics are made available through the getStat sub-command. The optional BGP4 test package must be installed in order for this command to operate. STANDARD OPTIONS
statName statValue

Read-only. The name of the statistic retreived. Read-only. The value of the statistic, as a string. The bgp4StatsQuery command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

COMMANDS

bgp4StatsQuery addNeighbor neighborIPAddress dutIPAddress Adds a new neighbor-DUT address pair to the table of statistics to be fetched. Specific errors are:
Invalid IP address(es)

bgp4StatsQuery addStat statID Adds a new statistic to the table of statistics to be fetched. See the getStat command for a list of statIDs. Specific errors are:
Invalid statID.

bgp4StatsQuery cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the bgp4StatsQuery command. bgp4StatsQuery clearAllNeighbors Deletes all neighbor-DUT address pairs from the table of statistics to be fetched. bgp4StatsQuery clearAllStats Deletes all statistics from the table of statistics to be fetched. See the getStat command for a list of statIDs.

Ixia Tcl Development Guide

A-37

bgp4StatsQuery

bgp4StatsQuery delNeighbor neighborIPAddress dutIPAddress Deletes a neighbor-DUT address pair from the table of statistics to be fetched. Specific errors are:
The neighbor pair could not be found in the list

bgp4StatsQuery delStat statID Deletes a statistic from the table of statistics to be fetched. See the getStat command for a list of statIDs. bgp4StatsQuery get chasID cardID portID This command causes the statistics associated with the indicated port to be fetched from the Protocol Server. It may be followed by one or more calls to bgp4StatsQuery getStat. bgp4StatsQuery getStat statID neighborIPAddress dutIPAddress Gets the statistics counter of type statID which may be one of the items from the table below. This must be preceded by a call to bgp4StatsQuery get. The first call to this command following a call to bgp4StatsQuery get must wait for a return value before preceding. The actual value of the statistics may be obtained via calls to bgp4StatsQuery cget statName and statValue. Additional statistics may be obtained by calling bgp4StatsQuery getStat again.
statID bgpActiveOn bgpCeaseReceived Usage Indicates that enableActiveConnect is on. See bgp4ExternalTable and bgp4InternalTable. Ceases Received. Number of Ceases received. The Cease error code is used by a BGP peer in a Notification message to close its BGP connection. Must not be used when a fatal error exists, such as those listed here. Ceases Sent. Number of Ceases sent. The Cease error code is used by a BGP peer in a Notification message to close its BGP connection. Must not be used when a fatal error exists, such as those listed here. Bad Message Length. Multiple causes for this error are if the Length field for the header is less than 19 or greater than 4096, the OPEN message is less than minimum length, the UPDATE message is less than minimum length, the KEEPALIVE message is not equal to 19, or the NOTIFICATION message is less than minimum length. Bad Message Type. When the Type field of the message header is unrecognized. External Connects Accepted. The total number of attempted BGP connections by remote peers, in which the local system accepted the connection. External Connects Received. The total number of attempted BGP connections by remote peers, including accepted and rejected.

bgpCeaseSent

bgpErrorBadMsgLength

bgpErrorBadMsgType bgpExternalConnectsAccepted

bgpExternalConnectsReceived

A-38

Ixia Tcl Development Guide

bgp4StatsQuery

statID bgpHeaderErrorConnNotSyncron

Usage Connection Not Synchronized. When the Marker field of the message header is not the one expected. Header Errors Received. Total Number of Header Errors received on this port. Header Errors Sent. Total Number of Header Errors sent from this port. Invalid Header Suberror Unspecified. If the error subcode is not defined, a zero identifies this message header error as unspecified. Hold Timer Expireds Received. Number of Notification error messages received. For KeepAlive, Update, and/or Notification messages. If not received by the system within the time in the Hold Time field of the OPEN message. After this message is sent, the BGP connection must be closed. Hold Timer Expireds Sent. Number of Notification error messages sent. For KeepAlive, Update, and/or Notification messages. If not received by the system within the time in the Hold Time field of the OPEN message. After this message is sent, the BGP connection must be closed. Our Hold Timer. A 2-octet unsigned integer indicating the Hold Timer value, in seconds, proposed by the sender. Authentication Failures Received. For messages which carry Authentication Information, if the authentication procedure fails. Bad BGP Ids Received. When the BGP Identifier field is not syntactically correct (not a valid IP host address). Invalid Open with bad peer AS number. An OPEN was receives with an invalid peer AS number. Invalid Opens Received. Total number of Invalid Open error messages received. Invalid Opens Sent. Total number of Invalid Open error messages received. Invalid Open Suberror Unspecified. If the error subcode is not defined, a zero identifies this Open message error as unspecified.

bgpHeaderErrorReceived bgpHeaderErrorSent bgpHeaderErrorsSubUnspecified

bgpHoldTimeExpiredReceived

bgpHoldTimeExpiredSend

bgpHoldTimer

bgpInvalidOpenAuthenticationFail

bgpInvalidOpenBadBGPId

bgpInvalidOpenBadPeerAS bgpInvalidOpenReceived bgpInvalidOpenSent bgpInvalidOpenSubUnspecified

bgpInvalidOpenUnacceptHoldTime Non Acceptable Hold Times Received. The Hold Time field is not acceptable. Hold time values of 1 or 2 seconds must be rejected. Any Hold Time may be rejected by the implementation. bgpInvalidOpenUnsupportParm Unsupported Parameters Received. When one of the optional parameters in the OPEN message is not recognized. KeepAlives Received. Total number of KeepAlive messages received. KeepAlives Sent. Total number of KeepAlive messages sent. They cannot be sent more often than 1 per second, but must be sent often enough to keep the Hold Timer from expiring.

bgpKeepAliveReceived bgpKeepAliveSent

Ixia Tcl Development Guide

A-39

bgp4StatsQuery

statID bgpMesagesSent bgpMessagesReceived bgpNotificationReceived bgpNotificationSent bgpOpenReceived bgpOpenSent bgpOurAS

Usage Messages Sent. Total number of Notification messages sent. Messages Received. Total number of all types of BGP4 messages received. Notifications received. The number of BGP notification messages received. Notifications sent. The number of BGP notification messages sent. Opens Received. Total number of Open messages received. Opens Sent. Total number of Open messages sent. Our AS Number. A 2-octet unsigned integer indicating the Autonomous System number of the sender. Our ID. A 4-octet unsigned integer for the senders BGP Identifier. Our IP. The senders IP address. Peer AS Number. A 2-octet unsigned integer indicating the Autonomous System number of the BGP peer. Peer Hold Timer. A 2-octet unsigned integer indicating the Hold Timer value, in seconds, proposed by the BGP peer. Peer Id. A 4-octet unsigned integer for the peers BGP Identifier. Peer IP. The peers IP address. Routes Advertised. Total number of BGP routes advertised. Routes Received. Total number of BGP routes received. Routes Received per Second. Number of BGP routes received per second. Routes Sent per Second. Number of BGP routes sent per second. Routes Withdrawn. Total number of BGP routes withdrawn. Route Withdraws Received. Total number of Update messages received which have a nonempty Withdrawn Routes field. Starts Occurred. The number of BGP Start Events which have occurred. State Machine Errors Received. Total number of State Machine Errors Received. These are errors detected by the BGP Finite State Machine. State Machine Errors Sent. Total number of State Machine Errors Sent. These are errors detected by the BGP Finite State Machine.

bgpOurId bgpOurIp bgpPeerAS

bgpPeerHoldTime

bgpPeerId bgpPeerIP bgpRoutesAdvertised bgpRoutesAdvertisedReceived bgpRoutesPerSecondReceived bgpRoutesPerSecondSent bgpRoutesWithdrawn bgpRoutesWithdrawnReceived

bgpStartsOccured bgpStateMachineErrorReceived

bgpStateMachineErrorSent

A-40

Ixia Tcl Development Guide

bgp4StatsQuery

statID bgpStateMachineState

Usage State Machine State. The current state of the Finite State Machine. One of: Idle Connect Active OpenSent OpenConfirm Established Unspecified Error Received. The number of errors received that are not described in RFC 1771 and amendments. Unspecified Error Sent. The number of errors sent that are not described in RFC 1771 and amendments. Attribute Length Error. For any recognized attribute where the Attribute Length conflicts with the expected length, based on attribute type code. Malformed AS_PATH. If the AS_PATH attribute is not correct syntactically. AS Routing Loop. The number of AS routing loop errors received. Attribute Flags Error. For any recognized attribute where the Attribute Flags conflict with the Attribute Type. Malformed Attribute List. When the Unfeasible Routes Length or Total Attribute Length is too large. Also, when any attribute appear more than once in the Update message. Missing Well-known Attribute. When any of the mandatory well-known attributes are not present. Invalid Network Field. The syntax of the Network Layer Reachability Information (NLRI) field is not correct. Invalid NEXT_HOP Attribute. The NEXT_HOP attribute field is not syntactically correct.

bgpUnspecifiedErrorReceived

bgpUnspecifiedErrorSent

bgpUpdateAttribLengthError

bgpUpdateErrorAsPathInvalid bgpUpdateErrorASRoutingLoop bgpUpdateErrorAttribFlagError

bgpUpdateErrorAttribListError

bgpUpdateErrorMissingWellKnownAttrib bgpUpdateErrorNetworkFieldInvalid bgpUpdateErrorNextHopAttribInvalid

bgpUpdateErrorOptionalAttribError Optional Attribute Error. The number of optional attribute incorrect values received. bgpUpdateErrorOriginAttribInvalid bgpUpdateErrorReceived bgpUpdateErrorSent bgpUpdateErrorSubUnspecified Invalid ORIGIN Attribute. When the ORIGIN attribute has an undefined value. Update Errors Received. Total number of Update errors received. Update Errors Sent. Total number of Update errors sent. Invalid Update Suberror Unspecified. If the error subcode is not defined, a zero identifies this Update message error as unspecified. Unrecognized Well-known Attribute. If any of the mandatory well-known attributes are not recognized. Updates Received. Total number of BGP route updates received. Updates Sent. Total number of BGP route updates sent.

bgpUpdateErrorUnknownWellKnownAttrib bgpUpdateReceived bgpUpdateSent

Ixia Tcl Development Guide

A-41

bgp4StatsQuery

statID bgpvalidOpenUnsupportVersion

Usage Unsupported Version Received. When the Version Field contains an unsupported version number.

Specific errors include:


No connection to a chassis Invalid port number A network problem has occurred

bgp4StatsQuery set chasID cardID portID No function is currently performed. SEE ALSO

A-42

Ixia Tcl Development Guide

capture

NAME - capture
capture - configure the capture parameters on a port of a card on a chassis. SYNOPSIS DESCRIPTION capture sub-command options The capture command is used to configure the capture parameters and sets up the capture buffer. The afterTriggerFilter, beforeTriggerFIlter, captureMode, continuousFilter, fullAction and triggerPosition options are associated with the circular buffer feature which is only available on some card types. Refer to the Ixia Hardware Guide for a list of which modules support the features.

STANDARD OPTIONS
afterTriggerFilter

Controls the capture of data after triggering when operating in triggered mode (captureMode = captureTriggerMode). Available option values are:
Option captureAfterTriggerAll captureAfterTrigger Filter captureAfterTrigger ConditionTrigger Value 0 1 2 Usage capture all data after trigger. (default) capture filtered data after trigger using filter settings. capture filtered data after trigger using trigger settings, as opposed to filter settings.

beforeTriggerFilter

Controls the capture of data prior to triggering when operating in triggered mode (captureMode = captureTriggerMode). Available option values are:
Option Value Usage (default) capture all data before trigger. capture none of the data before trigger. capture filtered data before trigger as per the filter settings.

captureBeforeTriggerAll 0 captureBeforeTrigger None captureBeforeTrigger Filter 1 2

captureMode

Controls whether data capture is performed in a continuous or triggered mode. Available option values are:
Option captureContinuous Mode captureTriggerMode Value 0 Usage capture data in the buffer continuously, regardless of trigger settings. Data may be filtered; see continuousFilter. (default) capture data only after triggered.

continuousFilter

Controls whether data captured in continous mode (captureMode = captureContinuousMode) is filtered or not. Available option values are:
Option captureContinuousAll Value 0 Usage (default) capture all data, regardless of filter settings. capture only filtered data, as per filter settings.

captureContinuousFilter 1

Ixia Tcl Development Guide

A-43

capture

enableSmallPacket Capture true/false

Applies to OC12 cards only. Capture of packets of 48 bytes or less at full wire rates can be problematic and is usually treated as an error. This setting allows packets of 48 bytes or less in length to be captured. The data captured, however, may be corrupt. (default = false) Controls the action of the buffer when it reaches the full status. Available option values are:
Option lock wrap Value 0 1 Usage (default) after the buffer is full, do not capture any more frames when the buffer is full, start storing the new frames at the beginning of the buffer over-writing the previously stored frames

fullAction

nPackets sliceSize

Read-only. Number of packets available or captured in the capture buffer. The maximum number of octets of each frame that will be saved in this capture buffer. For example, if a 1500 octet frame is received by the probe and this option is set to 500, then only 500 octets of the frame will be stored in the associated capture buffer. If this option is set to 0, the capture buffer will save as many octets as is possible. (default = 8191) Controls the dividing line within the capture buffer between before trigger data and post trigger data. This control is only useful in triggered mode (captureMode = captureTriggerMode) and before trigger capture enabled (beforeTriggerFilter = captureBeforeTriggerAll or captureBeforeTriggerFilter). TriggerPosition is expressed as a percentage of the total buffer size. The beginning of the buffer with this percentage is used in a wrap-around mode for before trigger data and the remainder is filled up with triggered data. (default = 1.0)

triggerPosition

DEPRCATED STANDARD OPTIONS


filter sliceOffset trigger

COMMANDS capture cget option

The capture command is invoked with the following sub-commands. If no subcommand is specified, returns a list of all sub-commands available.

Returns the current value of the configuration option given by option. Option may have any of the values accepted by the capture command. capture config option value Modify the configuration options of the capture. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for capture.

A-44

Ixia Tcl Development Guide

capture

capture get chasID cardID portID Gets the current configuration of the capture for port with id portID on card cardID, chassis chasID. from its hardware. Call this command before calling capture cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

capture set chasID cardID portID Sets the configuration of the capture in IxHAL for port with id portID on card cardID, chassis chasID by reading the configuration option values set by the capture config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user Configured parameters are not valid for this setting

capture setDefault Sets default values for all configuration options. capture write chasID cardID portID Writes or commits the changes in IxHAL to hardware for the capture related parameters on port with id portID on card cardID, chassis chasID. Before using this command, use the capture set. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user Network problem between the client and chassis

EXAMPLES

package require IxTclHal # Connect to chassis and get chassis ID set host 400-031561 ixInitialize $host set chas [ixGetChassisID $host] # Assume that theres a four port 10/100 TX card in this slot # with port 1 looped to port 2 set card 1 set portlist [list [list $chas $card 1] [list $chas $card 2]] set txPortList [list [list $chas $card 1]] set rxPortList [list [list $chas $card 2]] # Reset Ports for Factory Defaults Stream Mode / Capture port setFactoryDefaults $chas $card 1 port setFactoryDefaults $chas $card 2 port setDefault port set $chas $card 1 port set $chas $card 2 # The number of frames to get in the capture buffer at one time set frameSlice 10 # Put the time in the outbound stream stream setDefault stream config -sa {00 de ad be ef 00} stream config -da {00 ba be fa ce 00}

Ixia Tcl Development Guide

A-45

capture

stream config -dma stopStream stream config -numFrames 50000 stream config -fir true stream set $chas $card 1 1 ixWritePortsToHardware portlist # Wait for Link after 1000 ixCheckLinkState portList ixClearStats rxPortList ixStartCapture rxPortList ixStartTransmit txPortList

# Get the number of frames captured capture get $chas $card 2 set numFrames [capture cget -nPackets] ixPuts $numFrames frames captured # Only look at the first 100 frames if {$numFrames > 100} {set numFrames 100} ixPuts Frame\tTime\t\tLatncy\tData # Go through all of the frames $frameSlice frames at a time for {set frameNo 1} {$frameNo <= $numFrames} {incr frameNo $frameSlice} { set lastFrame [expr $frameNo + $frameSlice - 1] if {$lastFrame > $numFrames} {$lastFrame = $numFrames} # Get the batch of frames captureBuffer get $chas $card 2 $frameNo $lastFrame set numCaptured [expr $lastFrame - $frameNo +1] # Go through each of the frames in the capture buffer starting at 1 for {set i 1} {$i < $numCaptured} {incr i} { # Note that the frame number starts at 1 captureBuffer getframe $i # Get the actual frame data set data [captureBuffer cget -frame] # Well only look at the first bunch of bytes set data [string range $data 0 50] # Get timestamp and latency too set timeStamp [captureBuffer cget -timestamp] set latency [captureBuffer cget -latency] ixPuts ixPuts ixPuts ixPuts } } -nonewline [expr $frameNo + $i] -nonewline \t$timeStamp -nonewline \t$latency \t$data

SEE ALSO

captureBuffer

A-46

Ixia Tcl Development Guide

captureBuffer

NAME - captureBuffer
captureBuffer - view the capture frames in the captured buffer. SYNOPSIS DESCRIPTION captureBuffer sub-command options After the capture command is used to configure the capture buffer, the captureBuffer command is used to get a range of frames from the capture buffer. Jitter values will only be calculated on those frames that meet the constraint criteria. Two different types of constraint criteria are available; ethernet type and framesize. For example, if the user wants to calculate jitter only on 64 byte frames, then the framesize option must be set to 64 and the enableFramesize option set to true.

STANDARD OPTIONS
averageDeviation

Read-only. 64-bit value. The average deviation of the average latencies calculated by the command captureBuffer getStatistics. Read-only. 64-bit value. The average latency calculated by the command captureBuffer getStatistics. Enables the constraint used to calculate jitter statistics. If enabled, jitter will be calculated only for frames whose frame type field matches the ethernet type set by the option ethernetType. Does not apply unless the command captureBuffer setConstraint is applied. (default = false) Enables this constraint used to calculate jitter statistics. If enabled, jitter will be calculated only for frames whose size matches the framesize set by the command option framesize. Does not apply unless the command captureBuffer setConstraint is applied. (default = false) Constrain the jitter statistics calculations to frames in the capture buffer that match the ethernet pattern set by this option. Does not apply unless captureBuffer setConstraint is applied. (default = false) Constrain the jitter statistics calculations to frames in the capture buffer that match the ethernet type set by this option. A value such as {08 00} would be appropriate. Does not apply unless option enableEthernetType is set to true and captureBuffer setConstraint is applied. (default = ) Read-only. The frame identity record. Read-only. The contents of the selected frame based on the sliceSize parameter set by the capture command. Constrain the jitter statistics calculations to frames in the capture buffer whose frame size matches the value set by this option. Does not apply unless the option enableFramesize is set to true and captureBuffer setConstraint is applied. (default = 64)

averageLatency

enableEthernetType

true/false

enableFramesize

true/false

enablePattern

true/false

ethernetType

fir frame

framesize

Ixia Tcl Development Guide

A-47

captureBuffer

latency

Read-only. 64-bit value. The frame latency, calculated as the difference between the transmit time and receive time of the frame, in nanoseconds. Read-only. The total length of the frame, regardless of the actual number of bytes in the capture buffer. Read-only. 64-bit value. The maximum frame latency calculated by the command captureBuffer getStatistics. Read-only. 64-bit value. The minimum frame latency calculated by the command captureBuffer getStatistics. Read-only. The number of frames (or slices, a slice could contain a whole frame or a part of a frame) in the capture buffer. When captureBuffer setConstraint is called this value is updated with the number of frames for each constraint. Enables this constraint used to calculate jitter statistics. If enabled, jitter will be calculated only for frames whose pattern matches the pattern in the frame at the offset set by the command option patternOffset. A value of the form {11 12 02 44} would be approprite. Does not apply unless the command captureBuffer setConstraint is applied. (default = ) Used in conjunction with the pattern command. Does not apply unless the command captureBuffer setConstraint is applied. (default = 12) Read-only. 64-bit value. The standard deviation of the average latencies calculated by the command captureBuffer getStatistics. Read-only. The status of the frame. Available status includes:
Option capNoErrors capBadCrcGig capSymbolErrorsGig capBadCrcAndSymbolGig capUndersizeGig capBadCrcAndUndersizeGig capBadCrcAndSymbolAnd UndersizeGig capOversizeGig capBadCrc capBadCrcAndSymbolError capUndersize capFragment capOversize capOversizeAndBadCrc Value 0 1 2 3 4 5 7 8 65 67 68 69 72 79 Usage captured frame has no error captured frame has a bad or missing CRC (gigabit only) captured frame has symbol error (gigabit only) captured frame has a bad or missing CRC and symbol error (gigabit only) captured frame is undersize (gigabit only) captured frame has a bad or missing CRC and is undersize (gigabit only) captured frame has a bad or missing CRC and is undersize (gigabit only) captured frame is oversize with a valid CRC (gigabit only) captured frame has a bad or missing CRC captured frame has a bad or missing CRC and symbol error captured frame is undersize captured frame is a fragment captured frame is oversize with a valid CRC captured frame is oversize with a bad or missing CRC

length

maxLatency

minLatency

numFrames

pattern

patternOffset

standardDeviation

status

A-48

Ixia Tcl Development Guide

captureBuffer

Option capDribble capAlignmentError capAlignAndSymbolError capGoodFrame capBadCrcAndGoodFrame capErrorFrame

Value 80 81 83 192 193 255

Usage captured frame has a dribble error captured frame has alignment error (10/100 only) captured frame has alignment and symbol error captured frame is a valid frame with no errors (default) captured frame has a bad or missing CRC but otherwise valid frame captured frame has a general error other than one of the specified errors in this list

timestamp

Read-only. 64-bit value. The arrival time of the captured frame in nanoseconds.

DEPRICATED OPTIONS
sliceOffset

COMMANDS

The captureBuffer command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

captureBuffer cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the captureBuffer command. captureBuffer clearConstraint Clears the constraints used to calculate the average, standard deviation and average deviation of the latencies of the captured frames in the capture buffer. Statistics will be calculated on the entire buffer. captureBuffer config option value Modify the configuration options of the captureBuffer. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for captureBuffer. captureBuffer export fileName Exports the current contents of the capture buffer from the last captureBuffer get command to the file indicated in fileName. The format of the file is dictated by the extension on the file (only the .cap and .enc file format is supported):
.txt .cap a text file suitable for import into a database. a binary format for use with the captureBuffer import function or IxExplorers File Import function.

Ixia Tcl Development Guide

A-49

captureBuffer

.enc

a binary format for use with NAIs Sniffer program. Note that when working with POS ports, the export function maps the POS frames to look like Ethernet data: the POS header is stripped off (4 bytes), the MAC address is padded out to 12 bytes with zeroes, a packet type identifier of 0x0800 (2 bytes, Ethernet) is added and the beginning of the MAC DA is overwritten with the POS header.

captureBuffer get chasID cardID portID fromFrame toFrame Gets the group of captured frames from the capture buffer for chasID cardID portID, beginning with frame fromFrame through frame and puts it into local memory. Call this command before calling captureBuffer getframe frameNum to get the capture buffer from hardware. The capture cget nPackets should be called before this command to determine how many frames are available in the capture buffer. captureBuffer getConstraint Gets the constraints used to calculate the average, standard deviation and average deviation of the latencies of the captured frames in the capture buffer retrieved by captureBuffer get. captureBuffer getframe frameNum Gets the capture buffer data from local memory for frameNum. Call captureBuffer get chasID cardID portID fromFrame toFrame before calling this command. captureBuffer getStatistics Calculates the average, standard deviation and average deviation of the latencies of the captured frames in the capture buffer retrieved by captureBuffer get. captureBuffer import fileName chasID cardID portID Imports a file into the capture buffer indicated by chasID cardID portID from the file indicated in fileName. The format of the file is dictated by the extension on the file: .cap a binary format generated by the captureBuffer export function or IxExplorers File Export function. .enc a binary format for use with NAIs Sniffer program. captureBuffer setConstraint Sets the constraints used to calculate the average, standard deviation and average deviation of the latencies of the captured frames in the capture buffer retrieved by captureBuffer get. captureBuffer setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under capture. capture

A-50

Ixia Tcl Development Guide

card

NAME - card
card - get version and type of card. SYNOPSIS DESCRIPTION STANDARD OPTIONS
clockRxRisingEdge

card sub-command options This command allows the user to view version and type information for the card.

For 10/100 RMII cards, received data is to be clocked on the rising edge. (default = 1) For 10/100 RMII cards, xmit data is to be clocked on the rising edge. (default=1) Read-only. The current version of central FPGA image file on this card. Read-only. The current hardware version of this card. Read-only. Number of ports on this card; if no card present, returns 0. Read-only. For load modules which possess a serial number, this is the serial number associated with the load module. Read-only. The type of the card selected. Options include:
Option cardNone card101004port cardGigabit2Port card10100Mii card10100RMii card100FxMultiMode cardGbic cardPOS2Port cardPosOc48 card10100Level3 cardGigabitLevel3 cardGbicLevel3 cardGigCopper cardGigCopperLevel3 cardGigabitGmii cardPosOC48Level3 cardUSB cardPosOc192Fob2 cardPosOc192Fob1 cardPosOc192Plm2 Value 0 2 3 4 5 6 7 8 9 10 11 12 13 14 17 18 19 20 21 22 No card present 4 port 10/100 card 2 port gigabit card 10/100 MII card 10/100 Reduced MII card 10/100 FX multi-mode card 2 port GBIC card 2 port POS card - OC12c/OC3c 1 port POS card 4 port 10/100 level 3 card 2 port gigabit level 3 card 2 port level GBIC card 2 port gigabit over copper card 2 port level gigabit over copper card 2 port Gigabit GMII 1 port POS level 3 card 4 port 10 Mbps/USB card 2 port POS level 3 OC 192 Fiber Optic Board 1 port POS level 3 OC 192 Fiber Optic Board 2 port POS OC 192 Fiber Optic Board Usage

clockTxRisingEdge fpgaVersion hwVersion portCount serialNumber

type

Ixia Tcl Development Guide

A-51

card

Option cardPosOc192Plm1 cardPosOc3 card100FxSingleMode cardPosOc48VariableClocking cardGigCopperTripleSpeed cardGigSingleMode card10100Sh4 cardOc48Bert cardOc48PosAndBert card10GigWanPlm2 card10GigWanPlm1 card10GigLanXgmiiPlm1 card10GigLanXuaiPlm1 card10100Txs48 card10100Txs8 card10GigLanXsbiPlm1 card10100TX2 cardGbicSp

Value 23 25 26 27 28 29 32 36 37 38 39 42 46 56 57 61 67 68

Usage 1 port POS OC 192 Fiber Optic Board 2 port POS OC 3 card 4 port 100 FX single-mode card 1 port POS card, variable clocking support 2 port 10/100/1000 Copper card 2 port 1000 SX Single-mode 4 port 10/100 card 1 port OC 48 card, Bit Error Rate Testing Only 1 port OC 48 card, POS and Bit Error Rate Testing 2 port 10 Gigabit WAN card 1 port 10 Gigabit WAN card 1 port 10 Gigabit LAN XGMII card 1 port 10 Gigabit LAN XUAI card 48 port large form factor 10/100 card 8 port 10/100 card 1 port 10 Gigabit LAN XSBI card 2 port 10/100 card 1 port GBIC card

typeName

Read-only. The name corresponding to the card type. One of the symbolic values shown under type. The card command is invoked with the following sub-commands. If no subcommand is specified, returns a list of all sub-commands available.

COMMANDS

card config option value Modify the configuration options of the card. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for card. card cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the card command. card export fileName chasID cardID Exports the current configuration of the card at slot cardID, chassis chasID into the file named fileName. If no extension is used in fileName, a .crd will be added to the name. The file produced by this command may be used by the import sub-command. Specific errors are:
No connection to a chassis Invalid card

A-52

Ixia Tcl Development Guide

card

card get chasID cardID Gets the current configuration of the card at slot cardID, chassis chasID. Call this command before calling card cget option value to get the value of the configuration option. If the card does not exist, an error is returned. card getInterface chasID cardID Gets the interface type of the card. This command returns one of the following values:
interfaceUnknown interface10100 interfaceGigabit interfacePacketOverSonet interfaceOc48 interfaceOc192 interfaceUSB 1 2 3 4 5 6 for OC3 and OC12 0

card import fileName chasID cardID Imports a saved card configuration found in the file fileName into the current configuration of the card at slot cardID, chassis chasID. If no extension is used in fileName, a .crd will be added to the name. The file used by this command must have been produced by the export sub-command. Specific errors are:
No connection to a chassis Invalid card The card is owned by another user fileName does not exist

card set chasID cardID Sets the current configuration of the card at slot cardID, chassis chasID by reading the configuration option values set by the card config option value command. Specific errors are:
No connection to a chassis Invalid parameters Network problem between the client and chassis

card setDefault Sets default values for all configuration options. EXAMPLES

package require IxTclHal # Connect to chassis and get chassis ID set host 400-031561 ixInitialize $host set chas [ixGetChassisID $host] # Set up an array of interface type names set interfaceTypes($::interface10100) 10/100 set interfaceTypes($::interfaceGigabit) Gigabit set interfaceTypes($::interfacePacketOverSonet) OC3/OC12 set interfaceTypes($::interfaceOc48) Oc48 set interfaceTypes($::interfaceOc192) Oc192 set interfaceTypes($::interfaceUSB) USB set interfaceTypes(0) Unknown

Ixia Tcl Development Guide

A-53

card

# Get the chassis number of cards chassis getFromID $chas set ncards [chassis cget -maxCardCount] ixPuts Chassis $chas, $ncards cards for {set i 1} {$i <= $ncards} {incr i} { # Check for missing card if {[card get $chas $i] != 0} { continue } set portList [list [list $chas $i 1]] # Get all of the cards characteristics set fpgaVersion [card cget -fpgaVersion] set hwVersion [card cget -hwVersion] set portCount [card cget -portCount] set type [card cget -type] set typeName [card cget -typeName] set interface [card getInterface $chas $i] # And list them ixPuts Card $i: $typeName ($type), $portCount ports, \ interface $interfaceTypes($interface), fpga $fpgaVersion, hwVersion $hwVersion # If the card is a 10/100 RMII, play with its settable parameters if {$type == $::card10100RMii} { card config -clockRxRisingEdge 0 card config -clockTxRisingEdge 1 card set $chas $i ixWriteConfigToHardware portList } # Just for fun, well export the data associated with the first card # and restore it to any other cards of the same type if {$i == 1} { if {[card export cardfile $chas $i] != 0} { ixPuts Could not export } else { set savedType $type } } elseif {$type == $savedType} { if {[card import cardfile $chas $i] == 1} { ixPuts Could not import } else { # After import we need to do a set and then write to hardware card set $chas $i ixWriteConfigToHardware portList } } }

SEE ALSO

chassis, port

A-54

Ixia Tcl Development Guide

chassis

NAME - chassis
chassis - add a new chassis to the chain and configure it. SYNOPSIS DESCRIPTION chassis sub-command options The chassis command is used to add a new chassis to a chain of chassis, configure an existing chassis or delete an existing one from the chain in use.

STANDARD OPTIONS
cableLength

Specifies the length of the cable between all chassis. Options include:
Option cable3feet cable6feet cable9feet cable12feet cable15feet cable18feet cable21feet cable24feet Value 0 1 2 3 4 5 6 7 default Usage

id ipAddress master true/false

ID number given to the chassis. (default = 0) Read-only. The IP address associated with the chassis. Read-only. Specifies whether this chassis is a master of a slave in a chain. There can be only one master chassis in a chain. NOTE: The master is automatically assigned based on cable connections. (default = false) Read-only. Number of card can be installed on the chassis. The given name of the chassis. (default = defaultChassis) Read-only. The operating system loaded on the chassis. One of:
Option chassisOSUnknown chassisOSWin95 chassisOSWinNT chassisOSWin2000 Value 0 1 2 3 Usage Unknown operating system Windows 95 Windows NT Windows 2000

maxCardCount name operatingSystem

sequence

Specifies the sequence number of the chassis in the chain. The master must have a sequence number of 1 and other chassis should be incrementing. (default = 1)

Ixia Tcl Development Guide

A-55

chassis

type

Read-only. Specifies the type of chassis. Possible values are:


Option ixia1600 ixia200 ixia400 ixia100 ixia400C ixia1600T ixiaDemo ixiaOptIxia ixiaOpixJr Value 2 3 4 5 6 7 9 10 11 16 card chassis type 2 card chassis type 4 card chassis type 1 card chassis type with GPS 1 card chassis with additional power and fans 16 card chassis type with additional power and fans 128 card chassis type used in demo server Optixia chassis Ixia test board Usage

typeName

Read-only. The printable chassis type name. The chassis command is invoked with the following sub-commands. If no subcommand is specified, returns a list of all sub-commands available.

COMMANDS chassis add sIPAddr

Adds a new chassis with sIPAddr (hostname or IP address) to the chain. Specific errors are:
Error connecting to the chassis (timeout, invalid IP or hostname, or invalid port) (1) Version mismatch (2) The version was successfully negotiated, but a timeout occurred receiving the chassis configuration (3)

chassis cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the chassis command. chassis config option value Modify the configuration options of the chassis. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for chassis. chassis del sIPAddr Deletes the chassis with sIPAddr (hostname or IP address) from the chain. chassis get sIPAddr Gets the current configuration of the chassis with sIPAddr (hostname or IP address) from hardware. Call this command before calling chassis cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis

A-56

Ixia Tcl Development Guide

chassis

chassis getFromID chasID Gets the current configuration of the chassis with chasID from hardware. Call this command before calling chassis cget option value to get the value of the configuration option. chassis reboot chasID Reboots the chassis. Specific errors are:
No connection to a chassis Network problem between the client and chassis

chassis refresh chasID Ensures that the data displayed it up to date. Specific errors are:
No connection to a chassis Network problem between the client and chassis

chassis resetHardware chasID Resets the hardware by initializing all the registers and statistic counters. Specific errors are:
No connection to a chassis Network problem between the client and chassis

chassis set sIPAddr Sets the configuration of the chassis in IxHAL with sIPAddr (hostname or IP address) by reading the configuration option values set by the chassis config option value command. Specific errors are:
No connection to a chassis Network problem between the client and chassis

chassis setDefault Sets default values for all configuration options. chassis setFactoryDefaults sIPAddr Sets the factory default values on the chassis. Specific errors are:
No connection to a chassis

chassis shutdown chasID Shuts down the chassis. Specific errors are:
No connection to a chassis Network problem between the client and chassis

chassis write chasID cardID portID Note: This command is being phased out; please use ixWriteConfigToHardware instead. Writes or commits the changes in IxHAL to hardware for each port with portID on card cardID of chassis with ID chasID. Before using this command, use the set commands for streams, capture and filter parameters on each port. This command will not write Mii related parameters (such as speed, duplex mode, autonegotiation, and flow control) of the port. The advantage of using this command is that the whole port related configuration can be written into hardware at one time

Ixia Tcl Development Guide

A-57

chassis

instead of writing into hardware for each stream, capture and filters on each port. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user Network problem between the client and chassis

chassis writeAll chasID Note: This command is being phased out; please use ixWriteConfigToHardware instead. Writes or commits the changes in IxHAL to hardware for all ports of chassis with ID chasID. Before using this command, use the set commands for streams, capture and filter parameters on each port. This command will not write Mii related parameters (such as speed, duplex mode, autonegotiation, and flow control) of the port. The advantage of using this command is that the whole chassis- related configuration can be written into hardware at one time instead of writing into hardware for each port. EXAMPLES

package require IxTclHal # Set up two chassis in a chain set host1 galaxy set host2 localhost # Remove all of the chassis in the chain chassisChain removeAll ixInitialize [list $host1 $host2] # Check for a valid chain if [chassisChain validChain] { ixPuts Chain has no master } set masterSlave(0) slave set masterSlave(1) master # Get the type and capabilities of the chassis chassis get $host1 set chas1 [chassis cget -id] set type [chassis cget -type] ixPuts -nonewline Chassis $host1 (id $chas1) is type: switch $type \ $::ixia1600 {ixPuts -nonewline IXIA 1600} \ $::ixia200 {ixPuts -nonewline IXIA 200} \ $::ixia400 {ixPuts -nonewline IXIA 400} \ $::ixia100 {ixPuts -nonewline IXIA 100} \ $::ixia400C {ixPuts -nonewline IXIA 400C} \ $::ixia1600T {ixPuts -nonewline IXIA 1600T} \ $::ixiaDemo {ixPuts -nonewline IXIA Demo} \ $::ixiaOptIxia {ixPuts -nonewline IXIA OptIxia} \ $::ixiaOpixJr {ixPuts -nonewline IXIA OpixJr} \ default {ixPuts -nonewline Unknown} set maxCards [chassis cget -maxCardCount] ixPuts , which can accommodate $maxCards cards

A-58

Ixia Tcl Development Guide

chassis

# Add a chassis chassis chassis chassis

chassis as the master setDefault config -id $chas1 config -sequence 1 add $host1

# And give it a name after the fact chassis config -name test-chassis chassis set $host1 chassis writeAll $host1 # Make sure its the master chassis getFromID $chas1 set master [chassis cget -master] ixPuts $host1 is $masterSlave($master) chassis get $host2 set chas2 [chassis cget -id] chassis setDefault chassis config -id $chas2 chassis config -sequence 2 chassis config -cableLength cable6feet chassis add $host2 # Make sure its not the master chassis getFromID $chas2 set master [chassis cget -master] ixPuts $host2 is $masterSlave($master) # Release the chassis chassis del $host1 chassis del $host2

SEE ALSO

Ixia Tcl Development Guide

A-59

chassisChain

NAME - chassisChain
chassisChain - configure an entire chassis chain SYNOPSIS DESCRIPTION chassisChain sub-command options The chassisChain command is used to write configuration parameters to all chassis in the chain.

STANDARD OPTIONS
delayChassisStartTime

The number of seconds to delay test application after a start.(default = 5) The chassisChain command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

COMMANDS

chassisChain broadcastTopology After a chassis is added to or deleted from a chain, it must broadcast its existence to the rest of the chassis in the chain. NOTE: This command doesnt return a value. chassisChain cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the chassisChain command. chassisChain config option value Modify the configuration options of the chassisChain. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for chassisChain. chassisChain get chasID Gets the current configuration of the chassisChain with chasID from hardware. Call this command before calling chassisChain cget option value to get the value of the configuration option. chassisChain set Sets the Chassis Chain configuration by reading the configuration option values set by the chassisChain config option value command. chassisChain setDefault Sets default values for all configuration options. chassisChain removeAll Removes or disconnects from all the chassis in the chain.

A-60

Ixia Tcl Development Guide

chassisChain

chassisChain validChain Verify whether the chain is valid. A valid chain has at least one chassis assigned as a master. Specific errors are:
There is no master in the chain

chassisChain write groupID Writes or commits the changes in IxHAL to hardware for every chassis that is a member of groupID. Before using this command, use the set commands for streams, capture and filter parameters on each port. The advantage of using this command is that the entire chassis chain configuration can be written into hardware at one time instead of writing into hardware for each stream, capture and filters on each port. Specific errors are:
A port group with the specified groupID has not been created Network problem between the client and chassis

EXAMPLES SEE ALSO

See examples under chassis chassis, portGroup

Ixia Tcl Development Guide

A-61

collisionBackoff

NAME - collisionBackoff
collisionBackoff - configure the collision backoff parameters for 10/100 ports SYNOPSIS DESCRIPTION collisionBackoff sub-command options The collisionBackoff command is used to configure the parameters for collision backoff operations for 10/100 ports.

STANDARD OPTIONS
collisionConstant

Each successive retry operates by selecting a time slot over a range that doubles with each retry (2, 4, 8, ... 1024). This value controls the maximum number of time slots used. The values are powers of 2 from 0 through 1024. (default = 10) If set, when a collision occurs, continuously retransmit the packet until the maxRetryCount is exhausted. (default = false) The maximum number of retries for each packet. (default = 16) If set, when a collision occurs, wait a random amount of time before retrying the transmission. The maxRetryCount and collisionConstant values govern how often and long retries will be attempted. (default = true) The collisionBackoff command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available. Returns the current value of the configuration option given by option. Option may have any of the values accepted by the collisionBackoff command.

continuousRetransmit

true / false

maxRetryCount random true / false

COMMANDS

collisionBackoff cget option

collisionBackoff config option value Modify the Collision Backup configuration options of the port. If no option is specified, returns a list describing all of the available Collision Backoff options (see STANDARD OPTIONS) for port. collisionBackoff get chasID cardID portID Gets the current Collision Backoff configuration of the port with id portID on card cardID, chassis chasID. Call this command before calling collisionBackoff cget option value to get the value of the configuration option. collisionBackoff setDefault Sets default values for all configuration options. collisionBackoff set chasID cardID portID Sets the Collision Backoff configuration of the port with id portID on card cardID, chassis chasID by reading the configuration option values set by the collisionBackoff config option value command. EXAMPLES SEE ALSO See examples under forcedCollisions forcedCollisions

A-62

Ixia Tcl Development Guide

dataIntegrity

NAME - dataIntegrity
dataIntegrity - configure the Data Integrity parameters. SYNOPSIS DESCRIPTION dataIntegrity sub-command options The dataIntegrity command is used to configure the parameters for Data Integrity operations for Gigabit and OC-12/OC-48 ports. Data integrity values are additional checksums taken over a subset of a packet. In order for data integrity to operate, receiveMode portRxDataIntegrity must be performed (and committed).

STANDARD OPTIONS
enableTimeStamp

true/false true/false
signature

For receive-mode only. Indicates that the received data integrity packets are expected to have a 48-bit timestamp before the FCS value. (default = false) For transmit-mode only. Inserts the data integrity signature into the transmitted stream. (default = false) In the transmitted packet, the signature uniquely identifies the transmitted packet as one destined for receive port data integrity filtering .. On the receive port, the signature is used to filter only those packets that have a matching signature. (default = 08 71 18 05) The offset, within the packet, of the data integrity signature. (default = 40) The dataIntegrity command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

insertSignature

signatureOffset

COMMANDS

dataIntegrity cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the dataIntegrity command. dataIntegrity config option value Modify the Data Integrity configuration options of the port. If no option is specified, returns a list describing all of the available Data Integrity options (see STANDARD OPTIONS) for port. dataIntegrity getRx chasID cardID portID Gets the current receive Data Integrity configuration of the port with id portID on card cardID, chassis chasID. Call this command before calling dataIntegrity cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

Ixia Tcl Development Guide

A-63

dataIntegrity

dataIntegrity getTx chasID cardID portID streamID Gets the current transmit Data Integrity configuration of the stream with id portID on card cardID, chassis chasID, stream streamID. Call this command before calling dataIntegrity cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number The stream does not exist

dataIntegrity setDefault Sets default values for all configuration options. dataIntegrity setRx chasID cardID portID Sets the receive Data Integrity configuration of the port with id portID on card cardID, chassis chasID by reading the configuration option values set by the dataIntegrity config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user Configured parameters are not valid for this setting

dataIntegrity setTx chasID cardID portID streamID Sets the transmit Data Integrity configuration of the stream with id portID on card cardID, chassis chasID, and stream streamID by reading the configuration option values set by the dataIntegrity config option value command. After calling this command, the Data Integrity configuration should be committed to hardware using stream write or ixWriteConfigToHardware commands. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user Configured parameters are not valid for this setting The stream does not exist

EXAMPLES

package require IxTclHal # In this example well use an OC12c card with port 1 (transmit) is # directly connected to port 2 (receive) # Data integrity is transmitted with a time stamp and received and checked # by the receive port # Connect to chassis and get chassis ID set host galaxy ixInitialize $host set chas [ixGetChassisID $host] # Assumes that card 2 is a OC12c card with ports 1 and 2 directly connected set card 2 set txPort 1 set rxPort 2

A-64

Ixia Tcl Development Guide

dataIntegrity

# Useful port lists set portList [list [list $chas $card $txPort] \ [list $chas $card $rxPort]] # Set up Transmit Port # Nothing special about the port port setFactoryDefaults $chas $card $txPort port setDefault port set $chas $card $txPort # One sonet sonet sonet port must use recovered clock and the other not setDefault config -useRecoveredClock true set $chas $card $txPort

# Stream: 100,000 packets stream setDefault stream config -numFrames stream config -framesize stream config -fir stream config -dma stream config -percentPacketRate stream config -rateMode stream set $chas $card $txPort 1

100000 4148 true stopStream 100 usePercentRate

dataIntegrity setDefault dataIntegrity config -insertSignature true dataIntegrity setTx $chas $card $txPort 1

# Set up the Receive Port # Set the receive mode to data integrity port setFactoryDefaults $chas $card $rxPort port setDefault port config -receiveMode portRxDataIntegrity port set $chas $card $rxPort # This port does not use recovered clock sonet setDefault sonet config -useRecoveredClock false sonet set $chas $card $rxPort # Enable receive mode DI and expect a time stamp dataIntegrity setDefault dataIntegrity config -enableTimeStamp true dataIntegrity setRx $chas $card $rxPort # Commit to hardware ixWritePortsToHardware portList # Make sure link is up after 1000 ixCheckLinkState portList # Clear stats on receive side and start transmitting ixClearPortStats $chas $card $rxPort ixStartPortTransmit $chas $card $txPort after 1000 # Wait until done

Ixia Tcl Development Guide

A-65

dataIntegrity

ixCheckPortTransmitDone $chas $card $txPort # Get the DI frames received and errors stat get allStats $chas $card $rxPort set diFrames [stat cget -dataIntegrityFrames] set diErrors [stat cget -dataIntegrityErrors] ixPuts $diFrames Data Integrity Frames received, $diErrors errors

SEE ALSO

A-66

Ixia Tcl Development Guide

dhcp

NAME - dhcp
dhcp - configure the DHCP parameters on a stream of a port. SYNOPSIS DESCRIPTION dhcp sub-command options The dhcp command is used to configure the DHCP parameters. Refer to RFC 2131 and RFC 2132 for detailed descriptions of DHCP.

STANDARD OPTIONS
bootFileName

Boot file name, null terminated string; "generic" name or null in DHCPDISCOVER, fully qualified directory-path name in DHCPOFFER. (default = " ") Client hardware address. (default = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00) Client IP address. Only filled in if client is in BOUND, RENEW or REBINDING state and can respond to ARP requests. (default = 0.0.0.0) Available option values are:
Option dhcpNoBroadcast dhcpBroadcast Value 0 (default) Do Usage

clientHwAddr

clientIpAddr

flags

not broadcast

0x8000 Broadcast

hops hwLen hwType

Set to zero by client. (default = 0) Hardware address length. (default = 6) Hardware address types. Available option values are:
Option dhcpEthernet10Mb dhcpEthernet3Mb dhcpAmateur dhcpProteon dhcpChaos dhcpIEEE dhcpARCNET dhcpHyperchannel dhcpLanstar dhcpAutonet dhcpLocalTalk dhcpLocalNet dhcpUltraLink dhcpSMDS Value 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Usage (default) Ethernet 10 Mb Ethernet 3 Mb Amateur radio AX.25 Proteon ProNET token ring Chaos IEEE 802 networks ARCNET Hyperchannel LanStar Autonet short address LocalTalk LocalNet Ethernet SMDS

Ixia Tcl Development Guide

A-67

dhcp

Option dhcpFrameRelay dhcpATM1 dhcpHDLC dhcpFibreChannel dhcpATM2 dhcpSerialLine dhcpATM3

Value 15 16 17 18 19 20 21 Frame Relay ATM HDLC Fibre Channel ATM Serial Line ATM

Usage

opCode

Operation code. Available option values are:


Option dhcpBootRequest dhcpBootReply Value 1 2 Usage (default) BOOTP request BOOTP reply

optionCode

The code field of the options section of the DHCP frame. Available codes are:
Option dhcpPad dhcpEnd dhcpSubnetMask dhcpTimeOffset dhcpGateways dhcpTimeServer dhcpNameServer dhcpDomainNameServer dhcpLogServer dhcpCookieServer dhcpLPRServer dhcpImpressServer dhcpResourceLocationServer dhcpHostName dhcpBootFileSize dhcpMeritDumpFile dhcpDomainName dhcpSwapServer dhcpRootPath dhcpExtensionPath Value 0 255 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 (default) Usage

IP Layer Parameters per Host


Option dhcpIpForwardingEnable dhcpNonLocalSrcRoutingEnable dhcpPolicyFilter dhcpMaxDatagramReassemblySize Value 19 20 21 22 Usage

A-68

Ixia Tcl Development Guide

dhcp

Option dhcpDefaultIpTTL dhcpPathMTUAgingTimeout

Value 23 24

Usage

IP Layer Parameters per Interface


Option dhcpPathMTUPlateauTable dhcpInterfaceMTU dhcpAllSubnetsAreLocal dhcpBroadcastAddress dhcpPerformMaskDiscovery dhcpMaskSupplier dhcpPerformRouterDiscovery dhcpRouterSolicitAddr dhcpStaticRoute Value 25 26 27 28 29 30 31 32 33 Usage

Link Layer Parameters per Interface


Option dhcpTrailerEncapsulation dhcpARPCacheTimeout dhcpEthernetEncapsulation Value 34 35 36 Usage

TCP Parameters
Option dhcpTCPDefaultTTL dhcpTCPKeepAliveInterval dhcpTCPKeepGarbage Value 37 38 39 Usage

Application And Service Parameters


Option dhcpNISDomain dhcpNISServer dhcpNTPServer dhcpVendorSpecificInfo dhcpNetBIOSNameSvr dhcpNetBIOSDatagramDistSvr dhcpNetBIOSNodeType dhcpNetBIOSScope dhcpXWinSysFontSvr Value 40 41 42 43 44 45 46 47 48 Usage

DHCP Extensions
Option dhcpRequestedIPAddr Value 50 Usage

Ixia Tcl Development Guide

A-69

dhcp

Option dhcpIPAddrLeaseTime dhcpOptionOverload dhcpTFTPSvrName dhcpBootFileName dhcpMessageType dhcpSvrIdentifier dhcpParamRequestList dhcpMessage dhcpMaxMessageSize dhcpRenewalTimeValue dhcpRebindingTimeValue dhcpVendorClassId dhcpClientId dhcpXWinSysDisplayMgr dhcpNISplusDomain dhcpNISplusServer dhcpMobileIPHomeAgent dhcpSMTPSvr dhcpPOP3Svr dhcpNNTPSvr dhcpWWWSvr dhcpDefaultFingerSvr dhcpDefaultIRCSvr dhcpStreetTalkSvr dhcpSTDASvr

Value 51 52 66 67 53 54 55 56 57 58 59 60 61 49 64 65 68 69 70 71 72 73 74 75 76

Usage

optionData optionDataLength relayAgentIpAddr seconds

The data in the options section of the DHCP frame. (default = { }) The length of the data in the options section of the DHCP frame. (default = 0) Relay agent IP address, used in booting via a relay agent. (default = 0.0.0.0) Seconds elapsed since client began address acquisition or renewal process. (default = 0) Optional server host name, null terminated string. (default =) IP address of next server to use in bootstrap; returned in DHCPOFFER, DHCPACK by server. (default = 0.0.0.0) Random number chosen by client and used by the client and server to associate messages and responses between a client and a server. (default = 0) 'your' (client) IP address. (default = 0.0.0.0)

serverHostName serverIpAddr

transactionID

yourIpAddr

A-70

Ixia Tcl Development Guide

dhcp

COMMANDS dhcp cget option

The dhcp command is invoked with the following sub-commands. If no subcommand is specified, returns a list of all sub-commands available.

Returns the current value of the configuration option given by option. Option may have any of the values accepted by the dhcp command. dhcp config option value Modify the configuration options of the dhcp. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for arp. dhcp decode capFrame [chasID cardID portID] Decodes a captured frame in the capture buffer and updates TclHal. dhcp getOption command can be used after decoding to get the option data. If chasID, cardID and portID are omitted, then packet offsets for Ethernet packets are used. Specific errors are:
No connection to a chassis The captured frame is not a valid DHCP packet

dhcp get chasID cardID portID Gets the current configuration of the dhcp frame for port with id portID on card cardID, chassis chasID. from its hardware. Call this command before calling dhcp cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

dhcp getOption optionCodeType Gets the option data for optionCodeType. Specific errors are:
There is no option data for the optionCodeType.

dhcp set chasID cardID portID Sets the configuration of the dhcp in IxHAL for port with id portID on card cardID, chassis chasID by reading the configuration option values set by the dhcp config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port

dhcp setDefault Sets default values for all configuration options. dhcp setOption optionCodeType Sets the option data for optionCodeType. Specific errors are:
The configured parameters are not valid for this port

Ixia Tcl Development Guide

A-71

dhcp

EXAMPLES

package require IxTclHal # In this example well generate a DHCP response packet # with a number of option fields # Connect to chassis and get chassis ID set host galaxy ixInitialize $host set chas [ixGetChassisID $host] # Assume card to be used is in slot 1 set card 1 set port 1 set portList [list [list $chas $card $port]] # Put the port in loopback mode port setFactoryDefaults $chas $card $port port setDefault # Stream: 1 packet at 1%, with framesize large enough to hold all options stream setDefault stream config -numFrames 1 stream config -dma stopStream stream config -rateMode usePercentRate stream config -percentPacketRate 1 stream config -framesize 512 # Set up IP: icmp with 46 byte packet ip setDefault ip config -ipProtocol udp ip config -totalLength 494 ip set $chas $card $port # Set up protocol protocol protocol protocol setDefault config -name config -appName

ipV4 Dhcp

# Set up UDP udp setDefault udp config -sourcePort udp config -destPort udp set $chas $card $port # Setup DHCP with options dhcp setDefault dhcp config -opCode dhcp config -hwType dhcp config -hwLen dhcp config -flags dhcp config -yourIpAddr dhcp config -serverIpAddr dhcp config -clientHwAddr # Options dhcp config -optionData dhcp setOption dhcpSubnetMask dhcp config -optionData dhcp setOption dhcpRouter dhcp setOption dhcpGateways dhcp config -optionData

bootpClientPort bootpServerPort

dhcpBootReply dhcpEthernet10Mb 6 dhcpBroadcast 192.168.18.154 192.168.18.2 {01 02 03 04 05 06}

255.255.255.0 192.168.18.254

192.168.18.2

A-72

Ixia Tcl Development Guide

dhcp

dhcp dhcp dhcp dhcp

setOption dhcpNameServer config -optionData setOption dhcpDomainName set $chas $card $port

widgets.com

stream set $chas $card $port 1 port set $chas $card $port ixWritePortsToHardware portList

SEE ALSO

capture, captureBuffer

Ixia Tcl Development Guide

A-73

filter

NAME - filter
filter - configure the filters of a port of a card on a chassis. SYNOPSIS DESCRIPTION filter sub-command options The filter command is used to configure the filters and capture triggers for receiving frames on a port of a card. The incoming frames can be filtered on a combination of varying constraints, such as destination or source address, pattern matching or specific error conditions.

STANDARD OPTIONS
asyncTrigger1DA

true/false true/false

Enables or disables User Defined Statistics counter 5 to filter on the destination MAC addresses. (default = false) Enables or disables User Defined Statistics counter 5 that counts the number of frames filtered. To use this counter the stat mode has to be set to statStreamTrigger. (default = false) Enables or disables User Defined Statistics counter 5 filter on the errored frames. (default = false) Enables or disables the frame size constraint which specifies a range of frame sizes to filter for User Defined Statistics counter 5. (default = false) The minimum range of the size of frame to be filtered for User Defined Statistics counter 5. Applicable only when asyncTrigger1FramesizeEnable is set to true. (default = 64) The maximum range of the size of frame to be filtered for User Defined Statistics counter 5. Applicable only when asyncTrigger1FramesizeEnable is set to true. (default = 1518) Enables or disables User Defined Statistics counter 5 to filter on the pattern. (default = false) Enables or disables User Defined Statistics counter 5 to filter on the source MAC addresses. (default = false) Enables or disables User Defined Statistics counter 6 to filter on the destination MAC addresses. (default = false) Enables or disables User Defined Statistics counter 6 that counts the number of frames filtered. (default = false) To use this counter the stat mode has to be set to statStreamTrigger. Enables or disables User Defined Statistics counter 6 filter on the errored frames. (default = false)

asyncTrigger1Enable

asyncTrigger1Error

true/false

asyncTrigger1Frame SizeEnable true/false asyncTrigger1Frame SizeFrom

asyncTrigger1Frame SizeTo

asyncTrigger1Pattern

true/false true/false true/false true/false

asyncTrigger1SA

asyncTrigger2DA

asyncTrigger2Enable

asyncTrigger2Error

A-74

Ixia Tcl Development Guide

filter

asyncTrigger2Frame SizeEnable true/false asyncTrigger2Frame SizeFrom

Enables or disables the frame size constraint which specifies a range of frame sizes to filter for User Defined Statistics counter 6. (default = false) The minimum range of the size of frame to be filtered for User Defined Statistics counter 6. Applicable only when asyncTrigger1FramesizeEnable is set to true. (default = 64) The maximum range of the size of frame to be filtered for User Defined Statistics counter 6. Applicable only when asyncTrigger1FramesizeEnable is set to true. (default = 1518) Enables or disables User Defined Statistics counter 6 to filter on the pattern. (default = false) Enables or disables User Defined Statistics counter 6 to filter on the source MAC addresses. (default = false) One of two available destination MAC addresses to filter on. Applicable only when capturefilternable is set to true. The possible values are:
Option anyAddr addr1 Value 0 1 Usage (default) disables the destination address filter constraint sets the destination address filter constraint to trigger on frames with a destination MAC address that matches DA1and DA1mask as specified in the filter palette sets the destination address filter constraint to trigger on all frames except those with a destination MAC address that matches DA1 and DA1 mask as specified in the filter palette sets the destination address filter constraint to trigger on frames with a destination MAC address that matches DA2 and DA2mask as specified in the filter palette sets the destination address filter constraint to trigger on all frames except those with a destination MAC address that matches DA2 and DA2 mask as specified in the filter palette

asyncTrigger2Frame SizeTo

asyncTrigger2Pattern

true/false true/false

asyncTrigger2SA

captureFilterDA

notAddr1

addr2

notAddr2

captureFilterEnable

true/false

Enables or disables the capture filter. (default = false) Applicable only when captureFilterEnable is set to true. The possible values are:
Option errAnyFrame errGoodFrame errBadCRC errBadFrame Value 0 1 2 3 Usage (default) disables the error filter constraint sets the error filter constraint to trigger when frames with no errors are received sets the error filter constraint to trigger when frames with bad CRC errors are received sets the error filter constraint to trigger when corrupted frames are received

captureFilterErrror

Ixia Tcl Development Guide

A-75

filter

Option errAlign errDribble errLineError errLineAndBadCRC errLineAndGoodCRC

Value 4 5 6 7 8

Usage sets the error filter constraint to trigger when frames with alignment errors are received (10/100 only) sets the error filter constraint to trigger when frames with dribble errors are received (10/100 only) sets the error filter constraint to trigger when frames with line errors are received (gigabit only) sets the error filter constraint to trigger line errors and bad CRC are received (gigabit only) sets the error filter constraint to trigger when frames with line errors and bad CRC are received (gigabit only) sets the error filter constraint to trigger when undersized frames (less than 64 bytes) are received sets the error filter constraint to trigger when oversized frames (greater than 1518 bytes) are received sets the error filter constraint to trigger when fragmented frames are received

errUndersize errOversize errFragment

9 10 11

captureFilterFrame SizeEnable true/false captureFilterFrame SizeFrom captureFilterFrame SizeTo captureFilterPattern

Enables or disables the frame size constraint which specifies a range of frame sizes to filter. (default = false) Applicable only when captureFilterFrameSizeEnable is enabled. The minimum range of the size of frame to be filtered. (default = 64) Applicable only when captureFilterFrameSizeEnable is enabled. The maximum range of the size of frame to be filtered. (default = 1518) Applicable only when capturefilternable is set to true. The possible values are:
Option anyPattern pattern1 Value 0 1 Usage (default) disables the pattern filter constraint sets the pattern filter constraint to trigger on frames with a pattern that matches pattern1and patternMask1 at offset patternOffset1 as specified in the filter palette sets the pattern filter constraint to trigger on frames except those with a pattern that matches pattern1and patternMask1 at offset patternOffset1 as specified in the filter palette sets the pattern filter constraint to trigger on frames with a pattern that matches pattern2 and patternMask2 at offset patternOffset2 as specified in the filter palette sets the pattern filter constraint to trigger on frames except those with a pattern that matches pattern2and patternMask2 at offset patternOffset2 as specified in the filter palette sets the pattern filter constraint to trigger on frames with a pattern that matches pattern1, pattern2 and patternMask1, patternMask2 at offset patternOffset1 and patternOffset2 as specified in the filter palette

notPattern1

pattern2

notPattern2

pattern1AndPattern2

A-76

Ixia Tcl Development Guide

filter

captureFilterSA

One of two available destination MAC addresses to filter on. Applicable only when capturefilternable is set to true. The possible values are:
Option anyAddr addr1 Value 0 1 Usage (default) disables the destination address filter constraint sets the destination address filter constraint to trigger on frames with a destination MAC address that matches SA1and DA1mask as specified in the filter palette sets the destination address filter constraint to trigger on all frames except those with a destination MAC address that matches SA1 andSA1 mask as specified in the filter palette sets the destination address filter constraint to trigger on frames with a destination MAC address that matches SA2 and SA2mask as specified in the filter palette sets the destination address filter constraint to trigger on all frames except those with a destination MAC address that matches SA2 and SA2 mask as specified in the filter palette

notAddr1

addr2

notAddr2

captureTriggerDA

One of two available destination MAC addresses to filter on. Applicable only when captureTriggerEnable is set to true. The possible values are as in capturefilteredA. (default = 0) Enables or disables the capture trigger. (default = false) Applicable only when captureTriggerEnable is set to true. The possible values are as in capturefilterrror. (default = 0) Enables or disables the frame size constraint which specifies a range of frame sizes to trigger. (default = false) Applicable only when captureTriggerFrameSizeEnable is enabled. The minimum range of the size of frame to be triggered. (default = 64) Applicable only when captureTriggerFrameSizeEnable is enabled. The maximum range of the size of frame to be triggered. (default = 1518) Applicable only when captureTriggerEnable is set to true. The possible values are as in captureFilterPattern. (default = 0) One of two available source MAC addresses to filter on. Applicable only when captureTriggerEnable is set to true. The possible values are as in captureFilterSA. (default = 0) One of two available destination MAC addresses to filter on. Applicable only when userDefinedStat1Enable is set to true. The possible values are as in capturefilteredA. (default = 0) Enables or disables the User Defined Statistics counter 1 that counts the number of frames filtered. (default = false)

captureTriggerEnable

true/false

captureTriggerError

captureTriggerFrame SizeEnable true/false captureTriggerFrame SizeFrom captureTriggerFrame SizeTo captureTriggerPattern

captureTriggerSA

userDefinedStat1DA

userDefinedStat1 Enable true/false

Ixia Tcl Development Guide

A-77

filter

userDefinedStat1Error

Applicable only when userDefinedStat1Enable is set to true. The possible values are as in capturefilterrror. Enables or disables the frame size constraint which specifies a range of frame sizes to count. (default = false) Applicable only when userDefinedStat1FrameSizeEnable is enabled. The minimum range of the size of frame to be counted. (default = 64) Applicable only when userDefinedStat1FrameSizeEnable is enabled. The maximum range of the size of frame to be counted. (default = 1518) Applicable only when userDefinedStat1Enable is set to true. The possible values are as in captureFilterPattern. (default = 0) One of two available source MAC addresses to filter on. Applicable only when userDefinedStat1Enable is set to true. The possible values are as in captureFilterSA. (default = 0) One of two available destination MAC addresses to filter on. Applicable only when userDefinedStat2Enable is set to true. The possible values are as in capturefilteredA. (default = 0) Enables or disables User Defined Statistics counter 2 that counts the number of frames filtered. (default = false) Applicable only when userDefinedStat2Enable is set to true. The possible values are as in capturefilterrror. (default = 0) Enables or disables the frame size constraint which specifies a range of frame sizes to count. (default = false) Applicable only when userDefinedStat2FrameSizeEnable is enabled. The minimum range of the size of frame to be counted. (default = 64) Applicable only when userDefinedStat2FrameSizeEnable is enabled. The maximum range of the size of frame to be counted. (default = 1518) Applicable only when userDefinedStat2Enable is set to true. The possible values are as in captureFilterPattern. (default = 0) One of two available source MAC addresses to filter on. Applicable only when userDefinedStat2Enable is set to true. The possible values are as in captureFilterSA. (default = 0)

userDefinedStat1Frame SizeEnable true/false userDefinedStat1Frame SizeFrom userDefinedStat1Frame SizeTo userDefinedStat1 Pattern userDefinedStat1SA

userDefinedStat2DA

userDefinedStat2 Enable true/false userDefinedStat2Error

userDefinedStat2Frame SizeEnable true/false userDefinedStat2Frame SizeFrom userDefinedStat2Frame SizeTo userDefinedStat2 Pattern userDefinedStat2SA

COMMANDS The filter command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available. filter cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the filter command.

A-78

Ixia Tcl Development Guide

filter

filter config option value Modify the configuration options of the filter. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for filter. filter get chasID cardID portID Gets the current configuration of the filter for port with id portID on card cardID, chassis chasID. from its hardware. Call this command before calling filter cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

filter set chasID cardID portID Sets the configuration of the filter in IxHAL for port with id portID on card cardID, chassis chasID by reading the configuration option values set by the filter config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port

filter setDefault Sets default values for all configuration options. EXAMPLES

package require IxTclHal # # # # In this example well generate a range of packets with different frame sizes, DA/SA and data pattern in order to demonstrate how a directly attached port can collect specific statistics and trigger/filter on contents

# Connect to chassis and get chassis ID set host 400-031561 ixInitialize $host set chas [ixGetChassisID $host] # Assume card to be used is in slot 1 set card 1 set txPort 1 set rxPort 2 set portList [list [list $chas $card $txPort] \ [list $chas $card $rxPort] ] port setFactoryDefaults $chas $card $txPort port setDefault stream stream stream stream stream stream stream stream stream stream setDefault config -numFrames config -dma config -frameSizeType config config config config config config -sa -saRepeatCounter -saMaskSelect -da -daRepeatCounter -daMaskSelect

100000 stopStream sizeRandom {00 00 00 01 01 contIncrement {FF FF FF FC FC {00 00 00 01 01 contIncrement {FF FF FF FC FC 01} FC} 02} FC}

Ixia Tcl Development Guide

A-79

filter

stream set $chas $card $txPort 1 port set $chas $card $txPort port setFactoryDefaults $chas $card $rxPort port setDefault filter filter filter filter filter filter filter filter filter filter filter filter filter setDefault config -captureTriggerDA config -captureTriggerSA config -captureTriggerEnable config config config config config config config config config -captureFilterPattern -captureFilterFrameSizeEnable -captureFilterFrameSizeFrom -captureFilterFrameSizeTo -captureFilterEnable -userDefinedStat1Enable -userDefinedStat2Enable -userDefinedStat1DA -userDefinedStat2SA

addr1 addr1 true pattern1 true 128 1024 true true true addr1 addr1

filter set $chas $card $rxPort filterPallette filterPallette filterPallette filterPallette filterPallette filterPallette port set $chas setDefault config -DA1 {00 config -SA1 {00 config -pattern1 {02 config -patternMask1 {02 set $chas $card $rxPort $card $rxPort

00 00 01 01 02} 00 00 01 01 01} 02} 02}

ixWritePortsToHardware portList after 1000 ixCheckLinkState portList ixClearPortStats $chas $card $rxPort ixStartPortCapture $chas $card $rxPort ixStartPortTransmit $chas $card $txPort after 1000 ixCheckPortTransmitDone $chas $card $txPort ixStopPortCapture $chas $card $rxPort

stat get allStats $chas $card $rxPort set userStat1 set userStat2 set triggered [stat cget -userDefinedStat1] [stat cget -userDefinedStat2] [stat cget -captureTrigger]

capture get $chas $card $rxPort set captured [capture cget -nPackets] ixPuts $captured captured, $triggered triggered ixPuts stat1 = $userStat1, stat2 = $userStat2

SEE ALSO

filterPallette

A-80

Ixia Tcl Development Guide

filterPallette

NAME - filterPallette
filterPallette - configure the filter palettes of a port on a card on a chassis. SYNOPSIS DESCRIPTION filterPallette sub-command options The filterPallette command is used to configure the information that the receiving frames are going to be filtered on. This palette applies to all the filters (capture trigger, capture filter, user defined statistics 1 and 2) that are enabled by the filter command.

STANDARD OPTIONS
DA1

Only frames that contain this destination MAC address are filtered, captured or counted. (default = 00 00 00 00 00 00) Only frames that contain this destination MAC address are filtered, captured or counted. (default = 00 00 00 00 00 00) A bit mask that allows the user to specify which bits of the DA1 should be used when filtering. If the mask bit is set high, the pattern bit will be used in the filter. (default = 00 00 00 00 00 00) A bit mask that allows the user to specify which bits of the DA2 should be used when filtering. If the mask bit is set high, the pattern bit will be used in the filter. (default = 00 00 00 00 00 00) Match type for pattern1 set in class member pattern1. The available match types are:
Option matchIpEthernetII matchIp8023Snap matchVlan matchUser matchIpPpp matchIpCiscoHdlc matchIpSAEthernetII matchIpDAEthernetII matchIpSADAEthernetII Value 0 1 2 3 4 5 6 7 8 Usage an Ethernet II packet. an 802.3 SNAP packet. a VLAN tagged packet. (default) a value as specified by pattern1, pattern Mask1 and patternOffset1. a PPP format packet a Cisco HDLC format packet. match the IP Source Address for an Ethernet II packet located at offset 26. match the IP Destination Address for an Ethernet II packet located at offset 30. match the IP Source and Destination Address for an Ethernet II packet located at offset 26. match the IP Source Address for an 802.3 Snap packet located at offset 34. match the IP Destination Address for an 802.3 Snap packet located at offset 38.

DA2

DAMask1

DAMask2

matchType1

matchIpSA8023Snap matchIpDA8023Snap

9 10

Ixia Tcl Development Guide

A-81

filterPallette

Option matchIpSADA8023Snap

Value 11

Usage match the IP Source and Destination Address for an 802.3 Snap packet located at offset 34. match the IP Source Address for an POS packet located at offset 16. match the IP Destination Address for an POS packet located at offset 20. match the IP Source and Destination Addresses for an POS packet located at offset 16. match the TCP Source Port for an Ethernet II packet located at offset 34. match the TCP Destination Port for an Ethernet II packet located at offset 36. match the UDP Source Port for an Ethernet II packet located at offset 34. match the IP Source Address for an POS packet located at offset 16. match the IP Destination Address for an POS packet located at offset 20. match the IP Source and Destination Addresses for an POS packet located at offset 16. match the TCP Source Port for an Ethernet II packet located at offset 34. match the TCP Destination Port for an Ethernet II packet located at offset 36. match the UDP Source Port for an Ethernet II packet located at offset 34. match the UDP Destination Port for an Ethernet II packet located at offset 36. match the TCP Source Port for an 802.3 Snap packet located at offset 42. match the TCP Destination Port for an 802.3 Snap packet located at offset 44. match the UDP Source Port for an 802.3 Snap packet located at offset 42. match the UDP Destination Port for an 802.3 Snap packet located at offset 44 match the TCP Source Port for a POS packet located at offset 24. match the TCP Destination Port for a POS packet located at offset 26. match the UDP Source Port for a POS packet located at offset 24. match the UDP Source Port for a POS packet located at offset 26

matchIpSAPos matchIpDAPos matchIpSADAPos

12 13 14

matchTcpSourcePortIPEthernetII matchTcpDestPortIPEthernetII

15 16

matchUdpSourcePortIPEthernetII 17 matchIpSAPos matchIpDAPos matchIpSADAPos 12 13 14

matchTcpSourcePortIPEthernetII matchTcpDestPortIPEthernetII

15 16

matchUdpSourcePortIPEthernetII 17 matchUdpDestPortIPEthernetII 18

matchTcpSourcePortIP8023Snap 19 matchTcpDestPortIP8023Snap 20

matchUdpSourcePortIP8023Snap 21 matchUdpDestPortIP8023Snap matchTcpSourcePortIPPos matchTcpDestPortIPPos matchUdpSourcePortIPPos matchUdpDestPortIPPos (22) 23 24 25 26

matchType2

Match type for pattern2. The available match types are as in matchType1.

A-82

Ixia Tcl Development Guide

filterPallette

pattern1

Only frames that contain this pattern at offset patternOffset1 are filtered, captured or counted. (default = 00) Only frames that contain this pattern at offset patternOffset2 are filtered, captured or counted. (default = 00) A bit mask that allows the user to specify which bits of pattern1 should be used when filtering. If the mask bit is set high, the pattern bit will be used in the filter. (default = 00) A bit mask that allows the user to specify which bits of pattern2 should be used when filtering. If the mask bit is set high, the pattern bit will be used in the filter. (default = 00) Offset of pattern1 in the frame to be filtered, captured or counted. (default = 12) Offset of pattern2 in the frame to be filtered, captured or counted. (default = 12) Only frames that contain this source MAC address are filtered, captured or counted. (default = 00 00 00 00 00 00) Only frames that contain this source MAC address are filtered, captured or counted. (default = 00 00 00 00 00 00) A bit mask that allows the user to specify which bits of the SA1 should be used when filtering. If the mask bit is set high, the pattern bit will be used in the filter. (default = 00 00 00 00 00 00) A bit mask that allows the user to specify which bits of the SA2 should be used when filtering. If the mask bit is set high, the pattern bit will be used in the filter. (default = 00 00 00 00 00 00)

pattern2

patternMask1

patternMask2

patternOffset1 patternOffset2 SA1

SA2

SAMask1

SAMask2

DEPRECATED STANDARD OPTIONS


type1 type2 typeMask1 typeMask2

COMMANDS

The filterPallette command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

filterPallette cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the filterPallette command.

Ixia Tcl Development Guide

A-83

filterPallette

filterPallette config option value Modify the configuration options of the filterPallette. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for filterPallette. filterPallette get chasID cardID portID Gets the current config of the filterPallette on port portID on card cardID, chassis chasID. from its hardware. Call this command before calling filterPallette cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

filterPallette set chasID cardID portID Sets the configuration of the filterPallette in IxHAL on port with id portID on card cardID, chassis chasID by reading the configuration option values set by the filterPallette config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port

filterPallette setDefault Sets default values for all configuration options. filterPallette write chasID cardID portID Writes or commits the changes in IxHAL to hardware for the filter palette on port with id portID on card cardID, chassis chasID. Before using this command, use the filterPallette set command to configure the filterPallette related parameters in IxHAL. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port Network problem between the client and chassis

EXAMPLES SEE ALSO

See examples under filter. filter

A-84

Ixia Tcl Development Guide

forcedCollisions

NAME - forcedCollisions
forcedCollisions - configure the forced collision parameters for 10/100 ports SYNOPSIS DESCRIPTION forcedCollisions sub-command options The forcedCollisions command is used to configure the forced collision parameters.

STANDARD OPTIONS
collisionDuration consecutiveCollisions

The duration of each collision, measured in nibbles. (default = 10) The number of consecutive collisions to generate at a time. Collisions take place on the first received packet after enabled. (default = 4) After each time that the number of programmed consecutive collisions have occurred this is the number of packets that will not be modified. (default = 4) If true, the pattern of collisions and non-collisions is repeated indefinitely. (default = true) Enables the generation of forced collisions. (default = false) The offset from the beginning of packet active carrier sense (the beginning of the preamble) to the start of the collision, measured in nibbles. (default = 64) If continuous operation is not selected, this value is the number of times that the pattern of collisions/non-collisions is repeated. (default = 2) The forcedCollisions command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

consecutive Non-CollidingPackets continuous

true / false
enable true / false packetOffset

repeatCount

COMMANDS

forcedCollisions cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the forcedCollisions command. forcedCollisions config option value Modify the configuration options of the forcedCollisions. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for forcedCollisions. forcedCollisions get chasID cardID portID Gets the current configuration of the forcedCollisions header for port with id portID on card cardID, chassis chasID from its hardware. Call this command before calling forcedCollisions cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

Ixia Tcl Development Guide

A-85

forcedCollisions

The port does not support forced collisions

forcedCollisions set chasID cardID portID Sets the forcedCollisions configuration of the port with id portID on card cardID, chassis chasID by reading the configuration option values set by the forcedCollisions config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is owned by another user Configured parameters are not valid for this setting The port does not support forced collisions

forcedCollisions setDefault Sets default values for all configuration options. EXAMPLES

package require IxTclHal set host galaxy ixInitialize $host set chas [ixGetChassisID $host] # Assume that card 1 is a 10/100 card set card 1 set portA 1 set portB 2 # Set up mapping map new -type one2one map config -type one2one map add $chas $card $portA $chas $card $portB map add $chas $card $portB $chas $card $portA set portList [list [list $chas $card $portA] \ [list $chas $card $portB]] # Set up both ports to 10Mbps and half duplex port setDefault port config -autonegotiate false port config -duplex half port config -speed 10 port set $chas $card $portA port set $chas $card $portB # Configure forced collisions forcedCollisions setDefault forcedCollisions config -enable 1 forcedCollisions config -consecutiveNonCollidingPackets 9 forcedCollisions set $chas $card $portA forcedCollisions set $chas $card $portB # Make the collision backoff algorithm try harder collisionBackoff setDefault collisionBackoff config -maxRetryCount 32 collisionBackoff set $chas $card $portA collisionBackoff set $chas $card $portB # Configure the streams to transmit at 50% stream setDefault stream config -percentPacketRate 50 stream config -rateMode usePercentRate

A-86

Ixia Tcl Development Guide

forcedCollisions

stream stream stream stream

config -dma config -numFrames set $chas $card $portA 1 set $chas $card $portB 1

stopStream 10000

# Write config to hardware, check the link state and clear statistics # Error checking omitted for brevity ixWritePortsToHardware one2oneArray after 1000 ixCheckLinkState one2oneArray ixClearStats one2oneArray # Start collisions ixStartCollisions one2oneArray # Make sure that ports dont attempt to transmit at the same instant ixStartStaggeredTransmit one2oneArray ixCheckTransmitDone one2oneArray ixCollectStats $portList collisions rxStats totals ixPuts $totals total collisions, port 1 = $rxStats(1,1,1), port 2 = $rxStats(1,1,2)

SEE ALSO

portGroup

Ixia Tcl Development Guide

A-87

frameRelay

NAME - frameRelay
frameRelay - configure the Frame Relay header for a Packet over Sonet frame SYNOPSIS DESCRIPTION frameRelay sub-command options The frameRelay command is used to configure the Frame Relay parameters. Note: To configure the frameRelay parameters, sonet config -header needs to be configured for the right Frame Relay headers first. STANDARD OPTIONS
addressSize becn

Address length in the Frame Relay frame header. (default = 2) Backward congestion notification bit in the Frame Relay address field. ( default = 0) Command or Response bit in the Frame Relay address field. (default = 0) Control information. (default = 3) Discard eligible bit in the Frame Relay address field. (default = 0) DLCI core indicator bit in the Frame Relay address field. (default = 0) Frame Relay address field. (default = 0) Ethertype of protocol in use. (default = 65535) Extention address 0 bit in theFrame Relay address field. (default = 0) Extention address 1 bit in theFrame Relay address field. (default = 1) Extention address 2 bit in theFrame Relay address field. (default = 0) Extention address 3 bit in theFrame Relay address field. (default = 0) Forward congestion notification bit in the Frame Relay address field.( default = 0) Network layer protocol identifier to identify the type of upper-layer protocol transmitted in the frame. (default = 255) The frameRelay command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

commandResponse control discardEligibleBit dlci dlciCore etherType extentionAddress0 extentionAddress1 extentionAddress2 extentionAddress3 fecn

nlpid

COMMANDS

frameRelay cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the frameRelay command.

A-88

Ixia Tcl Development Guide

frameRelay

frameRelay config option value Modify the configuration options of the frameRelay. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for frameRelay. frameRelay decode capFrame [chasID cardID portID] Decodes a captured frame in the capture buffer and updates TclHal. If chasID, cardID and portID are omitted, then packet offsets for Ethernet packets are used. Specific errors are:
No connection to a chassis The captured frame is not a valid Frame Relay frame

frameRelay get chasID cardID portID Gets the current configuration of the frameRelay header for port with id portID on card cardID, chassis chasID from its hardware. Call this command before calling frameRelay cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number The port is not a Packet over Sonet port

frameRelay set chasID cardID portID Sets the frameRelay configuration of the port with id portID on card cardID, chassis chasID by reading the configuration option values set by the frameRelay config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port The port is not a Packet over Sonet port.

frameRelay setDefault Sets default values for all configuration options. EXAMPLES

package require IxTclHal # Connect to chassis and get chassis ID set host localhost ixInitialize $host set chas [ixGetChassisID $host] # Assuming that an OC48 POS card is in slot 8 set card 8 set port 1 set portList [list [list $chas $card $port]] # Get the type of card and check if its the correct type set ifType [card getInterface $chas $card] if {$ifType != $::interfaceOc48} { ixPuts Card $card is not an OC48c POS card ($ifType) } else { # Need to set header type to Frame Relay

Ixia Tcl Development Guide

A-89

frameRelay

sonet sonet sonet sonet

setDefault config -interfaceType oc48 config -header sonetFrameRelay2427 set $chas $card 1

stream setDefault # Set DLCI frameRelay frameRelay frameRelay frameRelay and BECN bit setDefault config -dlci 22 config -becn 1 set $chas $card $port

stream set $chas $card $port 1 ixWriteConfigToHardware portList }

SEE ALSO

A-90

Ixia Tcl Development Guide

hdlc

NAME - hdlc
hdlc - configure the HDLC header for a Packet over Sonet frame SYNOPSIS DESCRIPTION STANDARD OPTIONS
address

hdlc sub-command options The hdlc command is used to configure the HDLC parameters.

The one-byte address field of the HDLC header used in conjunction with Packet over Sonet. Defined values include:
Option pppAddress ciscoAddress Value 0xff 0x0f (default) Usage

control

The one-byte control field of the HDLC header used in conjunction with Packet over Sonet. Defined values include:
Option pppControl ciscoControl Value 0x03 0x00 (default) Usage

protocol

The two-byte protocol field of the HDLC header used in conjunction with Packet over Sonet. Defined values include:
Option pppIp ciscoIp ciscoIpV6 pppPaddingProtocol pppOSI pppXeroxIDP pppDECnet pppAppletalk pppIPX pppCompressedTCPIP pppUncompressedTCPIP pppBPDU pppSTII pppBanyanVines pppAppleTalkEDDP pppAppleTalkSmartBuffered pppMultiLink pppFirstChoiceCompression Value 0x0021 0x0800 0x86dd 0x0001 0x0023 0x0025 0x0027 0x0029 0x002b 0x002d 0x002f 0x0031 0x0033 0x0035 0x0039 0x003b 0x003d 0x00fd (default) Usage

Ixia Tcl Development Guide

A-91

hdlc

Option pppHelloPackets pppIBMSourceRoutingBPDU pppLuxcom pppSigmaNetworkSystems pppIPControlProtocol pppOSIControlProtocol pppXeroxIDPControlProtocol pppDECnetControlProtocol pppAppletalkControlProtocol pppIPXControlProtocol pppBridgingNCP pppMultiLinkControlProtocol pppComprControlProtocol pppLinkControlProtocol pppPasswordAuthProtocol pppLinkQualityReport

Value 0x0201 0x0203 0x0231 0x0233 0x8021 0x8023 0x8025 0x8027 0x8029 0x802b 0x8031 0x803d 0x80fd 0xc021 0xc023 0xc025

Usage

COMMANDS hdlc cget option

The hdlc command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

Returns the current value of the configuration option given by option. Option may have any of the values accepted by the hdlc command. hdlc config option value Modify the configuration options of the hdlc. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for hdlc. hdlc decode capFrame [chasID cardID portID] Decodes a captured frame in the capture buffer and makes the data available in the STANDARD OPTIONS through hdlc cget. The capFrame parameter must be obtained through a call to stream packetview. If chasID, cardID and portID are omitted, then packet offsets for Ethernet packets are used. Specific errors are:
No connection to a chassis Invalid port number The captured frame is not a valid Hdlc frame The port is not a Packet over Sonet port.

hdlc get chasID cardID portID Gets the current configuration of the hdlc header for port with id portID on card cardID, chassis chasID from its hardware. Call this command before calling hdlc cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number The port is not a Packet over Sonet port.

A-92

Ixia Tcl Development Guide

hdlc

hdlc set chasID cardID portID Sets the hdlc configuration of the port with id portID on card cardID, chassis chasID by reading the configuration option values set by the hdlc config option value command. Specific errors are:
No connection to a chassis Invalid port number The configured parameters are not valid for this port The port is not a Packet over Sonet port.

hdlc setCisco protocolType chasID cardID portID Sets the configuration of the hdlc header to ciscoAddress and ciscoControl in IxHAL for port with id portID on card cardID, chassis chasID. Specific errors are:
No connection to a chassis Invalid port number The configured parameters are not valid for this port The port is not a Packet over Sonet port. The protocolType is not one of ciscoIp or ciscoIpV6.

hdlc setDefault Sets default values for all configuration options. hdlc setPpp protocolType chasID cardID portID Sets the configuration of the hdlc header to pppAddress and pppControl in IxHAL for port with id portID on card cardID, chassis chasID. Specific errors are:
No connection to a chassis Invalid port number The configured parameters are not valid for this port The port is not a Packet over Sonet port. The protocolType is not pppIp.

EXAMPLES

package require IxTclHal set addressByte($::pppAddress) set addressByte($::ciscoAddress) set controlByte($::pppControl) set controlByte($::ciscoControl) pppAddress ciscoAddress pppControl ciscoControl pppIp cisco

set protocolByte($::pppIp) set protocolByte($::ciscoIp) set protocolByte($::pppPaddingProtocol) pppPaddingProtocol set protocolByte($::pppOSI) set protocolByte($::pppXeroxIDP) set protocolByte($::pppDECnet) set protocolByte($::pppAppletalk) set protocolByte($::pppIPX) set protocolByte($::pppCompressedTCPIP) pppCompressedTCPIP set protocolByte($::pppUncompressedTCPIP) pppUncompressedTCPIP set protocolByte($::pppBPDU) set protocolByte($::pppSTII)

pppOSI pppXeroxIDP pppDECnet pppAppletalk pppIPX

pppBPDU pppSTII

Ixia Tcl Development Guide

A-93

hdlc

set protocolByte($::pppBanyanVines) pppBanyanVines set protocolByte($::pppAppleTalkEDDP) pppAppletalkEDDP set protocolByte($::pppMultiLink) pppMultiLink set protocolByte($::pppFirstChoiceCompression) pppFirstChoiceCompression set protocolByte($::pppHelloPackets) pppHelloPackets set protocolByte($::pppIBMSourceRoutingBPDU) pppIBMSourceRoutingBPDU set protocolByte($::pppLuxcom) pppLuxcom set protocolByte($::pppSigmaNetworkSystems) pppSigmaNetworkSystems set protocolByte($::pppIPControlProtocol) pppIPControlProtocol set protocolByte($::pppOSIControlProtocol) pppOSIControlProtocol set protocolByte($::pppXeroxIDPControlProtocol) pppXeroxIDPControlProtocol set protocolByte($::pppDECnetControlProtocol) pppDECnetControlProtocol set protocolByte($::pppAppletalkControlProtocol) pppAppletalkControlProtocol set protocolByte($::pppIPXControlProtocol) pppIPXControlProtocol set protocolByte($::pppBridgingNCP) pppBridgingNCP set protocolByte($::pppMultiLinkControlProtocol) pppMultiLinkControlProtocol set protocolByte($::pppComprControlProtocol) pppComprControlProtocol set protocolByte($::pppLinkControlProtocol) pppLinkControlProtocol set protocolByte($::pppPasswordAuthProtocol) pppPasswordAuthProtocol set protocolByte($::pppLinkQualityReport) pppPasswordAuthProtocol proc printOptions {} \ { set addr [hdlc cget -address] set cntrl [hdlc cget -control] set protocol [hdlc cget -protocol] # ixPuts address $addressByte($addr), control $controlByte($cntrl), \ # protocol $protocolByte($protocol) ixPuts address $addr, control $cntrl, protocol $protocol } # Connect to chassis and get chassis ID set host 400-031561 ixInitialize $host set chas [ixGetChassisID $host] # Assuming that a POS card is in slot 3 set card 3 set portList [list [list $chas $card 1] [list $chas $card 2]] # Check for missing card if {[card get $chas $card] != 0} \ { ixPuts Card $card does not exist break }

A-94

Ixia Tcl Development Guide

hdlc

# Get the type of card and check if its the correct type set cardType [card cget -type] if {$cardType != $::cardPOS2Port} \ { ixPuts Card $card is not an 2 port POS card exit } # Set the options to default values hdlc setDefault ixWriteConfigToHardware portList # Get the current hdlc state from the cards hdlc get $chas $card 1 printOptions # Set to Cisco values hdlc setCisco ciscoIp $chas $card 1 ixWritePortsToHardware portList set x [hdlc cget -address] if {0x$x == $::ciscoAddress} { ixPuts OK } else { ixPuts NG } ixStartPortCapture $chas $card 1 ixStartPortTransmit $chas $card 2 after 2000 capture get $chas $card 1 captureBuffer get $chas $card 1 1 1 captureBuffer getframe 1 set frameData [captureBuffer cget -frame] # Now have hdlc decode the header hdlc decode $frameData $chas $card 1 printOptions

SEE ALSO

ppp

Ixia Tcl Development Guide

A-95

icmp

NAME - icmp
icmp - configure the ICMP parameters for a port on a card on a chassis SYNOPSIS DESCRIPTION icmp sub-command options The icmp command is used to configure the ICMP-specific information used when building ICMP-type packets.

STANDARD OPTIONS
checksum

Read-only Value of the checksum in the valid icmp stream. Valid only if the stream set is performed. Code for each type of message. (default = 0) ID for each ping command. (ID for the echoRequest) Sequence number for each ping command (sequence number for the echoRequest) (default = 0) Read-only The type of ICMP message to be sent. Options are:
Usage echoReply Value 0 Usage when echo message is received (when IP address is valid and receiving side supports the requested functions) when a datagram cannot reach its destination when gateway does not have the buffer space needed to queue the datagrams when the gateway and the host identified by the internet source address of the datagram are on the same network when network connection is to be tested (via ping command test the validity of IP address) when time to live field is 0 when there is a problem with the header parameters to request the timestamp of the receipt at the other end to get the timestamp when the datagram began its return when host needs to find out the number of the network it is on. when infoRequest is received to get the subnet address mask from the router when maskRequest is received

code id sequence

type

destUnreachable sourceQuench redirect

3 4 5

echoRequest timeExceeded parameterProblem timeStampRequest timeStampReply infoRequest infoReply maskRequest maskReply

8 11 12 13 14 15 16 17 18

A-96

Ixia Tcl Development Guide

icmp

COMMANDS icmp cget option

The icmp command is invoked with the following sub-commands. If no subcommand is specified, returns a list of all sub-commands available.

Returns the current value of the configuration option given by option. Option may have any of the values accepted by the icmp command. icmp config option value Modify the ICMP configuration options of the port. If no option is specified, returns a list describing all of the available ICMP options (see STANDARD OPTIONS) for port. icmp decode capFrame [chasID cardID portID] Decodes a captured frame in the capture buffer and updates TclHal. icmp cget option command can be used after decoding to get the option data. If chasID, cardID and portID are omitted, then packet offsets for Ethernet packets are used. Specific errors are:
No connection to a chassis Invalid port number The captured frame is not a valid Icmp frame

icmp get chasID cardID portID Gets the current ICMP configuration of the port with id portID on card cardID, chassis chasID. Call this command before calling icmp cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

icmp set chasID cardID portID Sets the ICMP configuration of the port with id portID on card cardID, chassis chasID by reading the configuration option values set by the icmp config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port

icmp setDefault Sets default values for all configuration options. EXAMPLES

package require IxTclHal # In this example well send an echo response message from a port # back to itself and decode the received packet # Connect to chassis and get chassis ID set host 400-031561 ixInitialize $host set chas [ixGetChassisID $host] # Assume card to be used is in slot 1

Ixia Tcl Development Guide

A-97

icmp

set card 1 set port 1 set portList [list [list $chas $card $port]] # Some defines for IP setup set portMAC {00 00 00 01 01 01} set portIP {192.168.18.1} set portMask {255.255.255.0} set destMAC set destIP set destMask {00 00 00 01 01 02} {192.168.18.2} {255.255.255.0}

# Put the port in loopback mode port setFactoryDefaults $chas $card $port port setDefault port config -loopback true # Stream: 1 packet at 1% stream setDefault stream config -numFrames stream config -dma stream config -rateMode stream config -percentPacketRate

1 stopStream usePercentRate 1

# set protocol to IP protocol setDefault protocol config -name ip protocol config -ethernetType ethernetII

# Set up IP: icmp with 46 byte packet ip setDefault ip config -ipProtocol icmp ip config -totalLength 46 ip config -sourceIpAddr $portIP ip config -sourceIpMask $portMask ip config -sourceClass classC ip config -destIpAddr $destIP ip config -destIpMask $destMask ip config -destClass classC ip set $chas $card $port # Send an echo reply with some data in id and sequence icmp setDefault icmp config -type echoReply icmp config -code 0 icmp config -id 3 icmp config -sequence 42 icmp set $chas $card $port stream set $chas $card $port 1 port set $chas $card $port # Set up the port ixWritePortsToHardware portList # Start capture and send the packet after 1000 ixStartPortCapture $chas $card $port ixStartPortTransmit $chas $card $port # Stop port capture

A-98

Ixia Tcl Development Guide

icmp

after 1000 ixStopPortCapture $chas $card $port # Get the capture buffer captureBuffer get $chas $card $port if {[captureBuffer cget -numFrames] == 0} \ { ixPuts No packets received } \ else \ { # Get the frame captureBuffer getframe 1 set data [captureBuffer cget -frame] # And decode the data icmp decode $data $chas $card $port ixPuts -nonewline Received packet: code = ixPuts -nonewline [icmp cget -code] ixPuts -nonewline , id = ixPuts -nonewline [icmp cget -id] ixPuts -nonewline , sequence = ixPuts [icmp cget -sequence] }

SEE ALSO

stream, ip, udp

Ixia Tcl Development Guide

A-99

igmp

NAME - igmp
igmp - configure the IGMP parameters for a port on a card on a chassis SYNOPSIS DESCRIPTION igmp sub-command options The igmp command is used to configure the IGMP-specific information used when building IGMP-type packets.

STANDARD OPTIONS
groupIpAddress

IP Multicast group address of the group being joined or left. (default = 224.0.1.14) The maximum allowed time before sending a responding report in units of 1/10 second. (default = 100) Describes how to vary the groupIpAddress when repeatCount is greater than 1. The options are:
Option igmpIdle igmpIncrement igmpDecrement igmpContIncrement igmpContDecrement Value 0 1 2 3 4 (default) Usage

maxResponseTime

mode

repeatCount type

Number of times of IGMP messages to be sent. (default = 0) The type of IGMP message to be sent (default = membershipReport2). Options are:
Option membershipQuery membershipReport1 dvmrpMessage membershipReport2 leaveGroup Value 17 18 19 22 23 Usage General or group specific query messages sent by the DUT An IGMP version 1 message sent by client to inform the DUT of its interest to join a group Distance-Vector Multicast Routing Protocol message An IGMP version 2 message sent by client to inform the DUT of its interest to join a group An IGMP version21message sent by client to inform the DUT of its interest to leave a group

version

The version number of IGMP (default = igmpVersion2). Options are:


Option igmpVersion1 igmpVersion2 Value 1 2 version 1 version 2 Usage

A-100

Ixia Tcl Development Guide

igmp

COMMANDS igmp cget option

The igmp command is invoked with the following sub-commands. If no subcommand is specified, returns a list of all sub-commands available.

Returns the current value of the configuration option given by option. Option may have any of the values accepted by the igmp command. igmp config option value Modify the IGMP configuration options of the port. If no option is specified, returns a list describing all of the available IGMP options (see STANDARD OPTIONS) for port. igmp decode capFrame [chasID cardID portID] Decodes a captured frame in the capture buffer and updates TclHal. igmp cget option command can be used after decoding to get the option data. If chasID, cardID and portID are omitted, then packet offsets for Ethernet packets are used. Specific errors are:
No connection to a chassis Invalid port number The captured frame is not a valid Igmp frame

igmp get chasID cardID portID Gets the current IGMP configuration of the port with id portID on card cardID, chassis chasID. Call this command before calling igmp cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

igmp set chasID cardID portID Sets the IGMP configuration of the port with id portID on card cardID, chassis chasID by reading the configuration option values set by the igmp config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port

igmp setDefault Sets default values for all configuration options. EXAMPLES

package require IxTclHal # Connect to chassis and get chassis ID set host 400-031561 ixInitialize $host set chas [ixGetChassisID $host] set card 1 set port 1 set portList [list [list $chas $card $port]]

Ixia Tcl Development Guide

A-101

igmp

set portMAC set portIP set portMask set destMAC set destIP set destMask

{00 00 00 01 01 01} {192.168.18.1} {255.255.255.0} {00 00 00 01 01 02} {192.168.18.2} {255.255.255.0}

port setFactoryDefaults $chas $card $port port setDefault # Stream: 256 packets stream setDefault stream config -numFrames stream config -sa stream config -da stream config -dma # Set up IP ip setDefault ip config -ipProtocol ip config -sourceIpAddr ip config -sourceIpMask ip config -sourceClass ip config -destIpAddr ip config -destIpMask ip config -destClass ip set $chas $card $port protocol setDefault protocol config -name protocol config -ethernetType igmp igmp igmp igmp setDefault config -groupIpAddress config -type set $chas $card $port

256 $portMAC $destMAC stopStream

igmp $portIP $portMask classC $destIP $destMask classC

ipV4 ethernetII

{224.0.0.1} membershipQuery

stream set $chas $card $port 1 port set $chas $card $port ixWritePortsToHardware portList

SEE ALSO

stream, ip, udp

A-102

Ixia Tcl Development Guide

igmpAddressTable

NAME - igmpAddressTable
igmpAddressTable - configure the IGMP address table parameters for a port on a card on a chassis SYNOPSIS DESCRIPTION igmpAddressTable sub-command options The igmpAddressTable command is used to configure the IGMP address tablespecific information used when building IGMP address table. Entries may be added or deleted; editing of entries is accomplished by deleting the old entry and adding a new one.

STANDARD OPTIONS
none

COMMANDS

The igmpAddressTable command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

igmpAddressTable addItem Creates IGMP and MAC address ranges. Specific errors are:
The configured parameters are not valid for this port

igmpAddressTable cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the igmpAddressTable command. igmpAddressTable clear Clears the IGMP address table. igmpAddressTable config option value Modify the IGMP address table configuration options of the port. If no option is specified, returns a list describing all of the available igmpAddressTable options (see STANDARD OPTIONS) for port. igmpAddressTable delItem Deletes IGMP and MAC address ranges. igmpAddressTable get chasID cardID portID Gets the current IGMP address table configuration of the port with id portID on card cardID, chassis chasID. Call this command before calling igmpAddressTable cget option value to get the value of the configuration option. igmpAddressTable getFirstItem Gets the first IGMP and MAC address range out of the IGMP address table.

Ixia Tcl Development Guide

A-103

igmpAddressTable

igmpAddressTable getNextItem Gets the next IGMP and MAC address range out of the IGMP address table. igmpAddressTable set chasID cardID portID Sets the IGMP address table configuration of the port with id portID on card cardID, chassis chasID by reading the configuration option values set by the igmpAddressTable config option value command. igmpAddressTable setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under igmpServer. igmp

A-104

Ixia Tcl Development Guide

igmpAddressTableItem

NAME - igmpAddressTableItem
igmpAddressTableItem - configure the IGMP address table parameters for a port on a card on a chassis SYNOPSIS DESCRIPTION igmpAddressTableItem sub-command options The igmpAddressTableItem command is used to configure the IGMP address table-specific information used when building IGMP address table.

STANDARD OPTIONS
fromClientAddress fromGroupAddress numClientAddresses numGroupAddresses toClientAddress toGroupAddress

The first client address for the client address range. (default = 0.0.0.0) The first group address for the group address range. (default = 0.0.0.0) Number of client consecutive addresses. (default = 1) Number of group consecutive addresses. (default = 1) Read-Only. The last client address for the client address range. (default = 0.0.0.0) Read-Only. The last group address for the group address range. (default = 0.0.0.0) The igmpAddressTableItem command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

COMMANDS

igmpAddressTableItem cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the igmpAddressTableItem command. igmpAddressTableItem config option value Modify the IGMP address table configuration options of the port. If no option is specified, returns a list describing all of the available igmpAddressTableItem options (see STANDARD OPTIONS) for port. igmpAddressTableItem get Gets the current IGMP address table item configuration. Call this command before calling igmpAddressTableItem cget option value to get the value of the configuration option. igmpAddressTableItem set Sets the IGMP address table item configuration, by reading the configuration option values set by the igmpAddressTableItem config option value command.

Ixia Tcl Development Guide

A-105

igmpAddressTableItem

igmpAddressTableItem setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under igmpServer. igmpAddressTable

A-106

Ixia Tcl Development Guide

igmpServer

NAME - igmpServer
igmpServer - configure the IGMP server parameters. SYNOPSIS DESCRIPTION STANDARD OPTIONS
enableQueryResponse rate repeatCount reportFrequency reportMode

igmpServer sub-command options The igmpServer command is used to configure the IGMP server parameters.

Enables responses after initial join is sent. (default = true) The rate at which reports are sent, expressed in frames per second. Number of IGMP reports to be sent. Not implemented yet. (default = 3) Report frequency in seconds. (default = 120) Options are:
Option Value Usage

igmpReportToOneWhenQueried 0) igmpReportToAllWhenQueried igmpReportToAllUnsolicited 1) 2 (default = 2)

sendRouterAlert version

Enable sending router alert. (default = faulse) The version number of IGMP. Options are:
Option igmpVersion1 igmpVersion2 Value 1 2 default Usage

COMMANDS

The igmpServer command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

igmpServer cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the igmpServer command. igmpServer config option value Modify the IGMP server configuration options of the port. If no option is specified, returns a list describing all of the available igmpServer options (see STANDARD OPTIONS) for port.

Ixia Tcl Development Guide

A-107

igmpServer

igmpServer get Gets the current IGMP server configuration. Call this command before calling igmpServer cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

igmpServer set Sets the IGMP server configuration, by reading the configuration option values set by the igmpServer config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port

igmpServer setDefault Sets default values for all configuration options. EXAMPLES

package req IxTclHal ixInitialize ruby set set set set chassis [chassis cget -id] card 4 port 1 portList [list [list $chassis $card $port]]

port setFactoryDefaults $chassis $card $port # Set up IP address table so we can respond to ARPs ipAddressTable setDefault ipAddressTable config -defaultGateway {1.1.1.1} ipAddressTableItem setDefault ipAddressTableItem config -fromIpAddress {2.2.2.2} ipAddressTableItem config -fromMacAddress {00 DE BB 00 00 01} ipAddressTableItem config -numAddresses 1 ipAddressTableItem set ipAddressTable addItem ipAddressTable set $chassis $card $port # Set up IGMP server to send reports igmpServer setDefault igmpServer config -reportMode 1 igmpServer config -reportFrequency 100 igmpServer config -repeatCount 10 igmpServer set $chassis $card $port # Set up IGMP table for group addresses igmpAddressTable clear igmpAddressTableItem setDefault igmpAddressTableItem config -fromGroupAddress igmpAddressTableItem config -fromClientAddress igmpAddressTableItem config -numGroupAddresses igmpAddressTableItem config -numClientAddresses igmpAddressTableItem set igmpAddressTable addItem

{224.0.1.1} {2.2.2.2} 10 1

A-108

Ixia Tcl Development Guide

igmpServer

igmpAddressTable

set

$chassis $card $port

# Start the protocol server for Arp and IGMP protocolServer setDefault protocolServer config -enableArpResponse protocolServer config -enableIgmpQueryResponse protocolServer set $chassis $card $port # Tell the hardware about it ixWritePortsToHardware portList

true true

SEE ALSO

igmpAddressTable

Ixia Tcl Development Guide

A-109

ip

NAME - ip
ip - configure the IP parameters for a port on a card on a chassis SYNOPSIS DESCRIPTION ip sub-command options The ip command is used to configure the IP-specific information used when building IP-type packets if the protocol config name has been set to ip. See RFC 791 for a complete definition of IP header fields.

STANDARD OPTIONS
checksum

Read-only. Value of the checksum in the valid ip stream. Valid only if the stream set is performed. Part of the Type of Service byte of the IP header datagram (bit 6). Options include:
Option normalCost lowCost Value 0 1 (default) Usage

cost

delay

Part of the Type of Service byte of the IP header datagram (bit 3). Options include:
Option NormalDelay LowDelay Value 0 1 (default) Usage

destClass

Class type associated with the destination IP address of the Ixia port. Options include:
Option classA classB classC classD noClass Value 0 1 2 3 4 (default) Usage

destDutIpAddr

IP address of the DUT (device under test) port. This value is stored at the TclHal level. (default = 127.0.0.1) Destination IP address of the Ixia port. (default = 127.0.0.1)

destIpAddr

A-110

Ixia Tcl Development Guide

ip

destIpAddrMode

Specifies how the destination IP address will be incremented or decremented. If destIpAddrRepeatCount is set to 1, this variable has no effect. Possible values include:
Option ipIdle ipIncrHost ipDecrHost ipContIncrHost ipContDecrHost ipIncrNetwork ipDecrNetwork ipContIncrNetwork ipContDecrNetwork ipRandom Value 0 1 2 3 4 5 6 7 8 9 Usage (default) no change to IP address regardless of destIpAddrRepeatCount increment the network portion of the IP address for as many destIpAddrRepeatCount specified decrement the host portion of the IP address for as many destIpAddrRepeatCount specified Continuously increment the host portion of the IP address for each packet Continuously decrement the host portion of the IP address for each packet increment the network portion of the IP address for as many destIpAddrRepeatCount specified increment the host portion of the IP address for as many destIpAddrRepeatCount specified Continuously increment the network portion of the IP address for each packet Continuously decrement the host portion of the IP address for each packet. Generate random IP addresses

destIpAddrRepeatCount destIpMask destMacAddr

Number of destination IP addresses. If set to 1, destIpAddrMode has no effect (default = 1) Destination IP subnet mask. (default = 255.0.0.0) Destination MAC address, generally the MAC address of the DUT port; this field will be modified on receipt of ARP frames. This value is stored at the TclHal level. (default = 00 00 00 00 00 00) If set to true, this field indicates this is a fragmented datagram. Used in conjuction with identifier, fragmentoffset and lastFragment. Options include:
Option may dont Value 0 1 (default) Usage

fragment

fragmentOffset

This field indicates where in the datagram this fragment belongs. The fragment offset is measured in units of 8 octets (64 bits). The first fragment has offset zero (default = 0) An identifying value assigned by the sender to aid in assembling the fragments of a datagram. (default = 0)

identifier

Ixia Tcl Development Guide

A-111

ip

ipProtocol

The next level protocol used in the data portion of the internet datagram. Possible values include:
Option reserved ipV6HopToHop icmp igmp ggp ip st tcp ucl egp igp bbn_rcc_mon nvp_ii pup argus emcon xnet chaos udp mux dcn_meas hmp prm xns_idp trunk_1 trunk_2 leaf_1 leaf_2 rdp irtp iso_tp4 netblt mfe_nsp merit_inp sep cftp sat_expak mit_subnet rvd ippc sat_mon Value 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 62 64 65 66 67 69 (default) Usage

A-112

Ixia Tcl Development Guide

ip

Option ipcv br_sat_mon wb_mon wb_expak

Value 71 76 78 79

Usage

lastFragment

Controls whether there are additional fragments used to assemble this datagram. Options include:
Option last more Value 0 1 (default) Usage

lengthOverride

true / false
options

Allows to change the length in ip header. (default = false) Variable length option field in the IP header datagram. (default = { }) Part of the Type of Service byte of the IP header datagram. Establishes precedence of delivery. Possible values are:
Option routine priority immediate flash flashOverride criticEcp internetControl networkControl Value 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 (default) Usage

precedence

reliability

Part of the Type of Service byte of the IP header datagram (bit 5). Options include:
Option normalReliability highReliability Value 0 1 (default) Usage

reserved

Part of the Type of Service byte of the IP header datagram (bit 7 - 0/1). (default = 0) Class type associated with the source IP address. Options include:
Option classA classB classC classD noClass Value 0 1 2 3 4 (default) Usage

sourceClass

Ixia Tcl Development Guide

A-113

ip

sourceIpAddr sourceIpAddrMode

Source IP address. (default = 127.0.0.1) Specifies how the source IP address will be incremented or decremented. If sourceIpAddrRepeatCount is set to 1, this variable has no effect. Possible values include:
Option ipIdle ipIncrHost ipDecrHost ipContIncrHost ipContDecrHost ipIncrNetwork ipDecrNetwork ipContIncrNetwork ipContDecrNetwork ipRandom Value 0 1 2 3 4 5 6 7 8 9 Usage (default) no change to IP address regardless of sourceIpAddrRepeatCount increment the network portion of the IP address for as many sourceIpAddrRepeatCount specified decrement the host portion of the IP address for as many sourceIpAddrRepeatCount specified Continuously increment the host portion of the IP address for each packet Continuously decrement the host portion of the IP address for each packet increment the network portion of the IP address for as many sourceIpAddrRepeatCount specified increment the host portion of the IP address for as many sourceIpAddrRepeatCount specified Continuously increment the network portion of the IP address for each packet Continuously decrement the host portion of the IP address for each packet. Generate random IP addresses

sourceIpAddrRepeat Count sourceIpMask throughput

Number of source IP addresses. If set to 1, sourceAddrMode has no effect. (default = 1) Source IP subnet mask. (default = 255.0.0.0) Part of the Type of Service byte of the IP header datagram (bit 4). Options include:
Option normalThruput highThruput Value 0 1 (default) Usage

totalLength

Total Length is the length of the datagram, measured in octets, including internet header and data. (default = 46) Time-to-Live, measured in units of seconds. (default = 64) If set to true, a valid IP checksum will be calculated for each frame. If set to false, the IP checksum will be invalid. (default = true) The ip command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

ttl useValidChecksum

true/false

COMMANDS

A-114

Ixia Tcl Development Guide

ip

ip cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the ip command. ip config option value Modify the IP configuration options of the port. If no option is specified, returns a list describing all of the available IP options (see STANDARD OPTIONS) for port. ip decode capFrame [chasID cardID portID] Decodes a captured frame in the capture buffer and updates TclHal. ip cget option command can be used after decoding to get the option data. If chasID, cardID and portID are omitted, then packet offsets for Ethernet packets are used. Specific errors are:
No connection to a chassis Invalid port number The captured frame is not a valid IP frame

ip get chasID cardID portID Gets the current IP configuration of the port with id portID on card cardID, chassis chasID. Call this command before calling ip cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

ip set chasID cardID portID Sets the IP configuration of the port with id portID on card cardID, chassis chasID by reading the configuration option values set by the ip config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port

ip setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under tcp stream, protocol, ipx, udp, tcp

Ixia Tcl Development Guide

A-115

ipAddressTable

NAME - ipAddressTable
ipAddressTable - configure the IP address table parameters for a port on a card on a chassis SYNOPSIS DESCRIPTION ipAddressTable sub-command options The ipAddressTable command is used to configure the IP address table-specific information used when building IP address table.

STANDARD OPTIONS
defaultGateway

Default gateway IP address. (default = 0.0.0.0) The ipAddressTable command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

COMMANDS

ipAddressTable addItem Creates IP and MAC address ranges. Specific errors are:
The configured parameters are not valid for this port

ipAddressTable cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the ipAddressTable command. ipAddressTable clear Clears the IP address table. ipAddressTable config option value Modify the IP address table configuration options of the port. If no option is specified, returns a list describing all of the available ipAddressTable options (see STANDARD OPTIONS) for port. ipAddressTable delItem Deletes IP and MAC address ranges. ipAddressTable get chasID cardID portID Gets the current IP address table configuration of the port with id portID on card cardID, chassis chasID. Call this command before calling ipAddressTable cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

ipAddressTable get chasID cardID portID Gets the IP address table configuration of the port with id portID on card cardID, chassis chasID.

A-116

Ixia Tcl Development Guide

ipAddressTable

ipAddressTable getFirstItem Gets the first IP and MAC address range out of the IP address table. Specific errors are:
There is no IP address table in the IP server There are no more entries in the IP table

ipAddressTable getItem fromIp toIp fromMac toMac Gets the IP address range from fromIP to toIp and MAC address range fromMac to toMac out of the IP address table. Specific errors are:
There is no IP address table in the IP server There are no more entries in the IP table

ipAddressTable getNextItem Gets the next IP and MAC address range out of the IP address table. Specific errors are:
There is no IP address table in the IP server There are no more entries in the IP table

ipAddressTable set chasID cardID portID Sets the IP address table configuration of the port with id portID on card cardID, chassis chasID by reading the configuration option values set by the ipAddressTable config option value command. ipAddressTable setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under arp. ip

Ixia Tcl Development Guide

A-117

ipAddressTableItem

NAME - ipAddressTableItem
ipAddressTableItem - configure the IP address table parameters for a port on a card on a chassis SYNOPSIS DESCRIPTION ipAddressTableItem sub-command options The ipAddressTableItem command is used to configure the IP address tablespecific information used when building IP address table.

STANDARD OPTIONS
enableUseNetwork

If set, the netMask field is used to set the network mask; otherwise, the network mask is 0.0.0.0. (default = 0) The first IP address for the IP address range. (default = 0.0.0.0) The first MAC address for the MAC address range. (default = 00 00 00 00 00 00) Default gateway IP address. (default = 0.0.0.0) Specifies the mapping option. One of:
Option oneIpToOneMAC manyIpToOneMAC Value 0 1 (default) Usage

fromIpAddress fromMacAddress gatewayIpAddress mappingOption

netMask

If enableUseNetwork is set, this value is used to set the network mask. (default = 24). Number of consecutive addresses. (default = 1) Enable default gateway IP address. (default =false) Read-Only. Last IP address in the IP address range. (default = 0.0.0.0) Read-Only. Last MAC address in the MAC address range. (default = 00 00 00 00 00 00)

numAddresses overrideDefault Gateway true/false toIpAddress toMacAddress

COMMANDS

The ipAddressTableItem command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

ipAddressTableItem cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the ipAddressTableItem command.

A-118

Ixia Tcl Development Guide

ipAddressTableItem

ipAddressTableItem config option value Modify the IP address table configuration options of the port. If no option is specified, returns a list describing all of the available ipAddressTableItem options (see STANDARD OPTIONS) for port. ipAddressTableItem get Gets the current IP address table item configuration. Call this command before calling ipAddressTableItem cget option value to get the value of the configuration option. ipAddressTableItem set Sets the IP address table item configuration, by reading the configuration option values set by the ipAddressTableItem config option value command. ipAddressTableItem setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under arp. ipAddressTable

Ixia Tcl Development Guide

A-119

ipx

NAME - ipx
ipx - configure the IPX parameters for a port on a card on a chassis SYNOPSIS DESCRIPTION ipx sub-command options The ipx command is used to configure the IPX-specific information used when building IPX-type packets if the protocol config name has been set to ipx.

STANDARD OPTIONS
destNetwork

The network number of the network to which the destination node belongs. (default = 00 00 00 00) Specifies how the destination network address will be incremented or decremented. NOTE: Setting the destNetworkCounterMode other then ipxIdle will take over one of the available UDFs. Possible values include:
Option ipxIdle ipxIncrement ipxDecrement ipxContIncrement ipxContDecrement ipxCtrRandom Value 0 1 2 3 4 5 Usage (default) no change to network address regardless of destNetworkRepeatCounter increment the network address for as many destNetworkRepeatCounter specified decrement the network address for as many destNetworkRepeatCounter specified Continuously increment the network address for each frame Continuously decrement the network address for each frame Generate random destination network address for each frame

destNetworkCounter Mode

destNetworkMask Select destNetworkMaskValue

Selects the bits in the 32-bit destination network address that are to be masked by the value set by destNetworkMaskValue. (default = 00 00 00 00) Value of the masked bits selected by destNetworkMaskSelect in the destination network address. (default = FF FF FF FF) Number of destination network addresses the stream is going to be transmitted to. (default = 1) The physical address of the destination node. (default = 00 00 00 00 00 00) Specifies how the destination node will be incremented or decremented. NOTE: Setting the destNodeCounterMode other then ipxIdle will take over one of the available UDFs. Possible values include:
Option ipxIdle Value 0 Usage (default) no change to node regardless of destNodeRepeatCounter

destNetworkRepeat Counter destNode destNodeCounterMode

A-120

Ixia Tcl Development Guide

ipx

Option ipxIncrement ipxDecrement ipxContIncrement ipxContDecrement ipxCtrRandom

Value 1 2 3 4 5

Usage increment the node for as many destNodeRepeatCounter specified decrement the node for as many destNodeRepeatCounter specified Continuously increment the node for each frame Continuously decrement the node for each frame Generate random destination node for each frame

destNodeMaskSelect

Selects the bits in the 48-bit destination node address that are to be masked by the value set by destNodeMaskValue. (default = 00 00 00 00 00 00) Value of the masked bits selected by destNodeMaskSelect in the destination node. (default = FF FF FF FF FF FF) Number of destination nodes the stream is going to be transmitted to. (default = 1) The socket address of the packets destination process. (default = 0x4000) Well defined addresses include:
Option socketNcp socketSap socketRipx socketNetBios socketDiagnostics socketSerialization Value 1105 0x0451 1106 0x0452 1107 0x0453 1109 0x0455 1110 0x0456 1111 0x0457 Usage

destNodeMaskValue

destNodeRepeat Counter destSocket

destSocketCounter Mode

Specifies how the destination socket will be incremented or decremented. NOTE: Setting the destSocketCounterMode other then ipxIdle will take over one of the available UDFs. Possible values include:
Option ipxIdle ipxIncrement ipxDecrement ipxContIncrement ipxContDecrement ipxCtrRandom Value 0 1 2 3 4 5 Usage (default) no change to socket regardless of destSocketRepeatCounter increment the socket for as many destSocketRepeatCounter specified decrement the socket for as many destSocketRepeatCounter specified Continuously increment the socket for each frame Continuously decrement the socket for each frame Generate random destination socket for each frame

destSocketMaskSelect

Selects the bits in destination socket address that are to be masked by the value set by destSocketMaskValue. (default = 00 00 ) Value of the masked bits selected by destSocketMaskSelect in the destination socket. (default = FF FF)

destSocketMaskValue

Ixia Tcl Development Guide

A-121

ipx

destSocketRepeat Counter length lengthOverride

Number of destination sockets the stream is going to be transmitted to. (default = 1) The length of the IPX header plus the length of the data. (default = 0) Allows to change the length in ipx header. (default = false) This field indicates the type of service offered or required by the packet. Possible values include:

true/false

packetType

typeUnknown typeRoutingInfo typeEcho typeError typeIpx typeSpx typeNcp typeNetBios typeNdsNcp

0 0x00 1 0x01 2 0x02 3 0x03 4 0x04 5 0x05 17 0x11 20 0x14 104 0x68

Used for all packets not classified by any other type. Routing Information Packet. Echo Error (default) Service Advertising Packet. Used for sequenced packets. Used for NetWare Core Protocol Packets. Used for Novell netBIOS. Used for NetWare Core Protocol Packets.

sourceNetwork

The network number of the network to which the source node belongs. (default = 00 00 00 00) Specifies how the source network address will be incremented or decremented. NOTE: Setting the sourceNetworkCounterMode other then ipxIdle will take over one of the available UDFs. Possible values include:
Option ipxIdle ipxIncrement ipxDecrement ipxContIncrement ipxContDecrement ipxCtrRandom Value 0 1 2 3 4 5 Usage (default) no change to network address regardless of sourceNetworkRepeatCounter increment the network address for as many sourceNetworkRepeatCounter specified decrement the network address for as many sourceNetworkRepeatCounter specified Continuously increment the network address for each frame Continuously decrement the network address for each frame Generate random source network address for each frame

sourceNetwork CounterMode

sourceNetworkMask Select sourceNetwork MaskValue sourceNetworkRepeatCounter

Selects the bits in the 32-bit source network address that are to be masked by the value set by sourceNetworkMaskValue. (default = 00 00 00 00) Value of the masked bits selected by sourceNetworkMaskSelect in the source network address. (default = FF FF FF FF) Number of source network addresses the stream is going to be transmitted to. (default = 1)

A-122

Ixia Tcl Development Guide

ipx

sourceNode sourceNodeCounter Mode

The physical address of the source node. (default = 00 00 00 00 00 00) Specifies how the source node will be incremented or decremented. NOTE: Setting the sourceNodeCounterMode other then ipxIdle will take over one of the available UDFs. Possible values include:
Option ipxIdle ipxIncrement ipxDecrement ipxContIncrement ipxContDecrement ipxCtrRandom Value 0 1 2 3 4 5 Usage (default) no change to node regardless of sourceNodeRepeatCounter increment the node for as many sourceNodeRepeatCounter specified decrement the node for as many sourceNodeRepeatCounter specified Continuously increment the node for each frame Continuously decrement the node for each frame Generate random source node for each frame

sourceNodeMaskSelect

Selects the bits in the 48-bit source node address that are to be masked by the value set by sourceNodeMaskValue. (default = 00 00 00 00 00 00) Value of the masked bits selected by sourceNodeMaskSelect in the source node. (default = FF FF FF FF FF FF) Number of source nodes the stream is going to be transmitted to. (default = 1) The socket address of the packets source process. (default = 0x4000) Well known addresses include:
Option socketNcp socketSap socketRipx socketNetBios socketDiagnostics socketSerialization Value 1105 0x0451 1106 0x0452 1107 0x0453 1109 0x0455 1110 0x0456 1111 0x0457 Usage

sourceNodeMaskValue

sourceNodeRepeat Counter sourceSocket

sourceSocketCounter Mode

Specifies how the source socket will be incremented or decremented. NOTE: Setting the sourceSocketCounterMode other then ipxIdle will take over one of the available UDFs. Possible values include:
Option ipxIdle ipxIncrement ipxDecrement ipxContIncrement ipxContDecrement ipxCtrRandom Value 0 1 2 3 4 5 Usage (default) no change to socket regardless of sourceSocketRepeatCounter increment the socket for as many sourceSocketRepeatCounter specified decrement the socket for as many Continuously increment the socket for each frame sourceSocketRepeatCounter specified Continuously decrement the socket for each frame Generate random source socket for each frame

Ixia Tcl Development Guide

A-123

ipx

sourceSocketMask Select sourceSocket MaskValue sourceSocketRepeat Counter svrClientType

Selects the bits in source socket address that are to be masked by the value set by sourceSocketMaskValue. (default = 00 00) Value of the masked bits selected by sourceSocketMaskSelect in the source socket. (default = FF FF) Number of source sockets the stream is going to be transmitted to. (default = 1) This allows the port to act either as a NetWare server or client. If set to server, then the port may send out SAP broadcasts to announce itself. Possible values include:
Option server client Value 1 2 (default) Usage

transportControl

The number of routers that the packet has passed through. (default = 0) The ipx command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

COMMANDS ipx cget option

Returns the current value of the configuration option given by option. Option may have any of the values accepted by the ipx command. ipx config option value Modify the IPX configuration options of the port. If no option is specified, returns a list describing all of the available IPX options (see STANDARD OPTIONS) for port. ipx decode capFrame [chasID cardID portID] Decodes a captured frame in the capture buffer and updates TclHal. ipx cget option command can be used after decoding to get the option data. If chasID, cardID and portID are omitted, then packet offsets for Ethernet packets are used. Specific errors are:
No connection to a chassis Invalid port number The captured frame is not a valid IPX frame

ipx get chasID cardID portID Gets the current IPX configuration of the port with id portID on card cardID, chassis chasID. Call this command before calling ipx cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

ipx set chasID cardID portID Sets the IPX configuration of the port with id portID on card cardID, chassis chasID by reading the configuration option values set by the ipx config option value command. Specific errors are:

A-124

Ixia Tcl Development Guide

ipx

No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port

ipx setDefault Sets default values for all configuration options. EXAMPLES

package require IxTclHal set host localhost ixInitialize $host set chas [ixGetChassisID $host] set card 1 set port 1 set portList [list [list $chas $card $port]] stream setDefault protocol setDefault protocol config -name protocol config -ethernetType ipx setDefault ipx ipx ipx ipx ipx ipx ipx ipx ipx ipx config config config config config config config config config config -destNetwork -destNetworkCounterMode -sourceNetwork -sourceNetworkCounterMode -destNode -destNodeRepeatCounter -destNodeCounterMode -sourceNode -sourceNodeRepeatCounter -sourceNodeCounterMode {00 00 00 02} ipxIdle {00 00 00 01} ipxIdle {00 00 00 01 00 00} 16 ipxDecrement {00 00 00 00 00 00} 16 ipxIncrement 5 4

ipx ethernetII

ipx config -destSocket ipx config -sourceSocket ipx set $chas $card $port stream set $chas $card $port 1 ixWriteConfigToHardware portList

SEE ALSO

stream, protocol, ip, udp

Ixia Tcl Development Guide

A-125

isisInterface

NAME - isisInterface
isisInterface - configures an interface for an ISIS router. SYNOPSIS DESCRIPTION isisInterface sub-command options The isisInterface holds the information related to a single interface on the simulated router. Interfaces are added into the isisRouter interface list using the isisRouter addInterface command. Refer to IS-IS on page 3-24 for a discussion on ISIS testing with Ixia equipment. Refer to isisInterface on page 5-69 for an overview.

STANDARD OPTIONS
connectToDut

true / false

If set, this IS-IS interface is directly connected to the DUT. (default = false) The dead interval used with the Level 1 or Level 2 aspect of the interface, expressed in seconds. Used to determine if neighbor routers are non-operational. (default = 30) If set, enables the use of this route range for the simulated router. (default = false) The hello interval used with the Level 1 or Level 2 aspect of the interface, expressed in seconds. Used to send regular messages to neighbor IS-IS routers. (default = 10) The OSI interface ID for this interface. (default = 00 00 00 00 00 00) The IP address for this interface. (default = 0.0.0.0) The IP mask associated with the IP address for this interface. (default = 255.255.255.0) The IS-IS level associated with the interface, one of:
Option isisLevel1 isisLevel2 isisLevel1Level2 Value 1 2 3 level 1 interface (default) level 2 interface level 1 and level 2 interface Usage

deadIntervalLevel1 dealIntervalLevel2

enable true / false helloIntervalLevel1 helloIntervalLevel2

interfaceId ipAddress ipMask

level

metric networkType

The cost metric associated with the route. (default = 10) Indicates the type of network attached to the interface: broadcast or point-topoint. One of:
Options isisBroadcast isisPointToPoint Value 1 2 a broadcast network (default) a point to point network Usage

A-126

Ixia Tcl Development Guide

isisInterface

priorityLevel1 priorityLevel2

The priority level associated with the Level 1 or Level 2 aspect of the interface. This is used in master election. (default = X) The isisInterface command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

COMMANDS

isisInterface cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the isisInterface command. isisInterface config option value Modify the configuration options of the isisInterface. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for isisInterface. isisInterface setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under isisServer. isisServer, isisRouter, isisRouteRange

Ixia Tcl Development Guide

A-127

isisRouter

NAME - isisRouter
isisRouter - configure an ISIS router SYNOPSIS DESCRIPTION isisRouter sub-command options The isisRouter command represents a simulated router. In addition to some identifying options, it holds two lists for the router: Route ranges routes to be advertised by the simulated router, constructed in the isisRouteRange command. Interfaces router interface, constructed in the isisInterface command.

Routers defined in this command are added to an isisServer using the isisServer addRouter command. Refer to IS-IS on page 3-24 for a discussion on IS-IS testing with Ixia equipment. Refer to isisRouter on page 5-67 for an overview of this command. STANDARD OPTIONS
areaAddressList

The list of area addresses to use. Expressed as a Tcl list with commas separating the elements. (default = { }) Enables the use of this router in the simulated ISIS network. (default = false) The Number of Area Addresses permitted for this IS area. (default = 3) The ID of the router, usually the lowest IP address on the router. (default = 0.0.0.0) The isisRouter command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

enable true / false maxNumberOf Addresses routerId

COMMANDS

isisRouter addInterface interfaceLocalId Adds the router interface described in the isisInterface command to the list of interfaces associated with the router. The interfaces entry in the list is given an identifier of interfaceLocalId. Specific errors are:
The parameters in isisInterface are invalid A router with this interfaceLocalId exists already in the list

isisRouter addRouteRange routeRangeLocalId Adds the route range described in the isisRouteRange command to the list of route ranges associated with the router. The ranges entry in the list is given an identifier of routeRangeLocalId. Specific errors are:
The parameters in isisRouteRange are invalid A router with this routeRangeLocalId exists already in the list

A-128

Ixia Tcl Development Guide

isisRouter

isisRouter cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the isisRouter command. isisRouter clearAllInterfaces Deletes all of the router interfaces. isisRouter clearAllRouteRanges Deletes all of the route ranges. isisRouter config option value Modify the configuration options of the isisRouter. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for isisRouter. isisRouter delInterface interfaceLocalId Deletes the router interface with an identifier of interfaceLocalId. Specific errors are:
No router with this interfaceLocalId exists in the list

isisRouter delRouteRange routeRangeLocalId Deletes the route range with an identifier of routeRangeLocalId. Specific errors are:
No router with this routeRangeLocalId exists in the list

isisRouter getFirstInterface Access the first interface in the list. The results may be accessed using the isisInterface command. Specific errors are:
isisRouter select hasnt been called There are no interfaces in the list

isisRouter getFirstRouteRange Access the first route range in the list. The results may be accessed using the isisRouteRange command. Specific errors are:
There are no route ranges in the list

isisRouter getInterface interfaceLocalId Accesses the interfaces entry in the list with an identifier of interfaceLocalId. The router interface is accessed in the isisInterface command. Specific errors are:
A router with this interfaceLocalId does not exist in the list

isisRouter getNextInterface Access the next interface in the list. The results may be accessed using the isisInterface command. Specific errors are:
isisRouter getFirstInterface hasnt been called There is no more interfaces in the list

Ixia Tcl Development Guide

A-129

isisRouter

isisRouter getNextRouteRange Access the next route range in the list. The results may be accessed using the isisRouteRange command. Specific errors are:
isisRouter getFirstRouteRange hasnt been called There is no more route ranges in the list

isisRouter getRouteRange routeRangeLocalId Accesses the ranges entry in the list with an identifier of routeRangeLocalId. The router range is accessed in the isisRouteRange command. Specific errors are:
A router with this routeRangeLocalId does not exist in the list

isisRouter setDefault Sets default values for all configuration options. isisRouter setInterface interfaceLocalId Sets the values for the interfaces entry in the list with an identifier of interfaceLocalId based on changes made through the isisInterface command. This command can be used to change a running configuration and must be followed by an isisServer write command in order to send these changes to the Protocol Server. Specific errors are:
A router with this interfaceLocalId does not exist in the list

isisRouter setRouteRange interfaceLocalId Sets the values for the route ranges entry in the list with an identifier of interfaceLocalId based on changes made through the isisRouteRange command. This command should be used to change a running configuration and must be followed by an isisServer write command in order to send these changes to the Protocol Server. Specific errors are:
A router with this interfaceLocalId does not exist in the list

EXAMPLES SEE ALSO

See examples under isisServer. isisServer, isisInterface, isisRouteRange

A-130

Ixia Tcl Development Guide

isisRouteRange

NAME - isisRouteRange
isisRouteRange -sets up the parameters associated with an ISIS router range. SYNOPSIS DESCRIPTION isisRouteRange sub-command options The isisRouteRange command describes an individual set of routes. Route ranges are added into isisRouter lists using the isisRouter addRouteRange command. Refer to IS-IS on page 3-24 for a discussion on ISIS testing with Ixia equipment. Refer to isisRouteRange on page 5-69 for an overview of this command.

STANDARD OPTIONS
enable true / false metric networkIpAddress numberOfNetworks prefix

Enables the use of this route range for the simulated router. (default = false) The cost metric associated with the route. (default = 0) The IP address of the routes to be advertised. (default = 0.0.0.0) The number of prefixes to be advertised. (default = 0) The number of bits in the prefixes to be advertised. For example, a value of 24 is equivalent to a network mask of 255.255.255.0. (default = 0) The isisRouteRange command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

COMMANDS

isisRouteRange cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the isisRouteRange command. isisRouteRange config option value Modify the configuration options of the isisRouteRange. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for isisRouteRange. isisRouteRange setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under isisServer. isisServer, isisInterface, isisRouter

Ixia Tcl Development Guide

A-131

isisServer

NAME - isisServer
isisServer - access the ISIS component of the Protocol Server for a particular port. SYNOPSIS DESCRIPTION isisServer sub-command options The isisServer command is necessary in order to access the IS-IS Protocol Server for a particular port. The select sub-command must be used before all other IS-IS commands. Refer to IS-IS on page 3-24 for a discussion on ISIS testing with Ixia equipment. Refer to isisServer on page 5-66 for an overview.

STANDARD OPTIONS
None

COMMANDS

The isisServer command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

isisServer addRouter routerLocalId Adds the IS-IS router described in the isisRouter command to the list of routers associated with the port. The routers entry in the list is given an identifier of routerLocalId. Specific errors are:
isisServer select hasnt been called The router parameters in isisRouter are invalid A router with this routerLocalId exists already in the list

isisServer cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the isisServer command. isisServer clearAllRouters Deletes all the ISIS routers in the list. Specific errors are:
isisServer select hasnt been called There is no router with this routerLocalId in the list

isisServer config option value Modify the configuration options of the isisServer. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for isisServer. isisServer delRouter routerLocalId Deletes the ISIS router described that has an identifier of routerLocalId. Specific errors are:
isisServer select hasnt been called There is no router with this routerLocalId in the list

A-132

Ixia Tcl Development Guide

isisServer

isisServer generateStreams chasID cardID portID action Generate streams creates additional streams for the indicated port and replaces the ports current streams or adds it to the current streams depending on the action option:
Option Value Usage Replace the ports current streams. Add the streams to the ports current streams.

protocolServerStreamReplace 0 protocolServerStreamAppend 1

A separate stream is generated for each enabled route range associated with each ISIS router; each stream covers the count of IP addresses associated with the route range. The characteristics of the generated streams are:
Each stream but the last is set to advance to the next stream; the last stream is set to return to the first stream. Ethernet II encapsulation is used. IPv4 framing is used. The transmission rate is the ports maximum rate. Minimum frame sizes are used. A data pattern of incrementing bytes (00 01 02 ...) is used. The source MAC address is set from the value associated with the indicated sending port. The destination MAC address is set via an ARP lookup on the destination IP address, which is set using UDF4. A single burst of packets is sent per stream, with the count equal to the count of addresses in the route range. UDF4 or IP address controls are used to iterate through the count of addresses in the route range; it should not be reprogrammed.

isisServer getFirstRouter Access the first ISIS router in the list. The results may be accessed using the isisRouter command. Specific errors are:
isisServer select hasnt been called There are no routers in the list

isisServer getNextRouter Access the next ISIS router in the list. The results may be accessed using the isisRouter command. Specific errors are:
isisServer select hasnt been called isisServer getFirstRouter hasnt been called There is no more routers in the list

isisServer getRouter routerLocalId Access the ISIS router with an identifier of routerLocalId. The results may be accessed using the isisRouter command. Specific errors are:
isisServer select hasnt been called There is no router with this routerLocalId in the list

isisServer select chasID cardID portID Accesses the ISIS component of the Protocol server for the indicated port. Specific errors are:
No connection to the chassis The ISIS protocol package has not been installed Invalid port specified

Ixia Tcl Development Guide

A-133

isisServer

isisServer setRouter routerLocalId Sets the values for the routers entry in the list with an identifier of routerLocalId based on changes made through the isisRouter command. This command should be used to change a running configuration and must be followed by an isisServer write command in order to send these changes to the Protocol Server. Specific errors are:
A router with this routerLocalId does not exist in the list

isisServer write Sends any changes made with isisRouter setInterface, isisRouter setRouteRange or isisServer setRouter to the Protocol Server for immediate application. This command must be used after those mentioned above in order for their changes to have an effect. EXAMPLES

package req IxTclHal # Define parameters used by ISIS router set host ruby if [ixInitialize $host] { logMsg Error in connecting to hostName return 1 } # Port is card 9, port 1 set ch set ca set po set pl set myMac set router set neighbor set interfaceIpMask set numberOfRoute

[chassis cget -id] 9 4 [list [list $ch $ca $po]] {00 0a de 01 01 01} 101.101.12.2 101.101.12.1 255.255.255.0 1650

# Set up IP address table for others who ARP to us ipAddressTableItem setDefault ipAddressTableItem config -numAddresses ipAddressTableItem config -mappingOption ipAddressTableItem config -overrideDefaultGateway ipAddressTableItem config -fromIpAddress ipAddressTableItem config -fromMacAddress ipAddressTable addItem ipAddressTable config -defaultGateway ipAddressTable set $ch $ca $po # Select port to operate isisServer select $ch $ca $po # Clear all routers isisServer clearAllRouters # Configure the interface isisInterface setDefault isisInterface config -enable isisInterface config -connectToDut isisInterface config -ipAddress isisInterface config -ipMask isisInterface config -networkType

1 oneIpToOneMAC false $router $myMac $neighbor

true true $router $interfaceIpMask isisBroadcast

A-134

Ixia Tcl Development Guide

isisServer

isisInterface config -metric isisInterface config -level

10 isisLevel2

# Add the isis interface to the router if [isisRouter addInterface interface1] { logMsg Error in adding isisInterface interface1 } # Configure the routeRange isisRouteRange setDefault isisRouteRange config -enable isisRouteRange config -metric isisRouteRange config -numberOfNetworks isisRouteRange config -prefix isisRouteRange config -networkIpAddress

true 1 $numberOfRoute 24 {14.0.0.0}

# Add the isis routeRange to the router if [isisRouter addRouteRange routeRange1] { logMsg Error in adding routeRange }

# Configure isis router isisRouter setDefault isisRouter config -routerId 00 0$ca 0$po 01 00 00 isisRouter config -enable true # Add the router to the server if [isisServer addRouter logMsg Error in adding router } # Let the protocol server respond to ARP, protocolServer config -enableArpResponse protocolServer config -enableIsisService protocolServer config -enablePingResponse protocolServer set $ch $ca $po

router1] {

ISIS and PING true true false

# Send the data to the hardware logMsg Writing the configuration to the hardware ixWriteConfigToHardware pl # And start ISIS on the port logMsg Start isis server ... ixStartIsis pl # Disable routeRange1 while isis server is runnung. # This is the same as removing the route range from router isisServer select $ch $ca $po if [isisServer getRouter router1] { logMsg Error getting router1 } if [isisRouter getRouteRange routeRange1] { logMsg Error getting routeRange1 } # Disable the route range # (You can also change other configuration if you want) isisRouteRange config -enable false if [isisRouter setRouteRange routeRange1] {

Ixia Tcl Development Guide

A-135

isisServer

logMsg Error setting routeRange1 } if [isisServer write] { logMsg Error writing isisServer } after 10000 # Stop the server at the end logMsg Stop isis server ... ixStopIsis pl # If you wanted to add a route range while isis server is running, # -Configure it disabled before starting isis server and then # enable it # The same thing is also possible on isisInterface. # You just need to get the item that you want and change the configuration # and set that item. Then write the changes to hardware by isisServ

SEE ALSO

isisInterface, isisRouter, isisRouteRange

A-136

Ixia Tcl Development Guide

isl

NAME - isl
isl - configure the Cisco Inter-Switch Link (ISL) parameters for a port on a card on a chassis SYNOPSIS DESCRIPTION isl sub-command options The isl command is used to configure the ISL-specific information used when building ISL-type packets. This is enabled using protocol config -enableISLtag true. The encapsulated frames Source and Destination MAC addresses are configured through the stream config -da and -sa commands. See stream on page A-282. The previously documented options to the isl command encapDA and encapSA, should not be used to set the MAC addresses but may be used to view the values.

STANDARD OPTIONS
bpdu

Set for all Bridge Protocol Data Units that are encapsulated by the ISL packet. (default = 0) The encapulated frame's Destination MAC addresses. This value should be set through the use of stream config -da, but may be read back through this option. For example:
stream config -da {02 02 02 02 02 02} stream config -sa {01 01 01 01 01 01} stream set 1 1 1 1 isl get 1 1 1 isl cget -encapDA 02 02 02 02 02 02 isl cget -encapSA 01 01 01 01 01 01

encapDA

encapSA

The encapulated frame's Source MAC addresses. This value should be set through the use of stream config -sa, but may be read back through this option. See the exampel for encapDA. The type field indicates the type of frame that is encapsulated. Options include:
Option islFrameEthernet islFrameTokenRing islFrameFDDI islFrameATM Value 0 1 2 3 (default) Usage

frameType

hsa

The High bits of Source Address is the upper 3 bytes of the Source Address, which corresponds to the manufacturer's ID. (default = 00 00 0C) Value of the selected register. (default = 0)

index

Ixia Tcl Development Guide

A-137

isl

islDA

The address is a multicast address whose value in the first 40 bits of the DA indicate to the receiver that the packet is in ISL format. (default = 01 00 0C 00 00) Read-Only: The source MAC address. The upper 3 bytes of this field are reflected in the hsa field. (default = 00 00 0C 00 00 00) The low order two bits of this field indicate the priority of the packet as it passes through the switch. Priorities 0 to 7 are valid. (default = 0) The Virtual LAN Identifier. (default = 1) The isl command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available. Returns the current value of the configuration option given by option. Option may have any of the values accepted by the isl command. isl config option value Modify the ISL configuration options of the port. If no option is specified, returns a list describing all of the available ISL options (see STANDARD OPTIONS) for port. isl decode capFrame [chasID cardID portID] Decodes a captured frame in the capture buffer and updates TclHal. isl cget option command can be used after decoding to get the option data. If chasID, cardID and portID are omitted, then packet offsets for Ethernet packets are used. Specific errors are:
No connection to a chassis Invalid port number The captured frame is not a valid ISL frame

islSA

userPriority vlanID

COMMANDS isl cget option

isl get chasID cardID portID Gets the current ISL configuration of the port with id portID on card cardID, chassis chasID. Call this command before calling isl cget option to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

isl set chasID cardID portID Sets the ISL configuration of the port with id portID on card cardID, chassis chasID by reading the configuration option values set by the isl config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port

isl setDefault Sets default values for all configuration options.

A-138

Ixia Tcl Development Guide

isl

EXAMPLES

package require IxTclHal set host localhost ixInitialize $host set chas [ixGetChassisID $host] set card 1 set port 1 set portList [list [list $chas $card $port]] stream setDefault protocol protocol protocol protocol setDefault config -name ipV4 config -ethernetType ethernetII config -enableISLtag true

isl setDefault isl config -vlanID isl set $chas $card $port stream set $chas $card $port 1

42

ixWriteConfigToHardware portList

SEE ALSO

protocol

Ixia Tcl Development Guide

A-139

mii

NAME - mii
mii - configure the MII parameters for a MII ports SYNOPSIS DESCRIPTION mii sub-command options The mii command is used to configure the MII-specific information on old-style IEEE 802.3 devices. New style MII AE devices defined in IEEE 802.3ae are managed by the miiae, mmd, and mmdRegister commands.

STANDARD OPTIONS
enableManualAuto Negotiate true / false miiRegister

If set to true, then as the MII register is written to hardware auto negotiation will begin. (default = false) MII Source register. Defined register values include:
Option miiControl miiStatus miiPHYId1 miiPHYId2 miiAutoNegAdvertisement miiAutoNegLinkPartnerAbility miiAutoNegExpansion miiRegister7 miiRegister8 miiRegister9 miiRegister10 miiRegister11 miiRegister12 miiRegister13 miiRegister14 miiRegister15 miiMirror miiInterruptEnable miiInterruptStatus miiConfiguration miiChipStatus miiRegister21 miiRegister22 miiRegister23 miiRegister24 miiRegister25 miiRegister26 Value 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 (default) Usage

A-140

Ixia Tcl Development Guide

mii

Option miiRegister27 miiRegister28 miiRegister29 miiRegister30 miiRegister31

Value 27 28 29 30 31

Usage

phyAddress

Physical address of the MII register location. If set to 1, use default location. (default = -1) Sets the properties of the selected register. Possible properties include:
Option miiDisabled miiReadOnly miiReadWrite miiSynchToCurrentState Value 0 1 2 3 The register is read and written during operation. In addition, the read values are placed into the editable fields at the same time. (default) Usage

readWrite

registerValue

Value of the selected register. (default = 0000) The mii command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

COMMANDS mii cget option

Returns the current value of the configuration option given by option. Option may have any of the values accepted by the mii command. mii config option value Modify the MII configuration options of the port. If no option is specified, returns a list describing all of the available MII options (see STANDARD OPTIONS) for port. mii get chasID cardID portID [index = 0] Gets the current MII configuration of the port with id portID on card cardID, chassis chasID. Any of the three supported PHYs may be selected through the use of the index. The supported PHYs are:
Option mdioInternal mdioExternal1 mdioExternal2 Value 0 1 2 Usage (default) The internal PHY located on the Ixia card. The first defined external PHY. The second defined external PHY.

Call this command before calling mii cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

Ixia Tcl Development Guide

A-141

mii

The port is being used by another user Network error between the client and the chassis

mii selectRegister select After mii get chasID cardID portID has completed selects which register to fill the Tcl parameters with. Specific errors are:
No port has previously been selected with the mii.get method The port is not an Mii port, or a port with Mii capability

mii set chasID cardID portID [index = 0] Sets the MII configuration of the port with id portID on card cardID, chassis chasID by reading the configuration option values set by the mii config option value command. Any of the three supported PHYs may be set through the use of the index. The supported PHYs are:
Option mdioInternal mdioExternal1 mdioExternal2 Value 0 1 2 Usage (default) The internal PHY located on the Ixia card. The first defined external PHY. The second defined external PHY.

Specific errors are:


No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port The port is not an Mii port, or a port with Mii capability

mii setDefault Sets default values for all configuration options. mii write chasID cardID portID Writes the MII configuration of the port with id portID on card cardID, chassis chasID to the hardware. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user Network error between the client and the chassis The port is not an Mii port, or a port with Mii capability

EXAMPLES

package require IxTclHal # Connect to chassis and get chassis ID set host localhost ixInitialize $host set chas [ixGetChassisID $host] # Assuming that MII card is in slot 3 set card 3 # Check for missing card if {[card get $chas $card] != 0} \ { ixPuts Card $card does not exist exit

A-142

Ixia Tcl Development Guide

mii

} # Get the type of card and check if its the correct type set cardType [card cget -type] if {$cardType != $::card10100Mii} \ { ixPuts Card $card is not a 10/100 MII card exit } # Set the options to default values mii setDefault # Get the current mii state from the card mii get $chas $card 1 # Get the value of the control register (0) mii selectRegister miiControl set controlReg [mii cget -registerValue] set msg [format Register 00 value is %04x $controlReg] ixPuts $msg # Set the mode on register 00 to Read/Write/Sync mii config -readWrite miiSynchToCurrentState # With bit 14 (loopback) on set controlReg [expr $controlReg | 0x0400] mii config -registerValue $controlReg # set to ixTclHal mii set $chas $card 1 # and write to hardware set portList [list [list $chas $card 1]] ixWritePortsToHardware portList

SEE ALSO

port, miiae, mmd, mmdRegister

Ixia Tcl Development Guide

A-143

miiae

NAME - miiae
miiae - configure an MII AE. SYNOPSIS DESCRIPTION miiae sub-command options The miiae command is used to configure an MII AE PHY to be associated with a port. miiae manages new-style IEEE 802.3ae PHYs. After configuration, miiae set should be used to associate it with a port; port write or miiae write should be used to write the values to the hardware.

STANDARD OPTIONS
phyAddress

The address of the MII AE PHY. (default = 0) The miiae command is invoked with the following sub-commands. If no subcommand is specified, returns a list of all sub-commands available.

COMMANDS miiae addDevice

Adds the device defined through the use of the mmd command. miiae clearAllDevices Deletes all devices associated with this MII AE PHY. miiae config option value Modify the configuration options of the PHY. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS). miiae delDevice deviceAddress Deletes the device whose address is deviceAddress. miiae get chasID cardID portID index Gets the current MII configuration of the port with id portID on card cardID, chassis chasID. Any of the three supported PHYs may be selected through the use of the index. The supported PHYs are:
Option mdioInternal mdioExternal1 mdioExternal2 Value 0 1 2 Usage (default) The internal PHY located on the Ixia card. The first defined external PHY. The second defined external PHY.

Call this command before calling mmd to look at the PHY. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user Network error between the client and the chassis

A-144

Ixia Tcl Development Guide

miiae

miiae getDevice deviceAddress Gets the device whose address is deviceAddress. The values associated with the device may be viewed and modified through the use of the mmd command. miiae set chasID cardID portID index Sets the MII configuration of the port with id portID on card cardID, chassis chasID by reading the configuration option values set by the mmd command. Any of the three supported PHYs may be set through the use of the index. The supported PHYs are:
Option mdioInternal mdioExternal1 mdioExternal2 Value 0 1 2 Usage (default) The internal PHY located on the Ixia card. The first defined external PHY. The second defined external PHY.

Specific errors are:


No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port The port is not an Mii port, or a port with Mii capability

miiae setDefault Sets default values for all configuration options. EXAMPLES

package require IxTclHal # Connect to chassis and get chassis ID set host localhost ixInitialize $host set chas [ixGetChassisID $host] # Assuming that a 10GB XAUI card is in slot 3 set card 48 set port 1 set deviceNo 1

# Configure register 1 mmdRegister config -address 1 mmdRegister config -name reg1 mmdRegister config -registerValue {12 23} # And add it to the MMD mmd addRegister # Configure register 1 mmdRegister config -address 2 mmdRegister config -name reg2 mmdRegister config -registerValue {34 05} mmd addRegister # Now configure the MMD and add it to the miiae mmd config -address $deviceNo mmd config -name dev1 # Add it to the miiae miiae addDevice

Ixia Tcl Development Guide

A-145

miiae

miiae config -phyAddress

24

# Set and write the miiae if [miiae set $chas $card $port mdioExternal1] { ixPuts Error in miiae set } if [miiae write $chas $card $port] { ixPuts Error in miiae write } # Now get the object back miiae clearAllDevices if [miiae get $chas $card $port mdioExternal1] { ixPuts Error in miiae get } if [miiae getDevice $deviceNo] { ixPuts Error in miiae getDevice } # Now get the register contents mmd getRegister 1 set name [mmdRegister cget -name] set val [mmdRegister cget -registerValue] ixPuts Register 1 ($name) is $val

SEE ALSO

mii, mmd, mmdRegister

A-146

Ixia Tcl Development Guide

mmd

NAME - mmd
mmd - configure an MII AE PHY. SYNOPSIS DESCRIPTION mmd sub-command options The mmd command is used to configure an individual MII AE PHY device. After configuration, miiae addDevice should be used to add the device to the MII AE. The current contents of the device may be obtained via miiae getDevice. The value of a device may only be changed by a sequence of miiae getDevice, miiae delDevice and miiae addDevice.

STANDARD OPTIONS
address name

The address of the device in the MMD device. (default = 0) The name of the device. (default = {}) The mmd command is invoked with the following sub-commands. If no subcommand is specified, returns a list of all sub-commands available.

COMMANDS mmd addRegister

Adds the register defined through the use of the mmdRegister command to the MMD device. mmd clearAllRegisters Deletes all the registers associated with the MMD device. mmd config option value Modify the configuration options of the MMD device. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS). mmd delRegister registerAddress Deletes the register whose address is registerAddress. mmd getRegister registerAddress Gets the register whose address is registerAddress. The values associated with the register may be viewed and modified through the use of the mmdRegister command. mmd setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples in miiae. mii, miiae, mmdRegister

Ixia Tcl Development Guide

A-147

mmdRegister

NAME - mmdRegister
mmdRegister - configure an MII AE MMD Register. SYNOPSIS DESCRIPTION mmdRegister sub-command options The mmdRegister command is used to configure an individual MII AE MMD register. After configuration, mmd addRegister should be used to add the register to the PHY device. The current contents of the register may be obtained via mmd getRegister. The value of a register may only be changed by a sequence of mmd getRegister, mmd delRegister and mmd addRegister.

STANDARD OPTIONS
address name readWrite

The address of the register in the register. (default = 0) The name of the register. (default = {}) Sets the properties of the selected register. Possible properties include:
Option miiDisabled miiReadOnly miiReadWrite miiSynchToCurrentState Value 0 1 2 3 (default) The register is read and written during operation. In addition, the read values are placed into the editable fields at the same time. Usage

registerValue

Value of the selected register. (default = 0) The mmdRegister command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

COMMANDS

mmdRegister config option value Modify the configuration options of the register. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS). mmdRegister setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples in miiae. mii, miiae, mmd

A-148

Ixia Tcl Development Guide

mpls

NAME - mpls
mpls - configure the MPLS parameters for a port on a card on a chassis SYNOPSIS DESCRIPTION mpls sub-command options The mpls command is used to configure the MPLS information when building MPLS labeled packets. See draft-ietf-mpls-arch-06.txt work in progress for a complete definition of MPLS label fields.

STANDARD OPTIONS
forceBottomOfStack

true/false
type

Automatically sets bottom of the stack bit. (default = true) Sets the MPLS type. Options include:
Option mplsUnicast mplsMulticast Value 0 1 (default) Usage

COMMANDS mpls cget option

The mpls command is invoked with the following sub-commands. If no subcommand is specified, returns a list of all sub-commands available.

Returns the current value of the configuration option given by option. Option may have any of the values accepted by the mpls command. mpls config option value Modify the MPLS configuration options of the port. If no option is specified, returns a list describing all of the available MPLS options (see STANDARD OPTIONS) for port. mpls decode capFrame [chasID cardID portID] Decodes a captured frame in the capture buffer and updates TclHal. mpls cget option command can be used after decoding to get the option data. If chasID, cardID and portID are omitted, then packet offsets for Ethernet packets are used. Specific errors are:
No connection to a chassis Invalid port number The captured frame is not a valid Mpls frame

mpls get chasID cardID portID Gets the current MPLS configuration of the port with id portID on card cardID, chassis chasID. Call this command before calling mpls cget option to get the value of the configuration option. Specific errors are:
No connection to a chassis

Ixia Tcl Development Guide

A-149

mpls

Invalid port number

mpls set chasID cardID portID Sets the MPLS configuration of the port with id portID on card cardID, chassis chasID by reading the configuration option values set by the mpls config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port

mpls setDefault Sets default values for all configuration options. EXAMPLES

package require IxTclHal # Connect to chassis and get chassis ID set host galaxy ixInitialize $host set chas [ixGetChassisID $host] set card 1 set txPort 1 set rxPort 2 # Useful port lists set portList [list [list $chas $card $txPort] \ [list $chas $card $rxPort]] # Set up Transmit Port # Nothing special about the ports port setFactoryDefaults $chas $card $txPort port setDefault port set $chas $card $txPort port set $chas $card $rxPort # Stream: 10 packets stream setDefault stream config -numFrames 10 stream config -dma stopStream #stream config -percentPacketRate 100 #stream config -rateMode usePercentRate protocol setDefault protocol config -ethernetType protocol config -enableMPLS # Setup up two mpls labels mpls setDefault mpls config -type mplsLabel mplsLabel mplsLabel mplsLabel setDefault config -label config -bottomOfStack set 1

ethernetII true

mplsUnicast

128 false

mplsLabel config -label

256

A-150

Ixia Tcl Development Guide

mpls

mplsLabel config -bottomOfStack mplsLabel set 2 mpls set $chas $card $txPort stream set $chas $card $txPort 1 # Commit to hardware ixWritePortsToHardware portList

true

# Make sure link is up after 1000 ixCheckLinkState portList ixStartPortCapture $chas $card $rxPort # Clear stats and transmit MPLS labeled frames ixClearStats portList ixStartPortTransmit $chas $card $txPort

SEE ALSO

stream, protocol, mplsLabel

Ixia Tcl Development Guide

A-151

mplsLabel

NAME - mplsLabel
mplsLabel - configure the MPLS label parameters for a port on a card on a chassis. SYNOPSIS DESCRIPTION mplsLabel sub-command options The mplsLabel command is used to configure the MPLS label information when building MPLS labeled packets. See draft-ietf-mpls-arch-06.txt work in progress for a complete definition of MPLS label fields.

STANDARD OPTIONS
bottomOfStack

true/false

Enables the bottom of the stack bit. This bit is set to true for the last entry in the label stack (for the bottom of the stack) and false for all other label stack entries. (default = true) Sets the experimental use. (default=0) Sets the actual value of the label. Any 16-bit value is valid; predefined options include:
Option mplsIPv4ExplicitNULL mplsRouterAlert mplsIPv6ExplicitNULL mplsImplicitNULL mplsReserved Value 0 1 2 3 4 (default) Usage

experimentalUse label

timeToLive

Sets the time-to-live value. (default=0) The mplsLabel command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

COMMANDS

mplsLabel cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the mplsLabel command. mplsLabel config option value Modify the MPLS label configuration options of the port. If no option is specified, returns a list describing all of the available MPLS label options (see STANDARD OPTIONS) for port. mplsLabel get labelID Gets the current label configuration of the selected labelID. Call this command before calling mplsLabel cget option to get the value of the configuration option. Specific errors are:

A-152

Ixia Tcl Development Guide

mplsLabel

There are no MPLS labels The specified labelID does not exist

mplsLabel set labelID Sets the label configuration for label labelID reading the configuration option values set by the mplsLabel config option value command. Specific errors are:
The configured parameters are not valid for this port Insufficient memory to add a new label

mplsLabel setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under the mpls command. stream, protocol, mpls

Ixia Tcl Development Guide

A-153

ospfInterface

NAME - ospfInterface
ospfInterface - configures an interface for an OSPF router. SYNOPSIS DESCRIPTION ospfInterface sub-command options The ospfInterface holds the information related to a single interface on the simulated router. Interfaces are added into the ospfRouter interface list using the ospfRouter addInterface command. Refer to OSPF on page 3-17 for a discussion on OSPF testing with Ixia equipment. Refer to ospfInterface on page 5-62 for an overview.

STANDARD OPTIONS
areaId connectToDut deadInterval

The OSPF area ID associated with the interface. (default = 0) Indicates that this interface is directly connected to the DUT. (default = 0) The time after which the DUT router is considered dead if it does not send HELLO messages. (default = 40) Enables the use of the simulated interface. (default = 0) Enables the use of the linkMetric, maxBandwidth, maxReservableBandwidth, and unreservedBandwidthPriority0-7 for traffic engineering purposes. These values are used to generate two LSAs: a router LSA and a link LSA with an opaque TLV containing sub-TLV for the link metric, max bandwidth, max reservable bandwidth and unreserved bandwidth priorities. (default = false) Enables validation on incoming database entries received by the simulated router. If this is set to 1, then received database entries which advertise an MTU larger than the value in the mtuSize option are ignored. If this is set to 0, then the advertised MTU size is 0 and the MTU size in received database entries is ignored. (default = true) The time between HELLO messages sent over the interface. (default = 10) The IP address of the interface. (default = 0.0.0.0) The IP mask associated with the interface. (default = 255.255.255.0) If enableTrafficEngineering is true, then this indicates the traffic engineering metric associated with the interface. (default = 0)
The Link Type advertised in the Router LSA interface list. One of the following:
Option Value Usage A point-to-point network. (default) A transit network. A stub network.

enable enableTraffic Engineering true / false

enableValidateMtu

true / false

helloInterval ipAddress ipMask linkMetric

linkType

ospfInterfaceLinkPointToPoint 1 ospfInterfaceLinkTransit ospfInterfaceLinkStub 2 3

A-154

Ixia Tcl Development Guide

ospfInterface

maxBandwidth

If enableTrafficEngineering is 1, then this indicates the maximum bandwidth that can be used on the link between this interface and its neighbors in the outbound direction. (default = 0.0) If enableTrafficEngineering is 1, then this indicates the maximum bandwidth, in bytes per second, that can be reserved on the link between this interface and its neighbors in the outbound direction. (default = 0.0) The metric associated with the interface. (default = 10) When the linkType option is set to ospfInterfaceLinkPointToPoint, then this option should be set to the ID of the router on the other end of the point-to-point connection. (default = 0.0.0.0) Indicates the type of network associated with the interface. One of the following options:
Option ospfPointToPoint ospfBroadcast Value 1 2 Usage Indicates that the network is point to point, as in a PPP connection. (default) Indicates that the network is a broadcast network, as in an Ethernet connection.

maxReservable Bandwidth

metric neighborRouterId

networkType

numberOfLearnedLsas

Read-only. The number of learned LSAs obtained through a call to ospfInterface getLearnedLsaList. The advertised MTU value in database entries sent to other routers. The enableValidateMTU option must be set to true in order for the MTU size to be transmitted. (default = 1500) Options related to the interface. Multiple options may be ord together. The available options are:
Option ospfOptionBitTypeOfService ospfOptionBitExternalRouting ospfOptionBitMulticast ospfOptionBitNSSACapability ospfOptionBitExternalAttributes ospfOptionBitDemandCircuit ospfOptionBitLSANoForward ospfOptionBitUnused Value 0x01 0x02 0x04 0x08 0x10 0x20 0x40 0x80 default Usage

mtuSize

options

priority

The priority of the interface, for use in election of the designated or backup master. (default = 0) If enableTrafficEngineering is 1, then these eight values indicate the amount of bandwidth, in bytes per second, not yet reserved at each of the eight priority levels. These values correspond to the bandwidth that can be reserved with a setup priority of 0 through 7. Each value must be less than the maxReservableBandwidth option. (default = 0.0)

unreservedBandwidth Priority0-7

Ixia Tcl Development Guide

A-155

ospfInterface

COMMANDS

The ospfInterface command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

ospfInterface cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the ospfInterface command. ospfInterface config option value Modify the configuration options of the ospfInterface. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for ospfInterface. ospfInterface getFirstLearnedLsa This command must be preceded by use of the ospfInterface getLearnedLsaList command and followed by multiple uses of ospfInterface getNextLearnedLsa. This command fetches the first of the learned LSAs in the list into memory. The data associated with the individual LSA may be read through the use of the ospfUserLsa command. ospfInterface getLearnedLsaList This command must be preceded by use of the ospfInterface requestLearnedLsaList and followed by a call to ospfInterface getFirstLearnedLsa. This command determines whether the reading of learned LSAs from the Protocol Server has completed. This command should be called until it returns a 0, or until some suitable period of time has elapsed. The number of learned LSAs is available in the numberOfLearnedLsas option. ospfInterface getNextLearnedLsa This command must be preceded by use of the ospfInterface getFirstLsa command and repeated multiple times to obtain all of the learned LSAs. This command fetches the next of the learned LSAs in the list into memory. The data associated with the individual LSA may be read through the use of the ospfUserLsa command. ospfInterface requestLearnedLsa Requests that the learned LSAs associated with this interface be retrieved from the Protocol Server. This command must be followed by call to ospfInterface getLearnedLsaList. ospfInterface setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under ospfServer ospfServer, ospfRouter, ospfRouteRange, ospfUserLsaGroup, ospfUserLsa, ospfRouterLsaInterface

A-156

Ixia Tcl Development Guide

ospfRouter

NAME - ospfRouter
ospfRouter - configure an OSPF router SYNOPSIS DESCRIPTION ospfRouter sub-command options The ospfRouter command represents a simulated router. In addition to some identifying options, it holds three lists for the router: Route ranges routes to be advertised by the simulated router, constructed in the ospfRouteRange command. Interfaces router interface, constructed in the ospfInterface command. LSA Groups Link State Advertising Groups which will be associated with advertised routes, constructed in the ospfUserLSAGroup command and subsidiary commands.

Routers defined in this command are added to an ospfServer using the ospfServer addRouter command. Refer to OSPF on page 3-17 for a discussion on OSPF testing with Ixia equipment. Refer to ospfRouter on page 5-59 for an overview of this command. STANDARD OPTIONS
autoGenerateRouterLsa

true / false

If enabled, the router will automatically generate a router LSA including all of the interfaces added with the ospfRouter addInterface command. This should be turned off if you are building OSPF topologies with ospfUserLsa commands. (default = true) Enables the use of this router in the simulated OSPF network. (default = false) ID of the router, usually the lowest IP address on the router. (default = 0.0.0.0) The ospfRouter command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

enable true / false routerId

COMMANDS

ospfRouter addInterface interfaceLocalId Adds the router interface described in the ospfInterface command to the list of interfaces associated with the router. The interfaces entry in the list is given an identifier of interfaceLocalId. Specific errors are:
The parameters in ospfInterface are invalid A router with this interfaceLocalId exists already in the list

ospfRouter addRouteRange routeRangeLocalId Adds the route range described in the ospfRouteRange command to the list of route ranges associated with the router. The ranges entry in the list is given an identifier of routeRangeLocalId. Specific errors are:
The parameters in ospfRouteRange are invalid A router with this routeRangeLocalId exists already in the list

Ixia Tcl Development Guide

A-157

ospfRouter

ospfRouter addUserLsaGroup userLsaGroupLocalId Adds the user LSA group described in the ospfUserLsaGroup command to the list of user LSAs associated with the router. The LSAs entry in the list is given an identifier of userLsaGroupLocalId. Specific errors are:
The parameters in ospfUserLsaGroup are invalid A router with this UserLsaGroupLocalId exists already in the list

ospfRouter cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the ospfRouter command. ospfRouter clearAllInterfaces Deletes all of the router interfaces. ospfRouter clearAllLsaGroups Deletes all of the user LSA groups. ospfRouter clearAllRouteRanges Deletes all of the route ranges. ospfRouter config option value Modify the configuration options of the ospfRouter. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for ospfRouter. ospfRouter delInterface interfaceLocalId Deletes the router interface with an identifier of interfaceLocalId. Specific errors are:
No router with this interfaceLocalId exists in the list

ospfRouter delRouteRange routeRangeLocalId Deletes the route range with an identifier of routeRangeLocalId. Specific errors are:
No router with this routeRangeLocalId exists in the list

ospfRouter delUserLsaGroup userLsaGroupLocalId Deletes the user LSA group with an identifier of userLsaGroupLocalId. Specific errors are:
No router with this UserLsaGroupLocalId exists in the list

ospfRouter getFirstInterface Access the first interface in the list. The results may be accessed using the ospfRouter command. Specific errors are:
ospfRouter select hasnt been called There are no interfaces in the list

A-158

Ixia Tcl Development Guide

ospfRouter

ospfRouter getFirstRouteRange Access the first route range in the list. The results may be accessed using the ospfRouter command. Specific errors are:
There are no route ranges in the list

ospfRouter getFirstUserLsaGroup Access the first user LSA group in the list. The results may be accessed using the ospfRouter command. Specific errors are:
There are no user LSA groups in the list

ospfRouter getInterface interfaceLocalId Accesses the interfaces entry in the list with an identifier of interfaceLocalId. The router interface is accessed in the ospfInterface command. Specific errors are:
A router with this interfaceLocalId does not exist in the list

ospfRouter getNextInterface Access the next interface in the list. The results may be accessed using the ospfRouter command. Specific errors are:
ospfRouter getFirstInterface hasnt been called There is no more interfaces in the list

ospfRouter getNextRouteRange Access the next route range in the list. The results may be accessed using the ospfRouter command. Specific errors are:
ospfRouter getFirstRouteRange hasnt been called There is no more route ranges in the list

ospfRouter getNextUserLsaGroup Access the next user LSA group in the list. The results may be accessed using the ospfRouter command. Specific errors are:
ospfRouter getFirstUserLsaGroup hasnt been called There is no more user LSA groups in the list

ospfRouter getRouteRange routeRangeLocalId Accesses the ranges entry in the list with an identifier of routeRangeLocalId. The router range is accessed in the ospfRouteRange command. Specific errors are:
A route range with this routeRangeLocalId does not exist in the list

ospfRouter getUserLsaGroup userLsaGroupLocalId Accesses the user LSA groups entry in the list with an identifier of userLsaGroupLocalId. The group is accessed in the ospfUserLsaGroup command. Specific errors are:
A router with this userLsaGroupLocalId does not exist in the list

ospfRouter setDefault Sets default values for all configuration options.

Ixia Tcl Development Guide

A-159

ospfRouter

ospfRouter setInterface interfaceLocalId Sets the values for the interfaces entry in the list with an identifier of interfaceLocalId based on changes made through the ospfInterface command. This command can be used to change a running configuration and must be followed by an ospfServer write command in order to send these changes to the Protocol Server. Specific errors are:
An interface with this interfaceLocalId does not exist in the list

ospfRouter setRouteRange routeRangeLocalId Sets the values for the route ranges entry in the list with an identifier of routeRangeLocalId based on changes made through the ospfRouteRange command. This command can be used to change a running configuration and must be followed by an ospfServer write command in order to send these changes to the Protocol Server. Specific errors are:
A router range with this routeRangeLocalId does not exist in the list

ospfRouter setUserLsaGroup userLsaGroupLocalId Sets the values for the user LSA groups entry in the list with an identifier of userLsaGroupLocalId based on changes made through the ospfUserLsaGroup command. This command can be used to change a running configuration and must be followed by an ospfServer write command in order to send these changes to the Protocol Server. Specific errors are:
A user LSA group with this userLsaGroupLocalId does not exist in the list

EXAMPLES SEE ALSO

See examples under ospfServer ospfServer, ospfInterface, ospfRouteRange, ospfUserLsaGroup, ospfUserLsa, ospfRouterLsaInterface

A-160

Ixia Tcl Development Guide

ospfRouteRange

NAME - ospfRouteRange
ospfRouteRange -sets up the parameters associated with an OSPF router range. SYNOPSIS DESCRIPTION ospfRouteRange sub-command options The ospfRouteRange command describes an individual set of routes. Route ranges are added into ospfRouter lists using the ospfRouter addRouteRange command. Refer to OSPF on page 3-17 for a discussion on OSPF testing with Ixia equipment. Refer to ospfRouteRange on page 5-61 for an overview.

STANDARD OPTIONS
enable true / false metric networkIpAddress numberOfNetworks prefix routeOrigin

Enables the use of this route range for the simulated router. (default = false) The cost metric associated with the route. (default = 0) The IP address of the routes to be advertised. (default = 0.0.0.0) The number of prefixes to be advertised. (default = 0) The number of bits in the prefixes to be advertised. For example, a value of 24 is equivalent to a network mask of 255.255.255.0. (default = 0) Whether the route originated within the area or externally. One of:
Option ospfRouteOriginArea ospfRouteOriginExternal ospfRouteOriginExternalType2 Value 0 1 2 Usage (default) within the area from outside the area from outside the area, but with metrics which are larger than any internal metric

COMMANDS

The ospfRouteRange command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available. Returns the current value of the configuration option given by option. Option may have any of the values accepted by the ospfRouteRange command.

ospfRouteRange cget option

ospfRouteRange config option value Modify the configuration options of the ospfRouteRange. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for ospfRouteRange. ospfRouteRange setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under ospfServer ospfServer, ospfInterface, ospfRouter, ospfUserLsaGroup, ospfUserLsa, ospfRouterLsaInterface

Ixia Tcl Development Guide

A-161

ospfRouterLsaInterface

NAME - ospfRouterLsaInterface
ospfRouterLsaInterface - configure a single Router LSA Interface entry. SYNOPSIS DESCRIPTION ospfRouterLsaInterface sub-command options The ospfRouterLSAInterface command describes a single Router LSA Interface entry. The data from this entry is added to an ospfUserLsa list for a RouterLSA entry using the ospfUserLsa addInterfaceDescriptionToRouterLsa command. Refer to OSPF on page 3-17 for a discussion on OSPF testing with Ixia equipment. Refer to ospfRouterLSAInterface on page 5-65 for an overview of this command.

STANDARD OPTIONS
linkData

Depends on the linkType field: (default = 0.0.0.0)


linkType ospfLinkPointToPoint ospfLinkTransit ospfLinkStub ospfLink Value for unnumbered connections, the interfaces MIB-II ifIndex value the router interfaces IP address the networks IP address mask the router interfaces IP address

linkId

Identifies the object that this router link connects to, depending on the linkType field: (default = 0.0.0.0)
linkType ospfLinkPointToPoint ospfLinkTransit ospfLinkStub ospfLink Value the neighboring routers router ID the IP address of the Designated Router the IP network/subnet number the neighboring routers router ID

linkType

The type of the router link. One of:


Option ospfLinkPointToPoint ospfLinkTransit ospfLinkStub ospfLink Value 1 2 3 4 Usage a point-to-point connection to another router (default) a connection to a transit network a connection a stub network a virtual link

metric

The cost of using the router link, applied to all TOS values.(default = 0)

A-162

Ixia Tcl Development Guide

ospfRouterLsaInterface

COMMANDS

The ospfRouterLsaInterface command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

ospfRouterLsaInterface cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the ospfRouterLsaInterface command. ospfRouterLsaInterface config option value Modify the configuration options of the ospfRouterLsaInterface. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for ospfRouterLsaInterface. ospfRouterLsaInterface setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under ospfServer ospfServer, ospfInterface, ospfRouter, ospfRouteRange, ospfUserLsaGroup, ospfUserLsa

Ixia Tcl Development Guide

A-163

ospfServer

NAME - ospfServer
ospfServer - access the OSPF component of the Protocol Server for a particular port. SYNOPSIS DESCRIPTION ospfServer sub-command options The ospfServer command is necessary in order to access the OSPF Protocol Server for a particular port. The select sub-command must be used before all other OSPF commands. Refer to OSPF on page 3-17 for a discussion on OSPF testing with Ixia equipment. Refer to ospfServer on page 5-58 for an overview.

STANDARD OPTIONS
None

COMMANDS

The ospfServer command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

ospfServer addRouter routerLocalId Adds the OSPF router described in the ospfRouter command to the list of routers associated with the port. The routers entry in the list is given an identifier of routerLocalId. Specific errors are:
ospfServer select hasnt been called The router parameters in ospfRouter are invalid A router with this routerLocalId exists already in the list

ospfServer cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the ospfServer command. ospfServer clearAllRouters Deletes all the OSPF routers in the list. Specific errors are:
ospfServer select hasnt been called

ospfServer config option value Modify the configuration options of the ospfServer. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for ospfServer. ospfServer delRouter routerLocalId Deletes the OSPF router described that has an identifier of routerLocalId. Specific errors are:
ospfServer select hasnt been called There is no router with this routerLocalId in the list

A-164

Ixia Tcl Development Guide

ospfServer

ospfServer generateStreams chasID cardID portID action This command creates additional streams for the indicated port and replaces the ports current streams or adds it to the current streams depending on the action option:
Option Value Usage Replace the ports current streams. Add the streams to the ports current streams.

protocolServerStreamReplace 0 protocolServerStreamAppend 1

A separate stream is generated for each enabled route range associated with each router; each stream covers the count of IP addresses associated with the route range. The characteristics of the generated streams are:
Each stream but the last is set to advance to the next stream; the last stream is set to return to the first stream. Ethernet II encapsulation is used. IPv4 framing is used. The transmission rate is the ports maximum rate. Minimum frame sizes are used. A data pattern of incrementing bytes (00 01 02 ...) is used. The source MAC address is set from the value associated with the indicated sending port. The destination MAC address is set via an ARP lookup on the destination IP address, which is set using UDF4. A single burst of packets is sent per stream, with the count equal to the count of addresses in the route range. UDF4 or IP address controls are used to iterate through the count of addresses in the route range; it should not be reprogrammed.

ospfServer getFirstRouter Access the first OSPF router in the list. The results may be accessed using the ospfRouter command. Specific errors are:
ospfServer select hasnt been called There are no routers in the list

ospfServer getNextRouter Access the next OSPF router in the list. The results may be accessed using the ospfRouter command. Specific errors are:
ospfServer select hasnt been called ospfServer getFirstRouter hasnt been called There are no more routers in the list

ospfServer getRouter routerLocalId Access the OSPF router with an identifier of routerLocalId. The results may be accessed using the ospfRouter command. Specific errors are:
ospfServer select hasnt been called There is no router with this routerLocalId in the list

ospfServer select chasID cardID portID Accesses the OSPF component of the Protocol server for the indicated port. Specific errors are:
No connection to the chassis The OSPF protocol package has not been installed Invalid port specified

Ixia Tcl Development Guide

A-165

ospfServer

ospfServer setRouter routerLocalId Sets the values for the routers entry in the list with an identifier of routerLocalId based on changes made through the ospfRouter command. This command should be used to change a running configuration and must be followed by an ospfServer write command in order to send these changes to the Protocol Server. Specific errors are:
A router with this routerLocalId does not exist in the list

ospfServer write Sends any changes made with ospfRouter setInterface, ospfRouter setRouteRange, ospfRouter setUserLsaGroup or ospfServer setRouter to the Protocol Server for immediate application. This command must be used after those mentioned above in order for their changes to have an effect. EXAMPLES

package req IxTclHal # Define parameters used by OSPF router set host ruby if [ixInitialize $host] { logMsg Error in connecting to hostName return 1 } # Port is card 9, port 1 set ch [chassis cget -id] set ca 9 set po 1 set pl [list [list $ch $ca $po]] set myMac {00 0a de 01 01 01} set router 101.101.9.2 set neighbor 101.101.9.1 set interfaceIpMask 255.255.255.0 set ospfInterfaceNetworkType ospfBroadcast set areaId 0 set numberOfRoute 1650 # Set up IP address table for others who ARP to us ipAddressTableItem setDefault ipAddressTableItem config -numAddresses ipAddressTableItem config -mappingOption ipAddressTableItem config -overrideDefaultGateway ipAddressTableItem config -fromIpAddress ipAddressTableItem config -fromMacAddress ipAddressTable addItem ipAddressTable config -defaultGateway ipAddressTable set $ch $ca $po # Select port to operate ospfServer select $ch $ca $po # Clear all routers ospfServer clearAllRouters # Configure the interface ospfInterface setDefault ospfInterface config -enable true ospfInterface config -connectToDut true ospfInterface config -ipAddress $router

1 oneIpToOneMAC false $router $myMac $neighbor

A-166

Ixia Tcl Development Guide

ospfServer

ospfInterface ospfInterface ospfInterface ospfInterface

config config config config

-ipMask -areaId -networkType -metric

$interfaceIpMask $areaId ospfBroadcast 10

# Add the ospf interface to the router if [ospfRouter addInterface interface1] { logMsg Error in adding ospfInterface interface1 } # Configure the routeRange ospfRouteRange setDefault ospfRouteRange config -enable ospfRouteRange config -metric ospfRouteRange config -numberOfNetworks ospfRouteRange config -prefix ospfRouteRange config -networkIpAddress

true 1 $numberOfRoute 24 {14.0.0.0}

# Add the ospf routeRange to the router if [ospfRouter addRouteRange routeRange1] { logMsg Error in adding routeRange } # Configure ospf router ospfRouter setDefault ospfRouter config -routerId $ca.$po.0.0 ospfRouter config -enable true # Add the router to the server if [ospfServer addRouter logMsg Error in adding router } # Let the protocol server respond to ARP, protocolServer config -enableArpResponse protocolServer config -enableOspfService protocolServer config -enablePingResponse protocolServer set $ch $ca $po # Send the data to the hardware ixWriteConfigToHardware pl # And start ospf on the port ixStartOspf pl # Disable routeRange1 while ospf server is runnung. # This is the same as removing the route range from router ospfServer select $ch $ca $po if [ospfServer getRouter router1] { logMsg Error getting router1 } if [ospfRouter getRouteRange routeRange1] { logMsg Error getting routeRange1 } # Disable the route range (You can also change other configuration if you want) ospfRouteRange config -enable false if [ospfRouter setRouteRange routeRange1] { logMsg Error setting routeRange1

router1] {

OSPF and PING true true false

Ixia Tcl Development Guide

A-167

ospfServer

} if [ospfServer write] { logMsg Error writing ospfServer } after 10000 #Stop the server at the end ixStopOspf pl # If you wanted to add a route range while ospf server is running, # -Configure it disabled before starting ospf server and then # enable it # The same thing is also possible on ospfInterface, ospfUserLsaGroup # and ospfUserLsa. # You just need to get the item that you want and change the configuration # and set that item. Then write the changes to hardware by ospfServer write

SEE ALSO

ospfInterface, ospfRouter, ospfRouteRange, ospfUserLsaGroup, ospfUserLsa, ospfRouterLsaInterface

A-168

Ixia Tcl Development Guide

ospfUserLsa

NAME - ospfUserLsa
ospfUserLsa - configure an individual User LSA for use in OSPF. SYNOPSIS DESCRIPTION ospfUserLsa sub-command options The ospfUserLSA describes an individual LSA. The types supported are: Route LSA describes routers interfaces with state and cost. This consists of a list of ospfRouterLSAInterface elements added via the ospfUserLSA addInterfaceDescriptionToRouterLsa. Network LSA generated by a designated router and lists all attached routers. Summary IP LSA describes destinations outside of an area. Summary ASBR LSA generated by AS Border Routers and list the ASBR itself. Opaque LSA used to carry information for other protocols and functions, notably OSPF.

Refer to OSPF on page 3-17 for a discussion on OSPF testing with Ixia equipment. Refer to ospfUserLSA on page 5-64 for an overview of this command. STANDARD OPTIONS Each of the supported LSA types has a different set of applicable standard options. The common options and the LSA specific options are described in the multiple tables below. All values must be expressed as integers (not hex values, for example). The LSA type is described when the LSA is added to the group using ospfUserLsaGroup on page A-176.

Common
advertisingRouterId age

The router ID of the router that is originating the LSA. (default = 0.0.0.0) Read only. Only available when this command is used to access a learned LSA (see ospfInterface). This value holds the age of the LSA extracted from the LSA header. Indicates whether the LSA is to be used in the simulation. (default = false) Multiple options may be ord together. The available options are:
Option Value 0 ospfOptionBitTypeOfService ospfOptionBitExternalRouting ospfOptionBitMulticast ospfOptionBitNSSACapability ospfOptionBitExternalAttributes ospfOptionBitDemandCircuit ospfOptionBitLSANoForward 0x01 0x02 0x04 0x08 0x10 0x20 0x40 (default) Usage

enable true / false options

Ixia Tcl Development Guide

A-169

ospfUserLsa

Option ospfOptionBitUnused

Value 0x80

Usage

sequenceNumber

Read only. Only available when this command is used to access a learned LSA (see ospfInterface). This value holds the sequence number of the LSA extracted from the LSA header.

Router LSA
linkStateId routerCapabilityBits

The router ID of the originating router. (default = 0.0.0.0) The routers capability bits. Multiple bits are defined; to set more than one bit use the Tcl or | operator. (default = 0). The bits defined are:
Option ospfBBit ospfEBit ospfVBit Value 1 2 4 B bit E bit V bit Usage

Network LSA
linkStateId neighborId

The IP address of the networks Designated Router. (default = 0.0.0.0) A list of router IDs in the area, in IP address format separated by spaces. (default = { })

Summary IP LSA
incrementLink StateIdBy linkStateId metric networkMask numberOfLSAs

If numberOfLSAs > 1, the value to increment the linkStateId by for each LSA.IP format. (default = 0.0.0.0) The IP address of the network. (default = 0.0.0.0) The cost of the route for all TOS levels. (default = 0) The destination networks IP address mask. (default = 0.0.0.0) The number of Summary IP LSAs to generate. (default = 0)

Summary ASBR LSA


linkStateId

The router ID of the AS Boundary router. (default = 0.0.0.0)

External LSA
externalMetricEbit externalRouteTag

The value of the external metrics E-bit. (default = 0) The type of external metric. A value of 1 implies type 2 metric, in which case the metric value is larger than any internal metric. A value of 0 implies type 1 metrics, in which case the metric value is expressed in the same units as internal metrics. (default = 0.0.0.0)

A-170

Ixia Tcl Development Guide

ospfUserLsa

forwardingAddress

Data traffic for the advertised destination will be forwarded to this address. If set to 0.0.0.0, then traffic will be forwarded to the AS boundary router itself. (default = 0.0.0.0) If numberOfLSAs > 1, the value to increment the linkStateId by for each LSA.IP format. (default = 0.0.0.0) The IP network number of the external destination. 0.0.0.0 is used to indicate a default route. (default = 0.0.0.0) The cost of the route, applied to all TOS values. (default = 0) The IP address mask for the advertised destination. 0.0.0.0 is used to indicate a default route. (default = 0.0.0.0) The number of External LSAs to generate. (default = 0)

incrementLink StateIdBy linkStateId

metric networkMask

numberOfLSAs

Opaque Local, Opaque Area and Opaque Domain LSAs


linkStateId

The high-order 8 bits indicate the Opaque type as defined in RFC 2370. The loworder 24 bits indicate the type-specific ID. (default = 0.0.0.0) Indicates the type of TLV (type-length-value) to be generated. This should be set to one of:
Option ospfRouterTlv ospfLinkTlv Value 0 1 (default) Usage

tlvType

For Router TLVs


tlvRouterIpAddress

The stable IP address of the advertising router that is always reachable if there is any connectivity to it. This is typically implemented as a loopback address. (default = 0.0.0.0)

For Link TLVs


true / false
enableTlvLinkId

Enables the generation of a sub-TLV for the Link ID, based on the value of the tlvLinkId. (default = 0) Enables the generation of a sub-TLV for the Link Metric, based on the value of the tlvLinkMetric. (default = 0) Enables the generation of a sub-TLV for the Link Type, based on the value of the tlvLinkType. (default = 0) Enables the generation of a sub-TLV for the Local IP address, based on the value of the tlvLocalIpAddress. (default = 0) Enables the generation of a sub-TLV for the Max Bandwidth, based on the value of the tlvMaxBandwidth. (default = 0)

enableTlvLinkMetric

true / false true / false

enableTlvLinkType

enableTlvLocalIp Address true / false enableTlvMax Bandwidth true / false

Ixia Tcl Development Guide

A-171

ospfUserLsa

enabletlvMax ReservableBandwidth

true / false

Enables the generation of a sub-TLV for the Max Reservable Bandwidth, based on the value of the tlvMaxReservableBandwidth. (default = 0) Enables the generation of a sub-TLV for the Remote IP Address, based on the value of the tlvRemoteIpAddress. (default = 0) Enables the generation of a sub-TLV for the Resrouce Class, based on the value of the tlvResourceClass. (default = 0) Enables the generation of a sub-TLV for the Unreserved Bandwidth, based on the value of the tlvUnreservedBandwidthPriority0-7. (default = 0) Identifies the other end of the link. For point-to-point links, thie is the ROuter ID of the neighbor. For multiaccess link, sthis is the interface address of the designated router. (default = 0.0.0.0) The link metric for traffic engineering purposes. (default = 0) The type of the link, one of:
Option ospfTlvLinkPointToPoint ospfTlvLinkBroadcast Value 1 2 (default) Usage

enableTlvRemoteIp Address true / false enableTlvResource Class true / false enableTlvUnreserved Bandwidth true / false tlvLinkId

tlvLinkMetric tlvLinkType

tlvLocalIpAddress

The IP address(es) of the interface corresponding to this link. If there are multiple local addresses on the link, they are all listed in this Tlv. (default = 0.0.0.0) The maximum bandwidth that can be used on this link in this direction (from the system originating the LSA to its neighbor). This is the true link capasity expressed in bytes per second. (default = 0) The maximum bandwidth that may be reserved on this link in this direction, (from the system originating the LSA to its neighbor). Note that this may be greater than the maximum bandwidth (in which case the link may be oversubscribed). Units are in bytes per second. (default = 0) The IP address(es) of theneighbors interface corresponding to this link. This and the local address are used to discern multiple parallel links between systems. (default = 0.0.0.0) Specifies the administrative group membership for this link, in terms of a bit mask. A link that is a member of multiple groups will have multiple bits sent. (default = 00 00 00 00) The amount of bandwidth not yet reserved, at each of eight priority levels. Each value must be less than or equal to the maximum reservable bandwidth. Units are in bytes per second. (default = 0.0) The ospfUserLsa command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

tlvMaxBandwidth

tlvMaxReservable Bandwidth

tlvRemoteIpAddress

tlvResourceClass

tlvUnreserved BandwidthPriority0-7

COMMANDS

A-172

Ixia Tcl Development Guide

ospfUserLsa

ospfUserLsa addInterfaceDescriptionToRouterLsa This command is for use with Router Interface LSAs only. Adds the router interface LSA described in the ospfRouterLsaInterface command to the list. Specific errors are:
The parameters in ospfRouterLsaInterface are invalid

ospfUserLsa cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the ospfUserLsa command. ospfUserLsa clearAllRouterLsaInterface This command is for use with Router Interface LSAs only. Deletes all of the user Router Interface LSAs. ospfUserLsa config option value Modify the configuration options of the ospfUserLsa. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for ospfUserLsa. ospfUserLsa getFirstRouterLsaInterface This command is for use with Router Interface LSAs only. It accesses the first Router Interface LSA entry in the list. The user LSA is accessed in the ospfRouterLsaInterface command. Specific errors are:
The type of this ospfUserLsa entry is not ospfLsaRouter There are no items in the list.

ospfUserLsa getNextRouterLsaInterface This command is for use with Router Interface LSAs only. It accesses the next Router Interface LSA entry in the list. getFirstRouterLsaInterface must be called before any calls to this command. The user LSA is accessed in the ospfRouterLsaInterface command. Specific errors are:
There are no more items in the list.

ospfUserLsa setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under ospfServer ospfServer, ospfInterface, ospfRouter, ospfRouteRange, ospfUserLsaGroup, ospfRouterLsaInterface

Ixia Tcl Development Guide

A-173

ospfUserLsaGroup

NAME - ospfUserLsaGroup
ospfUserLsaGroup - configure a User LSA group for use in OSPF. SYNOPSIS DESCRIPTION ospfUserLsaGroup sub-command options The ospfUserLSAGroup describes a list of LSAs to be associated with advertised routes. The list consists of elements constructed through the use of the ospfUserLsa command. Refer to OSPF on page 3-17 for a discussion on OSPF testing with Ixia equipment. Refer to ospfUserLSAGroup on page 5-64 for an overview of this command.

STANDARD OPTIONS
areaId description enable true / false

The area ID for the LSA group. (default = 0) A commentary description for the user LSA group. (default = ) Enables the use of this router in the simulated OSPF network. (default = fasle) The ospfUserLsaGroup command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

COMMANDS

ospfUserLsaGroup addUserLsa userLsaLocalId lsaType Adds the user LSA described in the ospfUserLsa command and of type lsaType to the list. The LSAs entry in the list is given an identifier of userLsaLocalId. The choices of lsaType are:
Option ospfLsaRouter ospfLsaNetwork ospfLsaSummaryIp ospfLsaSummaryAs ospfLsaExternal ospfLsaOpaqueLocal ospfLsaOpaqueArea Value 1 2 3 4 5 9 10 Usage

ospfLsaOpaqueDomain 11

Specific errors are:


The LSA type in ospfUserLsa is not valid The parameters in ospfUserLsa are invalid A router with this userLsaLocalId exists already in the list

ospfUserLsaGroup cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the ospfUserLsaGroup command.

A-174

Ixia Tcl Development Guide

ospfUserLsaGroup

ospfUserLsaGroup clearAllUserLsas Deletes all of the user LSAs. ospfUserLsaGroup config option value Modify the configuration options of the ospfUserLsaGroup. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for ospfUserLsaGroup. ospfUserLsaGroup delUserLsa userLsaLocalId Deletes the user LSA with an identifier of userLsaLocalId. Specific errors are:
No LSA with this userLsaLocalId exists in the list

ospfUserLsaGroup getFirstUserLsa Access the first user LSA in the list. The results may be accessed using the ospfUserLsa command. Specific errors are:
There are no routers in the list

ospfUserLsaGroup getNextUserLsa Access the next user LSA in the list. The results may be accessed using the ospfUserLsa command. Specific errors are:
ospfUserLsaGroup getFirstUserLsa hasnt been called There is no more LSAs in the list

ospfUserLsaGroup getUserLsa userLsaLocalId Accesses the LSAs entry in the list with an identifier of userLsaLocalId. The user LSA is accessed in the ospfUserLsa command. Specific errors are:
No LSA with this userLsaLocalId exists in the list

ospfUserLsaGroup setDefault Sets default values for all configuration options. ospfUserLsaGroup setInterface userLsaLocalId Sets the values for the user LSAs entry in the list with an identifier of userLsaLocalId based on changes made through the ospfUserLsa command. This command can be used to change a running configuration and must be followed by an ospfServer write command in order to send these changes to the Protocol Server. Specific errors are:
A user LSA with this ospfUserLsa does not exist in the list

EXAMPLES SEE ALSO

See examples under ospfServer ospfServer, ospfInterface, ospfRouter, ospfRouteRange, ospfUserLsa, ospfRouterLsaInterface

Ixia Tcl Development Guide

A-175

packetGroup

NAME - packetGroup
packetGroup - configure the Packet Group parameters. SYNOPSIS DESCRIPTION packetGroup sub-command options The packetGroup command is used to configure the parameters for Packet Groups. Packet groups are given unique IDs within which metrics such as minimum, maximum and average latency for every incoming frame is calculated by the hardware in real-time.

STANDARD OPTIONS
allocateUdf true / false

Assigns one of the User-Defined Fields for use with the Sequence Number. (default = true) Unique value used to identify one packet group for another. Up to 57344 different packet groups may be defined. (default = 0) The offset, within the packet, of the group id value. (default = 52) In receive mode, the signature field is not matched and all packets are counted. (default = false) Inserts a sequence signature into the packet as indicated by signatureOffset, signatureValue, groupIdOffset, signatureNumberOffset and allocateUdf. (default = false) Inserts the packet group signature into the transmitted stream. (default = false) Note: For calculating latency values need to configure stream config fir true. Defines the mechanism used to calculate latency. Possible values include:
Option cutThrough storeAndForward storeAndForwardPreamble Value 0x01 0x03 0x05 Usage (default) first data bit in to first data bit out last data bit in to first data bit out last data bit in to first preamble out

groupId

groupIdOffset ignoreSignature

true / false

insertSequence Signature true / false

insertSignature

true|false

latencyControl

preambleSize sequenceNumberOffset

Length of preamble, in bytes, of received frame. (default = 8) The offset within the packet of the sequnce number. This is valid only when sequence checking is enabled. (default = 44) In the transmitted packet, the signature uniquely signs the transmitted packet as one destined for packet group filtering on the receive port. On the receive port, the signature is used to filter only those packets that have a matching signature and the minimum, maximum and average latencies are obtained for those packets. (default = 08 71 18 05) The offset, within the packet, of the packet group signature. (default = 46)

signature

signatureOffset

A-176

Ixia Tcl Development Guide

packetGroup

COMMANDS

The packetGroup command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

packetGroup cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the packetGroup command. packetGroup config option value Modify the Packet Group configuration options of the port. If no option is specified, returns a list describing all of the available Packet Group options (see STANDARD OPTIONS) for port. packetGroup getRx chasID cardID portID Gets the current receive Packet Group configuration of the port with id portID on card cardID, chassis chasID. Call this command before calling packetGroup cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user

packetGroup getTx chasID cardID portID streamID Gets the current transmit Packet Group configuration of the stream with id portID on card cardID, chassis chasID, stream streamID. Call this command before calling packetGroup cget option value to get the value of the configuration option. specific errors are:
No connection to a chassis Invalid port number The port is being used by another user No stream has been configured for the streamID

packetGroup setDefault Sets default values for all configuration options. packetGroup setRx chasID cardID portID Sets the receive Packet Group configuration of the port with id portID on card cardID, chassis chasID by reading the configuration option values set by the packetGroup config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user

packetGroup setTx chasID cardID portID streamID Sets the transmit Packet Group configuration of the stream with id portID on card cardID, chassis chasID, stream streamID by reading the configuration option values set by the packetGroup config option value command. After calling this command, the Packet Group configuration should be committed to hardware using stream write or ixWriteConfigToHardware commands. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user No stream has been configured for the streamID

Ixia Tcl Development Guide

A-177

packetGroup

EXAMPLES

package require IxTclHal # In this example, well measure the latency for different frame sizes through # a simple switch using packet groups. # Port 1 is used to transmit three streams, each with a packet group signature # and packet group ID equal to the stream ID. 100,000 packets are transmitted # by each stream # Port 2 is used to received the data using Packet Group Mode. # A short stream is transmitted from this port to the switch in order to # get the switch to learn its MAC address # Connect to chassis and get chassis ID set host galaxy ixInitialize $host set chas [ixGetChassisID $host] # Assumes that card 1 is a 10/100 card with both ports connected to # a simple L2 switch set card 1 set txPort 1 set rxPort 2 # Useful port lists set portList [list [list $chas $card $txPort] \ [list $chas $card $rxPort]] # Test parameters # Port 1s MAC address set p1MAC [list 00 00 00 01 01 01] # Port 2s MAC address set p2MAC [list 00 00 00 01 01 02] # Number of frames to transmit set numFrames 100000 # Frame sizes set fs(1) 64 set fs(2) 1024 set fs(3) 1518 set numFrameSizes 3 # Set up Transmit Port port setFactoryDefaults $chas $card $txPort # stream: from port 1 MAC to port 2 MAC, stream size as per array # Make sure to insert time stamp (fir) set streamID 1 stream setDefault stream config -numFrames $numFrames stream config -sa $p1MAC stream config -da $p2MAC stream config -fir true stream config -dma advance stream config -framesize $fs($streamID) stream config -enableIbg false

A-178

Ixia Tcl Development Guide

packetGroup

stream config -enableIsg false stream set $chas $card $txPort $streamID # Make sure packetGroup packetGroup packetGroup packetGroup to insert a PG signature and streamID = PGID setDefault config -insertSignature true config -groupId true setTx $chas $card $txPort $streamID

# The same thing for stream 2, but with different framesize set streamID 2 stream config -framesize $fs($streamID) stream set $chas $card $txPort $streamID packetGroup setTx $chas $card $txPort $streamID # The same thing for stream 3, but with different framesize # and stop after this stream is done set streamID 3 stream config -framesize $fs($streamID) stream config -dma stopStream stream set $chas $card $txPort $streamID packetGroup setTx $chas $card $txPort $streamID # Set up Receive Port port setFactoryDefaults $chas $card $rxPort # Set up receive packet group mode (store and forward) packetGroup setDefault packetGroup config -latencyControl storeAndForward packetGroup setRx $chas $card $rxPort # and the port must be in packet group mode port config -receiveMode portPacketGroup port set $chas $card $rxPort # Set up a short burst with correct MAC addr in order to get the # switch to learn the MAC address for the receive port stream setDefault stream config -numFrames 10 stream config -sa $p2MAC stream config -da $p1MAC stream config -dma stopStream stream set $chas $card $rxPort 1 # Let the hardware know about the two ports ixWritePortsToHardware portList # Wait for changes to take affect and make sure links are up after 1000 ixCheckLinkState portList # Send the learning frames to the switch ixStartPortTransmit $chas $card $rxPort after 1000 ixCheckPortTransmitDone $chas $card $rxPort # Now for the main event - start the packet groups on the receive port # and then the transmit from the transmit port ixStartPortPacketGroups $chas $card $rxPort ixStartPortTransmit $chas $card $txPort after 1000

Ixia Tcl Development Guide

A-179

packetGroup

# and then wait for things to be done ixCheckPortTransmitDone $chas $card $txPort ixStopPortPacketGroups $chas $card $rxPort # Now get the statistics back # First a get for all of the packet groups packetGroupStats get $chas $card $rxPort 1 $numFrameSizes ixPuts FrameSz\tMinLat\tAvgLat\tMaxLat ixPuts -------\t-------\t-------\t------- # Then each individually to get the statistics for {set i 1} {$i <= 3} {incr i} \ { packetGroupStats getGroup $i ixPuts -nonewline $fs($i)\t ixPuts -nonewline [packetGroupStats cget -minLatency] ixPuts -nonewline \t ixPuts -nonewline [packetGroupStats cget -averageLatency] ixPuts -nonewline \t ixPuts [packetGroupStats cget -maxLatency] }

SEE ALSO

packetGroupStats

A-180

Ixia Tcl Development Guide

packetGroupStats

NAME - packetGroupStats
packetGroupStats - retrieve that stats associated with a packet group. SYNOPSIS DESCRIPTION packetGroupStats sub-command options The packetGroupStats command is used to retrieve the stats associated with packet groups, such as minimum latency, maximum latency and average latency.

STANDARD OPTIONS
averageLatency

Read-only. 64-bit value. Average latency for all frames of this packet group. Updated after packetGroupStats getGroup command is called. Read-only. 64-bit value. The bit rate for the frames. Note: this value is calculated on the difference between two successive readings; packetGroupStats get must be called at least twice before valid values are obtained. Read-only. 64-bit value. Transmit start time stamp. Read-only. 64-bit value. Transmition stop time stamp. Read-only. 64-bit value. Maximum latency of all frames of this packet group. Updated after packetGroupStats getGroup command is called. Read-only. 64-bit value. Minimum latency of all frames of this packet group. Updated after packetGroupStats getGroup command is called. Read-only. The total number of groups that were actually received. Read-only. 64-bit value. Total number of frames used to calculate the statistics for this packet group. The packetGroupStats command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

bitRate

firstTimeStamp lastTimeStamp maxLatency

minLatency

numGroups totalFrames

COMMANDS

packetGroupStats cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the packetGroupStats command. packetGroupStats get chasID cardID portID fromGroupID toGroupID Gets the current Packet Group statistics on the port with id portID on card cardID, chassis chasID. Call this command before calling packetGroupStats getGroup groupId and packetGroupStats cget option value to get the value of the configuration option. fromGroupID and toGroupID are optional. Specific errors are:
No connection to a chassis Invalid port number The fromGroupID or toGroupID is invalid

Ixia Tcl Development Guide

A-181

packetGroupStats

Network error between the client and the chassis Either group ID is outside the range 0 through 57343

packetGroupStats getGroup groupID Gets the Packet Group statistics for this groupID. Before calling this command, packet group statistics must be retrieved using the packetGroupStats get chasID cardID portID command. Call this command before calling packetGroupStats cget option value to get the value of the configuration option. Specific errors are:
No packet groups are defined The groupIndex packet group does not exist Either group ID is outside the range 0 through 57343

packetGroupStats setDefault Zeros all local stats in the packet group stat list. EXAMPLES SEE ALSO See examples under portGroup. portGroup, stream

A-182

Ixia Tcl Development Guide

port

NAME - port
port - configure a port of a card on a chassis. SYNOPSIS DESCRIPTION port sub-command options The port command is used to configure the properties of a port of a card on a chassis.

STANDARD OPTIONS
advertise1000FullDuple x true/false advertise100FullDuplex

If set to true, this port will advertise itself at 1000 Mbps and Full duplex mode (applicable to gigabit ports only). (default = false) If set to true, this port will advertise itself at 100 Mbps and Full duplex mode (applicable to 10/100 port only). (default = true) If set to true, this port will advertise itself at 100 Mbps and Half duplex mode (applicable to 10/100 port only). (default = true) If set to true, this port will advertise itself at 10 Mbps and Full duplex mode (applicable to 10/100 port only). (default = true) If set to true, this port will advertise itself at 10 Mbps and Half duplex mode (applicable to 10/100 port only). (default = true) Sets up the auto-negotiation parameters for gigabit (applicable to Gigabit only). The value of flowControl must be true for this field to have an effect. The options are:
Option portAdvertiseNone portAdvertiseSend portAdvertiseSendAndReceive Value 0 1 2 Usage (default) Do not advertise flow control abilities Send only (asymmetric to link partner) Send and receive (symmetric to link partner) Send and/or receive (both symmetric or asymmetric to link partner)

true/false

advertise100Half Duplex true/false advertise10FullDuplex

true/false true/false

advertise10HalfDuplex

advertiseAbilities

portAdvertiseSendAndOrReceive 3

autonegotiate

true/false

Sets/unsets auto-negotiate mode on a 10/100 port. (default = false) The MAC address of the DUT port to which the Ixia source port is connected. Used for running IP tests. Entered in form {01 02 03 04 05 06}. (default = 00 de bb 00 00 00) NOTE: This value is not written in HAL or hardware. It is merely stored in TclHal so that it can be accessed at any time. The MAC addresses should be set with the stream command.

DestMacAddress

Ixia Tcl Development Guide

A-183

port

directedAddress

This is the address that port will listen on for a directed pause message. (default = 01 80 C2 00 00 01) Set the duplex mode to half duplex or full duplex on a 10/100 port. (applicable to 10/100 only) (default = full) If set to true, then as the port configuration is written to hardware auto negotiation will begin. (applicable to MII only) (default = false) If set to true, the PHY will be continuously polled during Mii setup operation. (default = true) Sets/unsets flow control on a port. (default = false) Read-only. FPGA version of the gigabit port. (applicable to Gigabit only) Ignores the link on Gigabit port if set to true. (applicable to Gigabit only) (default = false) Read-only. The following states can be read from the port:
Option linkDown Value 0 Usage The link on the port is down. This may be because there is no cable connected to the port or the link on the destination port may be down. The LED on the card is off when the link is down. the link is up indicated by green LED on the card. the port has been set to loopback mode. The LED on the card is off in this mode. the link is in this state when the configuration of 10/ 100 port is being written to hardware (applicable to 10/100 only) restarts the auto-negotiation process the link is in currently executing the auto-negotiation process failed to write into memory for 10/100 ports (applicable to 10/100 only) No external transceiver detected on Ixia Mii or Rmii port. No PHY detected at the selected address. Auto negotiation state in negotiation process. This is an intermediate state and should be used for informational purposes only. Auto negotiation state in negotiation process. No link partner was found. This is an intermediate state and should be used for informational purposes only Auto negotiation state in negotiation process. This is an intermediate state and should be used for informational purposes only. Fpga download failure. Port will not be usable. No GBIC module detected on Ixia Gbic port. State in board initialization process. This is an intermediate state used for informational purposes only.

duplex half/full

enableManualAuto Negotiate true/false enablePhyPolling

true/false

flowControl true/false gigVersion ignoreLink true/false

linkState

linkUp linkLoopback miiWrite

1 2 3

restartAuto autoNegotiating miiFail noTransceiver invalidAddress readLinkPartner

4 5 6 7 8 9

noLinkPartner

10

restartAutoEnd

11

fpgaDownloadFail noGbicModule fifoReset

12 13 14

A-184

Ixia Tcl Development Guide

port

Option fifoResetComplete

Value 15

Usage State in board initialization process. This is an intermediate state and used for informational purposes only. PPP is disabled. PPP control packets will be ignored; PPP link negotiation will not be performed. Does not mean the link is unusable; it may, for instance, be configured for Cisco/HDLC and traffic (non-PPP) may still flow. The fully operational state when PPP is enabled. PPP link negotiation has successfully completed and the link is available for normal data traffic. The non-operational state when PPP is enabled. PPP link negotiation has failed or the link has been administratively disabled. PPP link negotiation state. This is an intermediate state and should be used for informational purposes only. Initialization state at the start of the negotiation process. PPP link negotiation state: Waiting for indication from PPP controller that auto negotiation and related PPP control packet transfers can proceed. This is an intermediate state and should be used for informational purposes only. PPP link negotiation state: In process of exchanging PPP control packets (e.g., LCP and IPCP) to negotiate link parameters. This is an intermediate state and should be used for informational purposes only. PPP link negotiation state: The PPP session has been terminated. All data traffic will stop. PPP link negotiation state: Negotiation has successfully completed; the peers are logically connected. Normal data traffic may flow once the pppUp state is reached. This is an intermediate state and should be used for informational purposes only. Physical link is down. (e.g., loss of signal, loss of frame) Physical link is down. (e.g., loss of signal, loss of frame) PPP link negotiation state: Physical link has gone down and PPP negotiation has been stopped. Communication with the local processor has failed. Check Server display and log for possible failure. PPP link negotiation state, following explicit request to restart negotiation process: this state indicates response to request.This is an intermediate state and should be used for informational purposes only. PPP link negotiation state, following explicit request to restart negotiation process: the link has or will be brought down in order to begin a new negotiation cycle. This is an intermediate state and should be used for informational purposes only.

pppOff

16

pppUp

17

pppDown

18

pppInit

19

pppWaitForOpen

20

pppAutoNegotiate

21

pppClose pppConnect

22 23

lossOfFrame lossOfSignal lossOfFramePpp Disabled stateMachineFailure pppRestartNegotiation

24 25 26 27 28

pppRestartInit

29

Ixia Tcl Development Guide

A-185

port

Option pppRestartWaitFor Open

Value 30

Usage PPP link negotiation state, following explicit request to restart negotiation process: Waiting for indication from PPP controller that current connection is already down or is in process of being shut down. This is an intermediate state and should be used for informational purposes only. PPP link negotiation state, following explicit request to restart negotiation process: Waiting for indication from PPP controller that shut down of current connection has completed.This is an intermediate state and should be used for informational purposes only. PPP link negotiation state, following explicit request to restart negotiation process: Preparation for restart completed; ready to begin normal cycle again. This is an intermediate state and should be used for informational purposes only. local processor boot failure Link has been forced up. An over-temperature condition has occurred. PPP negotiation is closing. PPP LCP negotiation in process. PPP authentication in process. PPP NCP negotiation in process. Server is in demo mode.

pppRestartWaitFor Close

31

pppRestartFinish

32

localProcessorDown forceLinkUp temperatureAlarm pppClosing pppLcpNegotiate pppAuthenticate pppNcpNegotiate demoMode

33 34 35 36 37 38 39 40

loopback true/false MacAddress

Sets/unsets loopback mode on a port. (default = false) Assigns a Source MAC address to the port. MAC address is entered in form {01 02 03 04 05 06}. (default = 00 de bb 00 01 01) NOTE: This value is not written in HAL or hardware. It is merely stored in TclHal so that it can be accessed at any time. The MAC addresses should be set with the stream command.

masterSlave

Only apply to GIG MII. If negotiateMsterSlave is false, then the masterSlave is essentially read-only. Options include:
Option portMaster portSlave Value 0 1 (default) Usage

multicastPauseAddress

This is the address that the port will listen on for a multicast pause message. (default = 01 80 C2 00 00 01) The given name of the port. (default = ) Only apply to Gigabit MII. Enable negotiateMasterSlave. (default = false) Number of source MAC addresses assigned to this port. (default = 1) NOTE: This value is not written in HAL or hardware. It is merely stored in TclHal so that it can be accessed at any time.

name negotiateMasterSlave

true/false

numAddresses

A-186

Ixia Tcl Development Guide

port

owner packetFlowFileName

Read-only. Name of the owner of this port, if any. (default = ) Sets the packet flow file name. To set the packet flow file name, need to enable usePacketFlowImage File first. (default = ) If the card on which the port appears is a USB/Ethernet type card, then this indicates the curent mode of the port. (default = 0) One of:
Option portEthernetFraming portUsbEthernet Value 1 20 Usage indicates Ethernet mode on the port. indicates USB mode on the port.

portMode

If the card on which the port appears is a OC192/10Gig type card, then this indicates the current mode of the the port. One of:
Option portPosFraming portEthernetFraming Value 0 1 Usage indicates OC192 POS operation on the port. indicates 10Gig Ethernet operation on the port.

Note that port setFactoryDefault will not reset the port mode associated with OC192/10Gig type cards.
rateMode

The rate may be entered in one of the following modes. NOTE: This value is not written in HAL or hardware. It is merely stored in TclHal so that it can be accessed at any time.
Option useGap usePercentRate Value 0 1 Usage (default) the rate is entered in clock ticks used to calculate the inter-frame gap the rate is entered as a percentage of maximum rate

receiveMode

Sets up the type of capture/receive mode for this port. NOTE: The receive modes are andd and ord to determine which fpga is required for what interface. Options include:
Option portCapture portPacketGroup portRxTcpSessions portRxTcpRoundTrip portRxDataIntegrity portRxFirstTimeStamp portRxSequenceChecking portRxModeBert Value 1 2 4 8 16 32 64 128 Usage (default) use normal capture buffer get real time latency on received packets use TCP session do TCP Round trip do data integrity get the first receive time do sequence checking Bit Error Rate testing mode

rxFpgaVersion

Read-only. FPGA version of the receive engine of the 10/100 port. (applicable to 10/100 only)

Ixia Tcl Development Guide

A-187

port

rxTxMode

Sets one of following modes on a Gigabit port


Option gigNormal gigLoopback gigCableDisconnect Value 0 1 2 Usage (default) The Gigabit port runs as full duplex. The Gigabit port transmits and receives frames in internal loopback. simulate cable disconnect on the port

speed 10|100

Set the line speed to 10 Mbps or 100 Mbps on a 10/100 port. Speed cannot be set on a Gigabit port. (default =100) Enables the gigabit auto-negotiation timeout. (applicable to Gigabit only) (default = true) Sets the type of stream/transmit mode for this port. Options include:
Option portTxPacketStreams portTxPacketFlows Value 0 1 Usage (default) set up hardware to use normal streams set up hardware to use packet flows set up hardware to use the advanced scheduler set up the hardware to use Bit Error Rate patterns

timeoutEnable

true / false

transmitMode

portTxModeAdvancedScheduler 4 portTxModeBert 5

txFpgaVersion

Read-only. FPGA version of the transmit engine of the 10/100 port. (applicable to 10/100 only) Read-only. Specifies the type of the Ixia port. Valid port types include:
Option port10100BaseTX port10100BaseMII port100BaseFXMultiMode port100BaseFXSingleMode portGigabitSXMultiMode portGigabitLXSingleMode portReducedMII portGbic portPacketOverSonet port10100Level3 portGigabitLevel3 portGbicLevel3 portGigCopper portPosOc48 portPosOc48Level3 portPosOc192 portPosOc192Level3 portUsbUsb Value 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Usage

type

A-188

Ixia Tcl Development Guide

port

Option portGigaCopperGMii portUsbEthernet portPosOc192Fob2 portPosOc192Fob1 portPosOc192Plm2 portPosOc192Plm1 portPosOc3 portGigCopperTripleSpeed portGigSingleMode portOc48Bert portOc48PosAndBert port10GigWanPlm2 port10GigWanPlm1 port10GigLanXgmiiPlm1 port10GigLanXuaiPlm1 port10GigLanXsbiPlm1 port10100UsbSh4 port10100Sh4 portLffCarrier1 portLffCarrier1 portLff10100Dpm port10100Dpm

Value 19 20 21 22 23 24 26 28 29 32 33 36 37 41 45 53 55 57 60 61 62 63

Usage

portPosOc48VariableClocking 27

typeName usePacketFlowImage File enable/disable

Read only. The name equivalent of the type field. Enable the Packet Flow Image File. (default = disable)

DEPRECATED STANDARD OPTIONS


useRecoveredClock

true/false

Set the sonet framer to use the recovered clock. (applicable to POS/sonet only) (default =false) The port command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

COMMANDS

port canUse chasID cardID portID If the port is owned by the current logged in user, canUse will return true, otherwise it will return false. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user

Ixia Tcl Development Guide

A-189

port

port cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the port command. port config option value Modify the configuration options of the port. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for port. port export fileName chasID cardID portID Exports the current configuration of the port at portID, cardID, chasID into the file named fileName. The file produced by this command may be used by the import sub-command. Specific errors are:
No connection to a chassis Invalid port

port get chasID cardID portID Gets the current configuration of the port with id portID on card cardID, chassis chasID from its hardware. Call this command before calling port cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

port getId chasID cardID portID Gets the name of the port as a string of format <chassis>.<card>.<port> <portname> or <chassis>.<card>.<port> if the port has no name. For example, 1.2.3 router1. port getInterface chasID cardID portID Gets the interface type of the port. This command returns one of the following values:
Option interfaceUnknown interface10100 interfaceGigabit interfacePacketOverSonet interfaceOc48 interfaceOc192 interfaceUSB interface10100Gigabit Value 0 1 2 3 4 5 6 7 for OC3 and OC12 Usage

port import fileName chasID cardID portID Imports a saved port configuration found in the file fileName into the current configuration of the port at portID, cardID, chassis chasID. The file used by this command must have been produced by the export sub-command. A port write is necessary to commit these items to the hardware. Specific errors are:
No connection to a chassis Invalid port The card is owned by another user

A-190

Ixia Tcl Development Guide

port

fileName does not exist

port isActiveFeature chasID cardID portID feature Determines whether a specific feature is available for the port at portID, cardID, chassis chasID and that the port is properly configured to use that feature. A value of true (1) is returned if the feature is active and false (0) if the feature is in active or the port is invalid. Feature may be one of the following values:

portFeatureRxPacketGroups portFeatureRxDataIntegrity

3 5

supports packet group mode as described in Packet Group Operation on page 3-11. supports received data integrity checking as described in Data Integrity Checking Operation on page 3-13. supports receive round trip flow mode as described in Round Trip TCP Flows on page 3-14. supports packet over sonet operation as described in PPP Protocol Negotiation on page 3-32. supports bit error rate testing as described in Bit Error Rate Testing (BERT) on page 3-44. supports 10 Gbps Wide Area Network operation. support Bert error generation

portFeatureRxRoundTripFlows

portFeaturePos

13

portFeatureBert

14

portFeature10GigWan

15

portFeatureBertErrorGeneration 26

port isValidFeature chasID cardID portID feature Determines whether a specific feature is available for the port at portID, cardID, chassis chasID. A value of true (1) is returned if the feature is valid and false (0) if the feature is in valid or the port is invalid. Feature may be one of the following values:

0 portFeatureQos portFeaturePacketFlows portFeatureUdfOddOffset portFeatureRxPacketGroups portFeatureRxSequenceChecking portFeatureRxDataIntegrity 1 2 3 4 5

Invalid feature QoS statistics available. supports packet flow mode as described in Streams and Flows on page 3-4. UDFs can occur at odd byte offsets. supports packet group mode as described in Packet Group Operation on page 3-11. supports receive sequence checking as described in Sequence Checking Operation on page 3-13. supports received data integrity checking as described in Data Integrity Checking Operation on page 3-13. supports receive round trip flow mode as described in Round Trip TCP Flows on page 3-14. Reserved for future usage.

portFeatureRxRoundTripFlows

portFeatureGigGMiiAutoDisable 8

Ixia Tcl Development Guide

A-191

port

portFeatureMultipleDLCIs portFeatureForcedCollisions portFeatureTxDataIntegrity

9 10 11

supports ability to generate multiple DLCIs per port on frame relay connections supports forced collisions as described in Forced Collision Operation on page 3-10. supports transmitted data integrity as described in Sequence Checking Operation on page 3-13. supports packet flow mode with image files as described in the port command (this one). supports the spatial reuse protocol as described in Sequence Checking Operation on page 3-13. supports packet over sonet operation as described in PPP Protocol Negotiation on page 3-32. supports bit error rate testing as described in Bit Error Rate Testing (BERT) on page 3-44. supports 10 Gbps Wide Area Network operation. supports 10 Gbps Wide Area Network, OC192 and BERT supports 10 Gbps Wide Area Network and OC192 supports 10 Gbps Wide Area Network and Bert supports OC 192 and Bert supports OC192 Bert only multiple UDFs may start adjacent to each other, regardless of word boundaries supports cascading of user defined fields as described in Frame Data on page 3-7. Sequence checking of packets with identical PGIDs is allowed supports packet streams as described in Streams and Flows on page 3-4. supports advanced stream schedule operation as described in Streams and Flows on page 3-4. supports operation of the protocol server as described in Protocol Server on page 315. supports ARP operation. supports ping operation. a bit mask may be used on UDF values without restriction; some boards require that bits in the mask be contiguous supports insertion of sonet errors support Bert error generation

portFeaturePacketFlowImage File portFeatureSrp

12

13

portFeaturePos

14

portFeatureBert

15

portFeature10GigWan

16

portFeature10GigWanAndOc192 17 AndBert portFeature10GigWanAndOc192 18 portFeature10GigWanAndBert portFeatureOc192AndBert portFeatureOC192Bert portFeatureUdfOverlap portFeatureUdfCascade portFeatureRxSequence CheckingPerPGID portFeaturePacketStreams 19 20 21 22 23 24 25

portFeatureAdvancedScheduler 26

portFeatureProtocols

27

portFeatureProtocolARP portFeatureProtocolPING portFeatureBitMask

28 29 30

portFeatureSonetErrorInsertion List

31

portFeatureBertErrorGeneration 34

A-192

Ixia Tcl Development Guide

port

portFeatureLocalCPU portFeatureIxRouter portFeatureIxWeb portFeature10GigLan portFeatureVsr portFeatureSplitUdfs portFeatureTxDuration portFeatureRxTcpSessions portFeatureRxFirstTimeStamp portFeatureRxStreamTrigger portFeatureRxChecksumErrors portFeatureOddPreamble

35 36 37 38 39 40 41 42 43 44 45 46

supports a local CPU can run a copy of IxRouter - used in IxWeb and other TCP level testing can be used in IxWeb supports 10 gigabit ethernet LAN operation supports OC192 VSR operation UDFs may be split in combinations of 8, 16 and 32 bit counters supports the Transmit duration statistic supports TCP sessions supports First TIme Stamp operation supports stream trigger operation supports receive checksum operation supports an odd number of bytes in the preamble supports different units of time in the packet gap specification (gapUnit in stream). supports the advanced routing protocols

portFeaturePacketGapTimeUnits 47 portFeatureRoutingProtocols 48

port reset chasID cardID portID Removes all the streams on a port. Note: In order port reset to take effect, stream write or ixWriteConfigToHardware commands should be used to commit the changes to hardware. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user

port restartAutoNegotiation chasID cardID portID Causes auto-negotiation of duplex and speed to be restarted on the indicated port. port set chasID cardID portID Sets the configuration of the port in IxHAL with id portID on card cardID, chassis chasID by reading the configuration option values set by the port config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port Insufficient memory to add data

port setDefault Sets default values for all configuration options. port setFactoryDefaults chasID cardID portID Sets the factory defaults to the port. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user

Ixia Tcl Development Guide

A-193

port

port setparm chasID cardID portID Modify the configuration options of the port on a specific card and chassis. It is similar to the port config option value command but allows a single option to be set in IxTclHAL on a particular port. NOTE: This command is being phased out. Please use port set command instead. port setReceiveMode receiveMode chasID cardID portID Sets the receive mode on the port. See the description for receiveMode in the STANDARD OPTIONS section of this command for the values of receiveMode. Return codes are:
Code 0 200 101 100 Usage (TCL_OK) The command succeeded and a write to hardware is needed, either with port write or ixWritePortsToHardware. (ixTcl_noWriteRequired) No write is needed to set the mode, because the port is already in that mode. (ixTcl_unsupportedFeature) This port type will not support the requested receive mode. (ixTcl_notAvail) This port is owned by another user.

port setTransmitMode transmitMode chasID cardID portID Sets the transmission mode on the port. See the description for transmitMode in the STANDARD OPTIONS section of this command for the values of transmitMode. See the return codes in port setReceivedMode. port write chasID cardID portID Writes or commits the changes in IxHAL to hardware for each port with id portID on card cardID, chassis chasID. Before using this command, use the port set command to configure the port related parameters (speed, duplex mode, autonegotiation, flow control, loopback, rxTxMode, and ignoreLink) in IxHAL. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user Network error between the client and chassis

DEPRECATED COMMANDS port writeReceiveMode chasID cardID portID Sets up the hardware to capture or packet group modes for this port. NOTE: OBSOLETE. This command is the same as write. port writeTransmitMode chasID cardID portID Sets up the hardware to packet streams or packet flow mode for this port. NOTE: OBSOLETE. This command is the same as write.

A-194

Ixia Tcl Development Guide

port

EXAMPLES

package require IxTclHal # Connect to chassis and get chassis ID set host localhost ixInitialize $host set chas [ixGetChassisID $host]

# Define all of the features by number and name set pfValid [list \ $::portFeatureQos Qos \ $::portFeaturePacketFlows Packet Flows \ $::portFeatureUdfOddOffset UDF odd offset \ $::portFeatureRxPacketGroups Rx packet groups \ $::portFeatureRxSequenceChecking Rx sequence checking \ $::portFeatureRxDataIntegrity Rx data integrity \ $::portFeatureRxRoundTripFlows Rx round trip flows \ $::portFeatureGigGMiiAutoDisable Gig GMII auto disable \ $::portFeatureMultipleDLCIs Multiple DLCIs \ $::portFeatureForcedCollisions Forced Collisions \ $::portFeatureTxDataIntegrity Tx Data Integrity \ $::portFeaturePacketFlowImageFile Packet flow image file \ $::portFeatureSrp Spacial reuse protocol \ $::portFeaturePos POS \ $::portFeatureBert Bert \ $::portFeature10GigWan 10 Gigabit WAN \ $::portFeatureUdfOverlap UDF Overlap \ $::portFeatureUdfCascade UDF Cascade \ $::portFeatureRxSequenceCheckingPerPGID Rx Seq Checking per PGID \ $::portFeaturePacketStreams Packet Streams \ $::portFeatureAdvancedScheduler Advanced Scheduler \ $::portFeatureProtocols Protocols \ $::portFeatureProtocolARP Protocol: ARP \ $::portFeatureProtocolPING Protocol: PING \ $::portFeatureBitMask Bit Mask \ $::portFeatureSonetErrorInsertionList Sonet error insertion list \ $::portFeatureBertErrorGeneration BERT error generation \ ] # Define all of the features by number and name set pfActive [list \ $::portFeatureRxPacketGroups Rx packet groups \ $::portFeatureRxDataIntegrity Rx data integrity \ $::portFeatureRxRoundTripFlows Rx round trip flows \ $::portFeaturePos POS \ $::portFeatureBert Bert \ $::portFeature10GigWan 10 Gigabit WAN \ $::portFeatureBertErrorGeneration BERT error generation \ ] # printOptions - get standard options for a port and print them proc printOptions {chas card port} \

Ixia Tcl Development Guide

A-195

port

{ port get $chas $card $port set portType [port cget -type] set portName [port cget -typeName] set name [port cget -name] set owner [port cget -owner] set linkState [port cget -linkState] set rateMode [port cget -rateMode] set loopback [port cget -loopback] set flowControl [port cget -flowControl] set portMode [port cget -portMode] ixPuts Port: $name, type $portName ($portType) ixPuts \towner $owner, linkState $linkState, rateMode $rateMode ixPuts \tloopback $loopback, flowControl $flowControl, portMode $portMode } # Print the values of all of the valid features proc printValid {chas card port} \ { global pfValid; array set portValidFeatures $pfValid foreach i [lsort -integer [array names portValidFeatures]] \ { if {[port isValidFeature $chas $card $port $i] == 0} \ { ixPuts -nonewline No } \ else \ { ixPuts -nonewline Yes } ixPuts $portValidFeatures($i) } } # Print the values of all of the active features proc printActive {chas card port} \ { global pfActive; array set portActiveFeatures $pfActive; foreach i [lsort -integer [array names portActiveFeatures]] \ { if {[port isActiveFeature $chas $card $port $i] == 0} \ { ixPuts -nonewline No } \ else \ { ixPuts -nonewline Yes } ixPuts $portActiveFeatures($i) } } # Get the chassis number of cards chassis getFromID $chas set ncards [chassis cget -maxCardCount] ixPuts Chassis $chas, $ncards cards

A-196

Ixia Tcl Development Guide

port

# Go through each of the ports for {set i 1} {$i <= $ncards} {incr i} \ { # Check for missing card if {[card get $chas $i] != 0} \ { continue } ixPuts \n----------------------------------------------------------- set portList [list [list $chas $i 1]] # Get the ports options port get $chas $i 1 # Get the type of the card as a number and name set portType [port cget -type] set portName [port cget -typeName] set cardType [card cget -type] ixPuts Type $portName ($portType) -- card $i (type $cardType) # Set the port to its defaults port setDefault # If its a BERT module, need to set the transmit and receive modes to BERT if {$portType == $::portOc48Bert} \ { port config -transmitMode portTxModeBert port config -receiveMode portRxModeBert } # Give the port a name port config -name $i:1 # Set the features to ixTclHal set result [port set $chas $i 1] # Check for valid result if {$result != 0} \ { ixPuts Set returns $result continue } # Write the features to the hardware ixWriteConfigToHardware portList # Print the standard options for the card printOptions $chas $i 1 # Print the valid features for the card ixPuts \nValid Features for Port ixPuts ----------------------- printValid $chas $i 1 # Set some values for the 10/100 cards: # Rx:capture, Tx:packet flows w/ image file # Autonegotiate 100 Half or 100 Full duples if {$portType == $::port10100BaseTX} \ { port config -receiveMode portCapture port config -transmitMode portTxPacketFlows port config -usePacketFlowImageFile 1

Ixia Tcl Development Guide

A-197

port

port port port port port port port }

config config config config config config config

-packetFlowFileName flow10100.txt -autonegotiate true -advertise10HalfDuplex false -advertise10FullDuplex false -advertise100HalfDuplex true -advertise100FullDuplex true -speed 100

# Set some values for OC48c POS cards if {$portType == $::portPacketOverSonet} \ { port config -transmitMode portTxModeAdvancedScheduler port config -receiveMode portPacketGroup } # Set the values port set $chas $i 1 ixWriteConfigToHardware portList # Check on what features are active now ixPuts \nActive Features for Port ixPuts ------------------------ printActive $chas $i 1

SEE ALSO

card, filter, filterPallette, portGroup, stream, packetGroup

A-198

Ixia Tcl Development Guide

portGroup

NAME - portGroup
portGroup - sets up a group of ports. SYNOPSIS DESCRIPTION portGroup sub-command options This command allows the user to set up an autonomous group of ports on which to perform an action or command, such as take ownership, start transmit, capture, or clearing statistics, to name a few. A port group must be created and the desired ports (or port) added to it in order to execute the selected action or command. When the port group is no longer needed, it should be destroyed.

STANDARD OPTIONS
lastTimeStamp

Read-only. 64-bit value. The relative time of transmit for all the ports in the port group. The portGroup command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

COMMANDS

portGroup add groupID chasID cardID portID Adds this port to a group with ID groupID. Specific errors are:
No connection to a chassis The groupID port group does not exist

portGroup canUse groupID Verifies whether all the ports in this group can be used by the current logged in user. Specific errors are:
No connection to a chassis The groupID port group does not exist

portGroup cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the portGroup command. portGroup config option value Modify the configuration options of all the ports. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for portGroup. (There are currently no configurable options for portGroup and therefore no use for this command). portGroup create groupID Creates a port group and assigns it the ID groupID. Specific errors are:
The groupID port group already exists

portGroup del groupID chasID cardID portID Deletes this port from the group with ID groupID. Specific errors are:

Ixia Tcl Development Guide

A-199

portGroup

No connection to a chassis The groupID port group does not exist

portGroup destroy groupID Destroys the port group with ID groupID. Specific errors are:
The groupID port group does not exist

portGroup get groupID objectID Gets the type of object designated by objectID for a list of ports. The only defined value for objectID is usbConfig (0), which must be applied to USB configured ports. Specific errors are:
Invalid objectID The groupID port group does not exist

portGroup setCommand groupID cmd Performs the action or command cmd specified on all ports in the group with ID groupID. cmd may be one of the following:
Option startTransmit stopTransmit startCapture stopCapture resetStatistics pauseTransmit stepTransmit transmitPing asr5Transmit clearTimeStamp restartAutoNegotiate downloadFPGA collisionStart collisionStop transmitArpRequest startLatency Value 7 8 9 10 13 15 16 17 18 19 22 27 28 29 30 31 Usage start transmission on all ports in the portGroup simultaneously stop transmission on all ports in the portGroup simultaneously start capturing packets that meet the specified filter criteria stop capturing on all ports in the portGroup simultaneously clear all statistic counters pause transmission single step the transmit one packet at a time transmit a ping on all of the ports in the port group not yet implemented clear all time stamps in order to synchronize the time stamps throughout the chassis chain. restarts autonegotiation downloads a new FPGA to the ports in the port group start collision generation stop collision generation sends ARP requests as configured in arpServer and ipAddressTable commands. starts real-time latency analysis and collects minimum, maximum and average latency values for every incoming frame in a packet group stops real-time latency analysis clears all real-time latency values if available, take ownership of these ports forcefully take ownership of these ports overriding the current owners rights clear ownership of owned ports

stopLatency clearLatency takeOwnership takeOwnershipForced clearOwnership

32 33 40 41 42

A-200

Ixia Tcl Development Guide

portGroup

Option clearOwnershipForced

Value 43

Usage forcefully clear ownership of ports overriding the current owners rights start transmit on all ports in the portGroup in sequence transmit IGMP join messages on all ports in the portGroup transmit IGMP join messages on all ports in the portGroup resets the sequence number used in sequence number checking operations for all ports in the portGroup start BGP operations on all ports in the portGroup stop BGP operations on all ports in the portGroup start OSPF operations on all ports in the portGroup stop OSPF operations on all ports in the portGroup start ISIS operations on all ports in the portGroup stop ISIS operations on all ports in the portGroup start RSVP operations on all ports in the portGroup stop RSVP operations on all ports in the portGroup start RIP operations on all ports in the portGroup stop RIP operations on all ports in the portGroup

staggeredStartTransmit 52 transmitIgmpJoin transmitIgmpLeave resetSequenceIndex startBgp4 stopBgp4 startOspf stopOspf startIsis stopIsis startRsvp stopRsvp startRip stopRip 54 55 62 63 64 65 66 76 77 82 83 89 90

Specific errors are:


No connection to a chassis One or more ports in the port group are being used by another user One or more ports in the port group are invalid Network error between the client and chassis

portGroup setDefault Sets default values for all configuration options. portGroup write groupID Commits port properties information such as speed, duplex mode, and autonegotiation in hardware. Specific errors are:
No connection to a chassis The port group specified by groupID hasnt been created One or more ports in the port group are being used by another user Network error between the client and chassis

portGroup writeConfig groupID Configures streams, filter and capture parameters of all ports in the group except the port properties such as speed, duplex mode, and autonegotiation. Specific errors are:
No connection to a chassis The port group specified by groupID hasnt been created One or more ports in the port group are being used by another user Network error between the client and chassis

Ixia Tcl Development Guide

A-201

portGroup

EXAMPLES

package require IxTclHal # Connect to chassis and get chassis ID set host galaxy ixInitialize $host set chas [ixGetChassisID $host] # Assume that theres a four port 10/100 TX card in this slot # with port 1 looped to port 2 and 3 to 4 set card 1 # Port group to be used set group 1234 set txGroup 13 set rxGroup 24 portGroup portGroup portGroup portGroup portGroup create $group add $group $chas add $group $chas add $group $chas add $group $chas

$card $card $card $card

1 2 3 4

portGroup create $txGroup portGroup add $txGroup $chas $card 1 portGroup add $txGroup $chas $card 3 portGroup create $rxGroup portGroup add $rxGroup $chas $card 2 portGroup add $rxGroup $chas $card 4 ixLogin tester if {[portGroup canUse $group] != 0} \ { ixPuts Cant use card $card ports 1-4 break } portGroup setCommand $group takeOwnership # ... insert port setup here. This example assumes the defaults portGroup write $group portGroup setCommand $rxGroup resetStatistics portGroup setCommand $rxGroup startCapture portGroup setCommand $txGroup startTransmit after 5000 portGroup setCommand $txGroup stopTransmit portGroup setCommand $rxGroup stopCapture portGroup portGroup portGroup portGroup ixLogout setCommand $group clearOwnership destroy $group destroy $rxGroup destroy $txGroup

SEE ALSO

port

A-202

Ixia Tcl Development Guide

ppp

NAME - ppp
ppp - configure Point-To-Point Protocol parameters SYNOPSIS DESCRIPTION ppp sub-command options This command is used to configure PPP parameters on OC-3 and OC-12 interfaces for Packet over Sonet ports.

STANDARD OPTIONS
activeNegotiation

true/false

Activate Negotiation process. (default = true) Maximum number of configuration requests to send before starting termination process. (default = 9) Enable PPP negotiations. (default = disable) Enables ACCM (Asynchronous Control Character Mask). (default = disable) Enables the IP Network Control protocol. The ports desired IP address is held in the localIPAddress option. (default = enable) Enables the LQM (Line Quality Monitoring Protocol). The LQM reporting interval is controlled by the lqmReportInterval option. (default = disable) Enables the MPLS Network Control protocol. (default = enable) Enables the OSI Network Control protocol. The ports desired transmitted and received alignments are held in the rxAlignment and txAlignment options. (default = enable) Local ports IP address. (default = 0.0.0.1) The desired LQM report interval, expressed in seconds. (default = 10) Time, in seconds, to wait between configuration and termination retries. (default = 3) The desired OSI receive byte alignment (within a 4-byte word), expressed as a byte position from 0 to 3. (default = 0) Maximum frame size in receive direction. (default = 65535) Maximum number of termination requests to send before bringing PPP down. (default = 3) The desired OSI transmit byte alignment (within a 4-byte word), expressed as a byte position from 0 to 3. (default = 0)

configurationRetries

enable enable/disable enableAccmNegotiation

enable/disable
enableIp

enable/disable
enableLqm

enable/disable
enableMpls enableOsi

enable/disable enable/disable

localIPAddress lqmReportInterval retryTimeout

rxAlignment

rxMaxReceiveUnit terminationRetries

txAlignment

Ixia Tcl Development Guide

A-203

ppp

txMaxReceiveUnit useMagicNumber

Maximum frame size in transmit direction. (default = 65535) Enable negotiation and use of magic number; used to detect looped back connection. (default = false) The ppp command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

true/false

COMMANDS ppp cget option

Returns the current value of the configuration option given by option. Option may have any of the values accepted by the ppp command. ppp config option value Modify the PPP configuration options of the port. If no option is specified, returns a list describing all of the available PPP options (see STANDARD OPTIONS) for port. ppp get chasID cardID portID Gets the current configuration of the PPP parameters on port with id portID on card cardID, chassis chasID. from its hardware. Call this command before calling ppp cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number The port is not a Packet over Sonet port.

ppp set chasID cardID portID Sets the configuration of the PPP parameters in IxHAL on port with id portID on card cardID, chassis chasID by reading the configuration option values set by the ppp config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port The port is not a Packet over Sonet port.

ppp setDefault Sets default values for all configuration options. ppp write chasID cardID portID Writes the ppp config to the ppp state machine and restarts ppp autonegotiation. Writes or commits the changes in IxHAL to hardware for each port with id portID on card cardID, chassis chasID. Before using this command, use the ppp set command to configure the port related parameters in IxHAL. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port Network error between the client and chassis The port is not a Packet over Sonet port

A-204

Ixia Tcl Development Guide

ppp

EXAMPLES

package require IxTclHal # Procedure to get and print the status of a POS port proc getState {chas card port} \ { # Get all of the status information pppStatus get $chas $card $port # IP related information set ipState [pppStatus cget -ipState] set ipAddr [pppStatus cget -localIPAddress] set ipPeerAddr [pppStatus cget -peerIPAddress] # LQM State information set lqmState [pppStatus cget -lqmQualityState] set lqmRxInterval [pppStatus cget -lqmReportIntervalRx] set lqmTxInterval [pppStatus cget -lqmReportIntervalTx] # MPLS state set mplsState

[pppStatus cget -mplsState]

# OSI information set osiState [pppStatus cget -osiState] set rxAlignment [pppStatus cget -rxAlignment] set txAlignment [pppStatus cget -txAlignment] # Magic numbers set magicRxState set magicTxState

[pppStatus cget -useMagicNumberRx] [pppStatus cget -useMagicNumberTx]

# Negotiated MRUs set rxMRU [pppStatus cget -rxMaxReceiveUnit] set txMRU [pppStatus cget -txMaxReceiveUnit] ixPuts Port $chas:$card:$port ixPuts \tMRU:\trxMaxReceiveUnit $rxMRU, txMaxReceiveUnit $txMRU ixPuts \tMagic:\tuseMagicNumberRx $magicRxState, useMagicTxSate $magicTxState ixPuts \tLQM:\tlqmReportIntervalRx $lqmRxInterval, lqmReportIntervalTx $lqmTxInterval ixPuts \tIP:\tstate $ipState, localIpAddress $ipAddr, peerIpAddress $ipPeerAddr ixPuts \tOSI:\tstate $osiState, rxAlignment $rxAlignment, txAlignment $txAlignment ixPuts \tMPLS:\tstate $mplsState } # Symbolic definition of the PPP related port link states # Not all states are necessarily defined set pppState($::pppOff) pppOff\t set pppState($::pppUp) pppUp\t set pppState($::pppDown) pppDown\t set pppState($::pppInit) pppInit\t set pppState($::pppWaitForOpen) pppWaitForOpen set pppState($::pppAutoNegotiate) pppAutoNegotiate set pppState($::pppClose) pppClose set pppState($::pppConnect) pppConnect set pppState($::pppRestartNegotiation) pppRestartNegotiation set pppState($::pppRestartInit) pppRestartInit set pppState($::pppRestartWaitForOpen) pppRestartWaitForOpen set pppState($::pppRestartWaitForClose) pppRestartWaitForClose

Ixia Tcl Development Guide

A-205

ppp

set set set set set

pppState($::pppRestartFinish) pppState($::pppClosing) pppState($::pppLcpNegotiate) pppState($::pppAuthenticate) pppState($::pppNcpNegotiate)

pppRestartFinish pppClosing pppLcpNegotiate pppAuthenticate pppNcpNegotiate

# Connect to chassis and get chassis ID set host galaxy ixInitialize $host set chas [ixGetChassisID $host] # Assuming that an OC12 card is in slot 2 # And that port 1 is directly connected to port 2 set card 2 # Get the type of card and check if its the correct type set ifType [card getInterface $chas $card] if {$ifType != $::interfacePacketOverSonet} \ { ixPuts Card $card is not an OC12c POS card } \ else \ { # Disable PPP negotiation and tell both ports to stop ppp config -enable disable ppp set $chas $card 1 ppp set $chas $card 2 ppp write $chas $card 1 ppp write $chas $card 2 # Start with a default setup, enable PPP and set auto negotiatoin ppp setDefault ppp config -enable enable ppp config -activeNegotiation true # Enable IP address negotation and set our desired IP address ppp config -enableIp enable ppp config -localIPAddress 192.168.5.100 # Enable MPLS negotiation ppp config -enableMpls enable # Enable magic number negotiation ppp config -useMagicNumber true # Enable LQM and set the desired report interval to 5 seconds ppp config -enableLqm enable ppp config -lqmReportInterval 5 # Enable OSI negotiation with alignment at byte 2 ppp config -enableOsi enable ppp config -rxAlignment 2 ppp config -txAlignment 2 # Set PPP parameters to port 1 ppp set $chas $card 1 ppp write $chas $card 1 # When two Ixia ports are connected directly, only one can use recovered clock sonet setDefault sonet config -useRecoveredClock false

A-206

Ixia Tcl Development Guide

ppp

sonet set $chas $card 1 ixWritePortsToHardware { {$chas $card 1} } # Change the requested address for the second port ppp config -localIPAddress 192.168.6.100 ppp set $chas $card 2 ppp write $chas $card 2 # Now monitor and print the port link state until both ports show up or a minute # Has gone by ixPuts Link state monitoring ixPuts Port 1\t\t\tPort 2 ixPuts ------\t\t\t------ for {set i 0} {$i < 60} {incr i} \ { after 1000 port get $chas $card 1 set portState1 [port cget -linkState] port get $chas $card 2 set portState2 [port cget -linkState] ixPuts $pppState($portState1)\t\t$pppState($portState2) if {$portState1 == $::pppUp && $portState2 == $::pppUp} {break} } # If both ports went to pppUp, then get and print the state for each if {$portState1 == $::pppUp && $portState2 == $::pppUp} \ { getState $chas $card 1 getState $chas $card 2 } }

SEE ALSO

pppStatus

Ixia Tcl Development Guide

A-207

pppStatus

NAME - pppStatus
pppStatus - configure PPP parameters SYNOPSIS DESCRIPTION STANDARD OPTIONS
ipState

pppStatus sub-command options This command gets PPP status information for Packet over Sonet ports.

Read-only. The current state of the IP Network Control Protocol negotiation. One of:
State pppStatusDisabled pppStatusClose pppStatusNegotiation Value 0 1 2 Usage The IPCP protocol has been disabled and will not be negotiated during the NCP phase. The IPCP protocol is enabled but is currently closed. IPCP traffic will be dropped. The IPCP protocol is currently being negotiated on the link. This state may continue indefinitely if the peer refuses to negotiate IPCP. The IPCP protocol is currently open and IPCP traffic may flow.

pppStatusOpen

lqmReportPacket CounterRx lqmReportPacket CounterTx localIPAddress

Read-only. The number of LQM report packets received since link was last established. Read-only. The number of LQM report packets transmitted since link was last established. Read-only. The negotiated local IP address for the port as a result of the IP Network Control Protocols operation. Read-only. The negotiated LQM receive port interval, expressed in seconds. Read-only. The negotiated LQM transmit port interval, expressed in seconds. Read-only. The current state of the LQM negotiation. One of:
State pppStatusNotNegotiated Value 0 Usage The LQM option has been locally disabled and will not be negotiated. Any subsequent Link Quality Reports (LQR) received on the link will be ignored. LQM is not running on the link and any LQRs received will be ignored. LQM operation was agreed to by both peers during LCP negotiation and LQM is running on the link. LQRs received on the link will be pre-processed and local LQRs will be generated and sent.

lqmReportIntervalRx lqmReportIntervalTx lqmQualityState

pppStatusInactive pppStatusActive

1 2

A-208

Ixia Tcl Development Guide

pppStatus

magicNumber Negotiated mplsState

Read-only. The magic number negotiated between the local and remote hosts. (default = 0) Read-only. The current state of the MPLS Network Control Protocol negotiation. One of:
State pppStatusDisabled pppStatusClose pppStatusNegotiation Value 0 1 2 Usage The MPLS NCP protocol has been disabled and will not be negotiated during the NCP phase. The MPLS NCP protocol is enabled but is currently closed. MPLS NCP traffic will be dropped. The MPLS NCP protocol is currently being negotiated on the link. This state may continue indefinitely if the peer refuses to negotiate MPLS NCP. The MPLS NCP protocol is currently open and IPCP traffic may flow.

pppStatusOpen

osiState

Read-only. The current state of the OSI Network Control Protocol negotiation. One of:
State pppStatusDisabled pppStatusClose pppStatusNegotiation Value 0 1 2 Usage The OSI NCP protocol has been disabled and will not be negotiated during the NCP phase. The OSI NCP protocol is enabled but is currently closed. OSI NCP traffic will be dropped. The OSI NCP protocol is currently being negotiated on the link. This state may continue indefinitely if the peer refuses to negotiate OSI NCP. The OSI NCP protocol is currently open and IPCP traffic may flow.

pppStatusOpen

peerIPAddress rxAlignment rxMaxReceiveUnit txAlignment txMaxReceiveUnit useMagicNumberRx

Read-only. The negotiated IP address of the peer. Read-only. The negotiated OSI receive alignment. Read-only. Maximum frame size in receive direction. (default = 0) Read-only. The negotiated OSI receive alignment. Read-only. Maximum frame size in transmit direction. (default = 0) Read-only. The current state of the receive magic number negotiation. One of:
State pppStatusDisabled Value 0 Usage The negotiation of received Magic Number has been disabled and will not be negotiated during the NCP phase. The negotiation of received Magic Number is enabled but is currently closed. Related traffic will be dropped. The received Magic Number is currently being negotiated on the link. This state may continue indefinitely if the peer refuses to negotiate.

pppStatusClose

pppStatusNegotiation

Ixia Tcl Development Guide

A-209

pppStatus

State pppStatusOpen

Value 3

Usage The negotiation of received Magic Number is currently open and related traffic may flow.

useMagicNumberTx

Read-only. The current state of the transmit magic number negotiation. One of:
State pppStatusDisabled Value 0 Usage The negotiation of transmitted Magic Number has been disabled and will not be negotiated during the NCP phase. The negotiation of transmitted Magic Number is enabled but is currently closed. Related traffic will be dropped. The transmitted Magic Number is currently being negotiated on the link. This state may continue indefinitely if the peer refuses to negotiate. The negotiation of transmitted Magic Number is currently open and related traffic may flow.

pppStatusClose

pppStatusNegotiation

pppStatusOpen

COMMANDS

The pppStatus command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

pppStatus cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the pppStatus command. pppStatus config option value Modify the configuration options. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for pppStatus. pppStatus get chasID cardID portID Gets the current PPP Status information on port with id portID on card cardID, chassis chasID from its hardware. Call this command before calling pppStatus cget option value to get the value of the configuration option. EXAMPLES SEE ALSO See examples under ppp ppp

A-210

Ixia Tcl Development Guide

protocol

NAME - protocol
protocol - configure the type of protocol to use for running the tests. SYNOPSIS DESCRIPTION protocol sub-command options This command allows the user to select the ethernet frame type and protocol type to use when building data packets or running a test. NOTE: In order to set these values in IxHal and to commit them to the hardware use stream set and stream write. STANDARD OPTIONS
appName

The application running on top of IP. These are applications may be layer 3 or 5 and others that cannot be directly set in the IP header. To use layer 4 applications such as UDP and TCP, use ip config ipProtocol command. Available options are:
Option Value 0 udp Arp Rip Dhcp 5 8 11 13 (default) Usage

dutStripTag true/false enable802dot1qTag

(default = true) Enable 802.1q Vlan tagged frame insertion. (default = false) Enable Cisco ISL Tagged frame insertion. (default = false) Enable MPLS Tagged frame insertion. (default = false) The type of ethernet frame selected. Options include:
Option noType ethernetII ieee8023 ieee8023snap ieee8022 Value 0 1 2 3 15 (default) Usage

true/false

enableISLtag true/false enableMPLS true/false ethernetType

Ixia Tcl Development Guide

A-211

protocol

name

The name of the protocol selected. Options include:


Option mac Value 0 Usage MAC layer 2. During the learn process, simple MAC frames that contain the MAC address of the receive ports will be transmitted to allow the switch to learn the ports (default) Uses an IP version 4 header in the frame, see ip command set. If name is set to ip, during the learn process ARP frames from both the transmit and receive ports will be sent to DUT. From the ARP frames, the DUT will learn the IP address of the attached Ixia ports and the Ixia ports will learn the MAC address of the DUT port. same as ip above. Uses an IPX header in the frame, see ipx command set. During the learn process, RIPx frames both the transmit and receive ports will be sent to DUT so it may learn the network address of the attached ports and so that the transmit ports may learn the MAC address of the attached DUT port. Uses an IP version 6 header in the frame.

ip

ipV4 ipx

4 7

ipV6

31

COMMANDS

The protocol command is invoked with the following sub-commands. If no subcommand is specified, returns a list of all sub-commands available.

protocol cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the protocol command. NOTE: Call command stream get chasID cardID portID streamID before calling protocol cget option value to get the value of the configuration option. protocol config option value Modify the configuration options of the port. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for port. protocol setDefault Sets default values for all configuration options. EXAMPLES

package require IxTclHal set host localhost ixInitialize $host set chas [ixGetChassisID $host] set card 1 set port 1 set portList [list [list $chas $card $port]] # Set to protocol protocol protocol ethernet II and ipV4 setDefault config -name ipV4 config -ethernetType ethernetII

A-212

Ixia Tcl Development Guide

protocol

# Protocol values are saved via the stream command stream set $chas $card $port 1 ixWriteConfigToHardware portList

SEE ALSO

stream, ip, ipx

Ixia Tcl Development Guide

A-213

protocolServer

NAME - protocolServer
protocolServer - configure the protocol server services for a port. SYNOPSIS DESCRIPTION protocolServer sub-command options This command allows the user to select a protocol service and configure that service. The protocol server is used to enable and disable the ability to respond to ARP and Ping requests received from DUTs.

STANDARD OPTIONS
enableArpResponse

true / false true / false

Enable ARP response. (default = false) Enable BGP4 service. (default = false) Enable IGMP query response. (default = false) Enable ISIS service. (default = false) Enable OSPF service. (default = false) Eable PING response. (default = false) Enable RIP service. (default = false) Enable RSVP service. (default = false)

enableBgp4Service enableIgmpQuery Response true / false enableIsisService

true / false true / false

enableOspfService enablePingResponse

true / false true / false true / false

enableRipService enableRsvpService

DEPRECATED STANDARD OPTIONS


arpServerEnable

true/false
count

Enable the ARP response engine to send out ARP responses when ARP requests are received on a port. (default = false) The total number of addresses in the address table. Initial IP address for the protocol server address table. Initial MAC address for the protocol server address table.

IpAddress MacAddress

A-214

Ixia Tcl Development Guide

protocolServer

mapType

The type of mac/ip address mapping selected. Options include:


Option oneIpToOneMAC manyIpToOneMAC Value 0 1 Usage Exactly one MAC address will be associated with each IP address (default) Only one MAC address will be associated with multiple IP addresses

pingServerEnable true/

false

Enable the PING response engine to send out PING responses when PING requests are received on a port. (default = false) (default = -1) (default = -1) The protocolServer command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

rate repeatCount

COMMANDS

protocolServer cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the protocolServer command. protocolServer config option value Modify the configuration options of the protocolServer. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for protocolServer. protocolServer get chasID cardID portID Gets the current configuration of the protocol server on port with id portID on card cardID, chassis chasID. from its hardware. Call this command before calling protocolServer cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis

Invalid port number protocolServer set chasID cardID portID Sets the current configuration of the protocol server on port with id portID on card cardID, chassis chasID. from its hardware. Call this command before calling protocolServer cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user

The configured parameters are not valid for this port protocolServer setDefault Sets default values for all configuration options.

Ixia Tcl Development Guide

A-215

protocolServer

protocolServer write chasID cardID portID Writes or commits the changes in IxHAL to hardware the protocol server configuration for each port with id portID on card cardID, chassis chasID. Before using this command, use the protocolServer set command to configure the port related in IxHAL. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user Network error between the client and chassis

EXAMPLES

See examples under arpServer, bgp4Server, igmpServer, isisServer, ospfServer, ripServer, and rsvpServer protocol, port

SEE ALSO

A-216

Ixia Tcl Development Guide

qos

NAME - qos
qos - configure the QoS counter parameters for a port SYNOPSIS DESCRIPTION qos sub-command options This command allows the user to set up the QoS counter filters and offset of the QoS priority bits. STANDARD OPTIONS
byteOffset

The offset where the priority value is checked to indicate which of the QoS counters is going to be incremented. (default = 14) Read-only. The type of packet that the QoS counters are looking for priority bits within. One of:
Option ipEthernetII ip8023Snap vlan custom ipPpp ipCiscoHdlc Value 0 1 2 3 4 5 Usage

packetType

patternMask

The mask of the pattern that is analyzed by the Receive engine to increment the QoS counter. (default = 00 00) The pattern that is analyzed by the Receive engine to increment the QoS counter. (default = 81 00) The offset where the pattern to be matched is located. (default = 12) The qos command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

patternMatch

patternOffset

COMMANDS qos cget option

Returns the current value of the configuration option given by option. Option may have any of the values accepted by the qos command qos config option value Modify the configuration options of the qos. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for qos. qos get chasID cardID portID Gets the current configuration of the QoS counters on port with id portID on card cardID, chassis chasID. from its hardware. Call this command before calling qos cget option value to get the value of the configuration option. Specific errors are:

Ixia Tcl Development Guide

A-217

qos

No connection to a chassis

Invalid port number qos set chasID cardID portID Sets the configuration of the QoS counters in IxHAL on port with id portID on card cardID, chassis chasID by reading the configuration option values set by the qos config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user

The configured parameters are not valid for this port qos setDefault Sets default values for all configuration options. qos setup packetType Sets the QoS counters to look for priority bits for a certain type of packet. See the packetType standard option description for the choices. Specific errors are:
Invalid packetType

qos write chasID cardID portID Writes or commits the changes in IxHAL to hardware the QoS counters configuration for each port with id portID on card cardID, chassis chasID. Before using this command, use the qos set command to configure the port related parameters (byteOffset, patternMatch, patternMask, patternOffset) in IxHAL. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user

EXAMPLES

package require IxTclHal # # # # In this test, well generate a number of packets with different settings in the QoS field. The directly connected receiving port will be set to receive and provide statistics for the number of QoS packets received at each of 8 levels

# Connect to chassis and get chassis ID set host galaxy ixInitialize $host set chas [ixGetChassisID $host] # Assume card to be used is in slot 1 set card 1 set txPort 1 set rxPort 2 set portList [list [list $chas $card $txPort] \ [list $chas $card $rxPort] ] # Setup port 1 to transmit port setFactoryDefaults $chas $card $txPort port setDefault # Stream: 100,000 packets stream setDefault stream config -numFrames stream config -dma

100000 stopStream

A-218

Ixia Tcl Development Guide

qos

# IP/ethernetII packets ip setDefault ip set $chas $card $txPort protocol setDefault protocol config -name protocol config -ethernetType

ipV4 ethernetII

# Overlay UDF1 on top of the QoS byte with an appropriate mask udf setDefault udf config -enable true udf config -offset 15 udf config -countertype c8 udf config -continuousCount true udf config -maskselect {1F 00 00 00} udf set 1 stream set $chas $card $txPort 1 port set $chas $card $txPort # Set up port 2 for QoS Statistics port setFactoryDefaults $chas $card $rxPort port setDefault # QoS statistics mode stat config -mode stat set $chas $card $rxPort

statQos

# Set up locations of where to find the information qos setup ipEthernetII qos set $chas $card $rxPort protocol setDefault protocol config -name protocol config -ethernetType port set $chas $card $rxPort # Write config to hardware ixWritePortsToHardware portList # Clear stats, run the transmission after 1000 ixClearPortStats $chas $card $rxPort ixStartPortTransmit $chas $card $txPort after 1000 ixCheckPortTransmitDone $chas $card $txPort # Get the 8 QoS statistics and print them stat get allStats $chas $card $rxPort for {set i 0} {$i <= 7} {incr i} \ { ixPuts -nonewline Qos$i = ixPuts [stat cget -qualityOfService$i] }

mac ethernetII

SEE ALSO

stat, port

Ixia Tcl Development Guide

A-219

rip

NAME - rip
rip - configure the RIP header parameters for a port on a card on a chassis SYNOPSIS DESCRIPTION rip sub-command options The rip command is used to configure the RIP header information used when building RIP-type packets. See RFCs 1058 and 1723 for a complete definition of RIP header fields.

STANDARD OPTIONS
command

The command field of the RIP header. Defined values include:


Option ripRequest ripResponse ripTraceOn ripTraceOff ripReserved Value 1 2 3 4 5 Usage (default) a request for the responding system to send all or part of its routing table response or update information from a sender an obsolete message an obsolete message reserved for use by Sun Microsystems

version

The version field of the RIP header. Defined values include:


Option ripVersion1 ripVersion2 Value 1 2 (default) Usage

COMMANDS rip cget option

The rip command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

Returns the current value of the configuration option given by option. Option may have any of the values accepted by the rip command. rip config option value Modify the RIP configuration options of the port. If no option is specified, returns a list describing all of the available RIP options (see STANDARD OPTIONS) for port. rip decode capFrame [chasID cardID portID] Decodes a captured frame in the capture buffer and updates TclHal. rip cget option command can be used after decoding to get the option data. If chasID, cardID and portID are omitted, then packet offsets for Ethernet packets are used. Specific errors are:
No connection to a chassis Invalid port number

A-220

Ixia Tcl Development Guide

rip

The captured frame is not a valid Rip frame

rip get chasID cardID portID Gets the current RIP configuration of the port with id portID on card cardID, chassis chasID. Call this command before calling rip cget option to get the value of the configuration option. Specific errors are:
No connection to a chassis

Invalid port number rip set chasID cardID portID Sets the RIP configuration of the port with id portID on card cardID, chassis chasID by reading the configuration option values set by the rip config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user

The configured parameters are not valid for this port rip setDefault Sets default values for all configuration options. EXAMPLES
package require IxTclHal # In this example well generate a RIP packet with two route # specifications # Connect to chassis and get chassis ID set host 400-031561 ixInitialize $host set chas [ixGetChassisID $host] # Assume card to be used is in slot 1 set card 1 set port 1 set portList [list [list $chas $card $port]] # Put the port in loopback mode port setFactoryDefaults $chas $card $port port setDefault # Stream: 1 packet at 1% stream setDefault stream config -numFrames stream config -dma stream config -rateMode stream config -percentPacketRate

1 stopStream usePercentRate 1

# Set up IP: icmp with 46 byte packet ip setDefault ip config -ipProtocol udp ip config -totalLength 72 ip set $chas $card $port # Set up protocol protocol setDefault protocol config -ethernetType

ethernetII

Ixia Tcl Development Guide

A-221

rip

protocol config -name protocol config -appName # Set up UDP udp setDefault udp config -sourcePort udp config -destPort udp set $chas $card $port # Set up Rip in general rip setDefault rip config -command rip config -version # Set up Rip Routes ripRoute setDefault ripRoute config -familyId ripRoute config -routeTag ripRoute config -metric ripRoute config -ipAddress ripRoute config -subnetMask ripRoute config -nextHop ripRoute set 1 ripRoute ripRoute ripRoute ripRoute config -metric config -ipAddress config -nextHop set 2

ipV4 Rip

ripPort ripPort

ripResponse 2

2 0 10 192.168.36.1 255.255.255.0 192.168.46.254

20 0.0.0.0 192.168.46.1

rip set $chas $card $port stream set $chas $card $port 1 port set $chas $card $port ixWritePortsToHardware portList

SEE ALSO

port, protocol, ip, ripRoute

A-222

Ixia Tcl Development Guide

ripRoute

NAME - ripRoute
ripRoute - configure the RIP routing parameters for a port on a card on a chassis SYNOPSIS DESCRIPTION ripRoute sub-command options The ripRoute command is used to configure the RIP routing parameters used when building RIP packets. See RFCs 1058 and 1723 for a complete definition of RIP.

STANDARD OPTIONS
authentication authenticationType familyId

Authentication string, maximum 16 octets. (default = ) Type of authentication. (default = 2) Address family identifier. Valid values are 2 (IP protocol), OxFFFF (authentication entry, automatically sets if ripRoute setAuthentication called). (default = 00) IP address of the routing table entry. (default = 0.0.0.0) The routing cost metric, from 1 to 16 with 16 interpreted as unreachable. (default = 1) For version 2 records, the IP address of the next routing hop for the IP address and subnet mask. (default = 0.0.0.0) The number used to distinguish the source of routing destination. (default = 00) Subnet mask for this route. (default = 0.0.0.0) The ripRoute command is invoked with the following sub-commands. If no subcommand is specified, returns a list of all sub-commands available.

ipAddress metric

nextHop

routeTag subnetMask

COMMANDS

ripRoute cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the ripRoute command. ripRoute config option value Modify the ripRoute configuration options of the port. If no option is specified, returns a list describing all of the available ripRoute options (see STANDARD OPTIONS) for port. ripRoute get routeID Gets the current route configuration of the selected routeID. Call this command before calling ripRoute cget option to get the value of the configuration option. Specific errors are:
The specified route does not exist

Ixia Tcl Development Guide

A-223

ripRoute

ripRoute remove routeID Remove the route routeID from the routing table.Specific errors are:
The specified route does not exist

ripRoute set routeID Sets the route configuration for route routeID reading the configuration option values set by the ripRoute config option value command. Specific errors are:
The configured parameters are not valid for this port Insufficient memory to add the new route

ripRoute setAuthentication authentication Sets an authentication route as the first entry of the routing table with familyID set to 0xFFFF. Specific errors are:
The parent rip structure does not exist Insufficient memory

ripRoute setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under rip stream, protocol, ip, rip

A-224

Ixia Tcl Development Guide

ripInterfaceRouter

NAME - ripInterfaceRouter
ripInterfaceRouter - configure an RIP router SYNOPSIS DESCRIPTION ripInterfaceRouter sub-command options The ripInterfaceRouter command represents a simulated router. In addition to some identifying options, it holds a list for the router: Route ranges routes to be advertised by the simulated router, constructed in the ripRouteRange command.

Routers defined in this command are added to an ripServer using the ripServer addRouter command. Refer to ripInterfaceRouter on page 5-81 for an overview of this command. STANDARD OPTIONS
authorizationPassword

If enableAuthorization is true, then this is the password to be included in the authentication part of the RIP messages. (default = ) Indicates whether authorization is included in update messages. (default = false) Enables or disables the simulated router. (default = false) The IP address of the simulated RIP router. (default = 0.0.0.0) The network mask associated with the ipAddress. (default = 255.255.255.255) Filters the version of messages this router will receive. One of:
Option ripReceiveVersion1 ripReceiveVersion2 ripReceiveVersion1and2 Value 1 2 3 Usage RIP Version 1 messages only. (default) RIP Version 2 messages only. Both RIP version messages.

enableAuthorization

true / false true / false


ipAddress ipMask

enableRouter

receiveType

responseMode

One of:

ripDefault ripSplitHorizon ripPoisonReverse ripSplitHorizonSpaceSaver ripSilent

0 1 2 3 4 (default)

The current implementation uses ripSplitHorizonSpaceSaver as its update mode regardless of the setting.

Ixia Tcl Development Guide

A-225

ripInterfaceRouter

sendType

The method for sending RIP packets. One of:


Option ripMulticast ripBroadcastV1 ripBroadcastV2 Value 0 1 2 Usage (default) sends Version 2 packets via multicast sends V1 packets via broadcast. sends V2 packets via broadcast.

updateIntervalOffset

A random percentage of this time value, expressed in seconds,which will be added or subtracted from the update interval. (default = 5) The time, in seconds, between transmitted update messages. (default = 30) The ripInterfaceRouter command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

updateInterval

COMMANDS

ripInterfaceRouter addRouteRange routeRangeId Adds the route range described in the ripRouteRange command to the list of route ranges associated with the router. The ranges entry in the list is given an identifier of routeRangeId. Specific errors are:
The parameters in ripRouteRange are invalid A router with this routeRangeId exists already in the list

ripInterfaceRouter cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the ripInterfaceRouter command. ripInterfaceRouter clearAllRouteRange Deletes all of the route ranges. ripInterfaceRouter config option value Modify the configuration options of the ripInterfaceRouter. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for ripInterfaceRouter. ripInterfaceRouter delRouteRange routeRangeId Deletes the route range with an identifier of routeRangeId. Specific errors are:
No router with this routeRangeId exists in the list

ripInterfaceRouter getFirstRouteRange Access the first route range in the list. The results may be accessed using the ripRouteRange command. Specific errors are:
There are no route ranges in the list

ripInterfaceRouter getNextRouteRange Access the next route range in the list. The results may be accessed using the ripRouteRange command. Specific errors are:
ripInterfaceRouter getFirstRouteRange hasnt been called

A-226

Ixia Tcl Development Guide

ripInterfaceRouter

There is no more route ranges in the list

ripInterfaceRouter getRouteRange routeRangeId Accesses the ranges entry in the list with an identifier of routeRangeId. The router range is accessed in the ripRouterRange command. Specific errors are:
A router with this routeRangeId does not exist in the list

ripInterfaceRouter setDefault Sets default values for all configuration options. ripInterfaceRouter setRouteRange routeRangeId Sets the values for the route ranges entry in the list with an identifier of routeRangeId based on changes made through the ripRouteRange command. This command should be used to change a running configuration and must be followed by a ripServer write command in order to send these changes to the Protocol Server. Specific errors are:
A router with this routeRangeId does not exist in the list

EXAMPLES SEE ALSO

See examples under ripServer. ripServer, ripRouteRange

Ixia Tcl Development Guide

A-227

ripRouteRange

NAME - ripRouteRange
ripRouteRange -sets up the parameters associated with an RIP route range. SYNOPSIS DESCRIPTION ripRouteRange sub-command options This command describes a set of routes. Route ranges are added into ripInterfaceRouter lists using the ripInterfaceRouter addRouteRange command. Refer to ripRouteRange on page 5-83 for an overview of this command.

STANDARD OPTIONS
enableRouteRange metric

Enables the use of this route range for the simulated router. (default = 0) The total metric cost for these routes. The valid range is from 1 to 16 (inclusive). A value of 16 means that the destination is not reachable, and that route will be removed from service. (default = 1) The network address to be used in creating this route range. (default = 0.0.0.0) The network mask to be applied to the networkIpAddress to yield the non-host part of the address. A value of 0 means there is no subnet address. (default = 0) The immediate next hop IP address on the way to the destination address. (default = 0.0.0.0) The number of networks to be generated for this route range, based on the network address plus the network mask. (default = 0) A arbitrary value associated with the routes in this range. It is used to provide a means for distinguishing internal vs. external RIP routes. (default = 0) The ripRouteRange command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available. Returns the current value of the configuration option given by option. Option may have any of the values accepted by the ripRouteRange command.

networkIpAddress networkMaskWidth

nextHop

numberOfNetworks

routeTag

COMMANDS

ripRouteRange cget option

ripRouteRange config option value Modify the configuration options of the ripRouteRange. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for ripRouteRange. ripRouteRange setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under ripServer. ripServer, ripInterfaceRouter

A-228

Ixia Tcl Development Guide

ripServer

NAME - ripServer
ripServer - access the RIP component of the Protocol Server for a particular port. SYNOPSIS DESCRIPTION ripServer sub-command options The ripServer command is necessary in order to access the RIP Protocol Server for a particular port. The select sub-command must be used before all other RIP commands. Refer to ripServer on page 5-80 for an overview.

STANDARD OPTIONS
none

COMMANDS

The ripServer command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

ripServer addRouter routerId Adds the RIP router described in the ripInterfaceRouter command to the list of routers associated with the port. The routers entry in the list is given an identifier of routerId. Specific errors are:
ripServer select hasnt been called The router parameters in ripInterfaceRouter are invalid A router with this routerId exists already in the list

ripServer cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the ripServer command. ripServer clearAllRouter Deletes all the RIP routers in the list. Specific errors are:
ripServer select hasnt been called

ripServer config option value Modify the configuration options of the ripServer. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for ripServer. ripServer delRouter routerId Deletes the RIP router described that has an identifier of routerId. Specific errors are:
ripServer select hasnt been called There is no router with this routerId in the list

Ixia Tcl Development Guide

A-229

ripServer

ripServer getFirstRouter Access the first RIP router in the list. The results may be accessed using the ripInterfaceRouter command. Specific errors are:
ripServer select hasnt been called There are no routers in the list

ripServer getNextRouter Access the next RIP router in the list. The results may be accessed using the ripInterfaceRouter command. Specific errors are:
ripServer select hasnt been called ripServer getFirstRouter hasnt been called There is no more routers in the list

ripServer getRouter routerId Access the RIP router with an identifier of routerId. The results may be accessed using the ripInterfaceRouter command. Specific errors are:
ripServer select hasnt been called There is no router with this routerId in the list

ripServer select chasID cardID portID Accesses the RIP component of the Protocol server for the indicated port. Specific errors are:
No connection to the chassis The RIP protocol package has not been installed Invalid port specified

ripServer setRouter routerLocalId Sets the values for the routers entry in the list with an identifier of routerLocalId based on changes made through the ripInterfaceRouter command. This command should be used to change a running configuration and must be followed by an ripServer write command in order to send these changes to the Protocol Server. Specific errors are:
A router with this routerLocalId does not exist in the list

ripServer write Writes or commits the changes in IxHAL to hardware for the currently selected chassis, card and port. Before using this command, use the ripServer select command to select the port. EXAMPLES

package req IxTclHal # Port is chassis 1, card 1, port 1 with a MAC addr of # 00 0a de 00 01 01 set card 1 set port 1 set pl [list [list 1 $card $port]] set myMac [format 00 0a de 00 %02x %02x $card $port] # The router being simulated on the port set router 198.18.1.2

A-230

Ixia Tcl Development Guide

ripServer

# Basic parameters for the set mask set sendType set receiveType set updateInterval set updateIntervalOffset

RIP router 255.255.255.0 ripBroadcastV2 ripReceiveVersion2 30 5

An array of multiple route ranges, organized as a table # Num # RangeIp Prefix Routes Metric Next Hop Tag set routeRanges {{10.0.0.0 13 1000 4 198.18.1.2 9} \ {20.0.0.0 17 1000 4 198.18.1.2 10}} ixInitialize hiwire # Initialize port port setFactoryDefaults 1 $card $port port setDefault port set 1 $card $port # Select the port and clear all defined routers ripServer select 1 $card $port ripServer clearAllRouters set routerId 1 set rangeId 1 # For all the defined routers while {[llength $routeRanges] > 0} { # Extract the information from the table and set the route ranges scan [lindex $routeRanges 0] %s %s %s %s %s %s \ myIp prefix numRoutes metric nextHop routeTag ripRouteRange setDefault ripRouteRange config -enableRouteRange true ripRouteRange config -routeTag $routeTag ripRouteRange config -networkIpAddress $myIp ripRouteRange config -networkMaskWidth $prefix ripRouteRange config -numberOfNetworks $numRoutes ripRouteRange config -nextHop $nextHop ripRouteRange config -metric $metric # Create a name for each individual route range ripInterfaceRouter addRouteRange \ [format routeRange%02d $rangeId] incr rangeId set routeRanges [lrange $routeRanges 1 end] } # Now set the basic parameters for the router ripInterfaceRouter setDefault ripInterfaceRouter config -enableRouter ripInterfaceRouter config -ipAddress ripInterfaceRouter config -ipMask ripInterfaceRouter config -sendType ripInterfaceRouter config -receiveType ripInterfaceRouter config -updateInterval ripInterfaceRouter config -updateIntervalOffset $updateIntervalOffset

true $router $mask $sendType $receiveType $updateInterval

# And add the router to the ripServer with a unique ID ripServer addRouter [format router%02d $routerId]

Ixia Tcl Development Guide

A-231

ripServer

# Set up the IP address table, arp server and protocol server # To respond to arps from the router ipAddressTableItem setDefault ipAddressTableItem config -numAddresses 1 ipAddressTableItem config -mappingOption oneIpToOnemyMac ipAddressTableItem config -overrideDefaultGateway false ipAddressTableItem config -fromIpAddress $router ipAddressTableItem config -fromMacAddress $myMac ipAddressTable addItem ipAddressTable set 1 $card $port arpServer setDefault arpServer config -mode arpGatewayOnly arpServer set 1 $card $port protocolServer protocolServer protocolServer protocolServer get 1 $card $port config -enableRipService true config -enablePingResponse false set 1 $card $port

# Send to the hardware ixWritePortsToHardware pl ixCheckLinkState pl # And start RIP on the port ixStartRip pl # Disable routeRange1 while rip server is runnung. # This is the same as removing the route range from router ripServer select 1 $card $port if [ripServer getRouter router01] { logMsg Error getting router01 } if [ripInterfaceRouter getRouteRange routeRange01] { logMsg Error getting routeRange01 } # Disable the route range ripRouteRange config -enableRouteRange

false

if [ripInterfaceRouter setRouteRange routeRange01] { logMsg Error setting routeRange01 } if [ripServer write] { logMsg Error writing ripServer } # If you wanted to add a route range while rip server is running, # -Configure it disabled before starting rip server and then # enable it

SEE ALSO

ripInterfaceRouter, ripRouteRange

A-232

Ixia Tcl Development Guide

rsvpDestinationRange

NAME - rsvpDestinationRange
rsvpDestinationRange - configure an RSVP destination range SYNOPSIS DESCRIPTION rsvpDestinationRange sub-command options The rsvpDestinationRange command represents a simulated destination range. In addition to some identifying options, it holds three lists for the destination range: Sender ranges a set of MPLS routers which are the tunnel startpoints, constructed in the rsvpSenderRange command. ERO item a set of addresses associated with the Explicit Route Option of RSVP messages, constructed in the rsvpEroItem command. This option indicates the path through a set of MPLS routers that the tunnel is to take. This is used when the destination range is associated with an Ingress router. RRO item a set of addresses associated with the Returned Route Option, constructed in the rsvpRroItem command. This option indicates the set of MPLS routers that were used in a tunnels creation. This is used when the destination range is associated with an Egress router.

Destination ranges defined in this command are added to an rsvpNeighborPair using the rsvpNeighborPair addDestinationRange command. Refer to RSVPTE on page 3-27 for a discussion on RSVP testing with Ixia equipment. Refer to rsvpDestinationRange on page 5-74 for an overview of this command. STANDARD OPTIONS
bandwidth

The requested bandwidth for the tunnel, expressed in kbits per second. (default = 0) Indicates whether the destination range corresponds to an Ingress or Egress router. One of:
Option rsvpIngress rsvpEgress Value 0 1 (default) Ingress Mode Egress Mode Usage

behavior

enableDestination Range true / false enableEro true / false enableResvConf

Enables the use of this destination range in the simulation. (default = false) Enables use of the ERO option in Ingress mode. (default = false) Enables the generation of RESV Confirmation messages for received RESV messages which contain a RESV Confirmation Class object. (default = false) When the destination range is used in Ingress mode, this indicates that a SEND RRO option is to be included in RSVP messages sent downstream. (default = false)

true / false

enableSendRro

true / false

Ixia Tcl Development Guide

A-233

rsvpDestinationRange

eroMode

Indicates whether the DUTs address is to be prepended to the ERO list and whether it is a LOOSE or STRICT entry. One of:
Option rsvpNone rsvpPrependLoose rsvpPrependStrict Value 0 1 2 Usage do not prepend the DUTs address (default) prepend the DUTs address as a LOOSE address. prepend the DUTs address as a STRICT address.

fromIpAddress prefixLength

The IP address of the first destination router. (default = 0.0.0.0) If the DUTs address is to be prepended to the ERO list, this indicates what prefix length is to be used for the entry. (default = 32) The number of destination routers. Each routers address is one greater than the previous ones. (default = 1) When the destination range is rsvpEgress, this indicates the time, in seconds, between the simulated routers message to the DUT. (default = 30000) The number of Hellos before a router is declared dead. (default = 3) The end of the range of tunnel IDs. (default = 0) Sets the start of the range of Tunnel IDs to be used in simulations. (default = 0) The rsvpDestinationRange command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

rangeCount

refreshInterval

timeoutMultiplier tunnelIdEnd tunnelIdStart

COMMANDS

rsvpDestinationRange addEroItem Adds the ERO item described in the rsvpEroItem command to the list of ERO items associated with the destination range. Specific errors are:
The parameters in rsvpEroItem are invalid

rsvpDestinationRange addSenderRange senderRangeId Adds the route range described in the rsvpSenderRange command to the list of sender ranges associated with the destination range. The sender ranges entry in the list is given an identifier of senderRangeId. Specific errors are:
The parameters in rsvpSenderRange are invalid A destination range with this senderRangeId exists already in the list

rsvpDestinationRange addRroItem Adds the RRO item described in the rsvpRroItem command to the list of RRO items associated with the destination range. Specific errors are:
The parameters in rsvpRroItem are invalid

rsvpDestinationRange cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the rsvpDestinationRange command.

A-234

Ixia Tcl Development Guide

rsvpDestinationRange

rsvpDestinationRange clearAllEro Deletes all of the ERO items. rsvpDestinationRange clearAllSender Deletes all of the sender ranges. rsvpDestinationRange clearAllRro Deletes all of the user LSA groups. rsvpDestinationRange config option value Modify the configuration options of the rsvpDestinationRange. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for rsvpDestinationRange. rsvpDestinationRange delSenderRange senderRangeId Deletes the sender range with an identifier of senderRangeId. Specific errors are:
No destination range with this senderRangeId exists in the list

rsvpDestinationRange getFirstEroItem Access the first ERO item in the list. The results may be accessed using the rsvpEroItem command. Specific errors are:
rsvpServer select hasnt been called There are no ERO items in the list

rsvpDestinationRange getFirstSenderRange Access the first sender range in the list. The results may be accessed using the rsvpSenderRange command. Specific errors are:
There are no sender ranges in the list

rsvpDestinationRange getFirstRroItem Access the first RRO item in the list. The results may be accessed using the rsvpRroItem command. Specific errors are:
There are no RRO items in the list

rsvpDestinationRange getNextEroItem Access the next ERO item in the list. The results may be accessed using the rsvpEroItem command. Specific errors are:
rsvpDestinationRange getFirstEroItem hasnt been called There is no more ERO items in the list

rsvpDestinationRange getNextRroItem Access the next RRO item in the list. The results may be accessed using the rsvpRroItem command. Specific errors are:
rsvpDestinationRange getFirstRroItem hasnt been called There is no more RRO items in the list

Ixia Tcl Development Guide

A-235

rsvpDestinationRange

rsvpDestinationRange getNextSenderRange Access the next sender range in the list. The results may be accessed using the rsvpSenderRange command. Specific errors are:
rsvpDestinationRange getFirstSenderRange hasnt been called There is no more sender ranges in the list

rsvpDestinationRange getSenderRange senderRangeId Accesses the sender ranges entry in the list with an identifier of senderRangeId. The sender range is accessed in the rsvpSenderRange command. Specific errors are:
A destination range with this senderRangeId does not exist in the list

rsvpDestinationRange setDefault Sets default values for all configuration options. rsvpDestinationRange setSenderRange senderRangeId Sets the values for the sender ranges entry in the list with an identifier of senderRangeId based on changes made through the rsvpSenderRange command. This command can be used to change a running configuration and must be followed by an rsvpServer write command in order to send these changes to the Protocol Server. Specific errors are:
A router with this senderRangeId does not exist in the list

EXAMPLES SEE ALSO

See examples under rsvpServer rsvpServer, rsvpNeighborPair, rsvpSenderRange, rsvpEroItem, rsvpRroItem

A-236

Ixia Tcl Development Guide

rsvpEroItem

NAME - rsvpEroItem
rsvpEroItem sets up the parameters associated with an RSVP ERO item. SYNOPSIS DESCRIPTION rsvpEroItem sub-command options The rsvpEroItem holds the information related to an ERO item used for in Ingress mode. ERO items are added into the rsvpDestinationRange list using the rsvpDestinationRange addEroItem command. Refer to RSVP-TE on page 327 for a discussion on RSVP testing with Ixia equipment. Refer to rsvpEroItem on page 5-78 for an overview of this command.

STANDARD OPTIONS
asNumber

If the type field is rsvpAs, then this is the ERO value as an Autonomous System Number. (default = 0) Indicates whether the ERO item is to be considered a LOOSE item or a STRICT item. (default = 0) One of:
Option rsvpPrependLoose rsvpPrependStrict Value 1 2 Usage prepend the DUTs address as a LOOSE address. prepend the DUTs address as a STRICT address.

enableLooseFlag

ipAddress

If the type field is rsvpEroIpv4, then this is the ERO value as an IP address prefix. (default = 0.0.0.0) If the type field is rsvpEroIpv4, then this defines the prefix length of the DUT IP address. (default = 0) The type of contents in the ERO entry. One of:
Option rsvpEroIpv4 rsvpAs Value 0 1 Usage (default) an IPv4 address an Autonomous System

prefixLength

type

COMMANDS

The rsvpEroItem command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

rsvpEroItem cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the rsvpEroItem command. rsvpEroItem config option value Modify the configuration options of the rsvpEroItem. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for rsvpEroItem.

Ixia Tcl Development Guide

A-237

rsvpEroItem

rsvpEroItem setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under rsvpServer rsvpServer, rsvpNeighborPair, rsvpDestinationRange, rsvpSenderRange, rsvpRroItem

A-238

Ixia Tcl Development Guide

rsvpNeighborPair

NAME - rsvpNeighborPair
rsvpNeighborPair - configure an RSVP neighbor pair SYNOPSIS DESCRIPTION rsvpNeighborPair sub-command options The rsvpNeighborPair command represents a pair of routers the DUT and a directly connected simulated router. In addition to some identifying options, it holds a list for the neighbor pair: Destination ranges routers which are the destination of constructed MPLS tunnels, constructed in the rsvpDestinationRange command.

Neighbor pairs defined in this command are added to an rsvpServer using the rsvpServer addNeighborPair command. Refer to RSVP-TE on page 3-27 for a discussion on RSVP testing with Ixia equipment. Refer to rsvpNeighborPair on page 5-72 for an overview of this command. STANDARD OPTIONS
dutAddresss

The IP address of the Device Under Test. This is the RSVP router that the simulated router is directly connected to. (default = 0.0.0.0) Enables the transmission of HELLO messages between the simulated router and the DUT. (default = 0) Enables the use of this neighbor in the simulation. (default = 0) The interval, in seconds, between HELLO messages. (default = 5) The number of Hellos sent without confirmation before the DUT is considered dead. (default = 3) The IP address of the simulated router. (default = 0.0.0.0) The last label to be used for RSVP tunnels. (default =1000) The first label to be used for RSVP tunnels. (default = 16) Read-only. When received MPLS labels are retreived from the Protocol Server for the simulated server, this represents the tunnel ID for the returned label. Read-only. The number of RSVP labels received from a successful rsvpNeighborPair getLabels command. Read-only. This is the MPLS label associated with the tunnel ID in lsp_tunnel.

enableHello

enableNeighborPair helloInterval helloTimeoutMultiplier

ipAddress labelSpaceEnd labelSpaceStart lsp_tunnel

numRxLabels

rxLabel

Ixia Tcl Development Guide

A-239

rsvpNeighborPair

COMMANDS

The rsvpNeighborPair command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

rsvpNeighborPair addDestinationRange destId Adds the Destination Range described in the rsvpDestinationRange command to the list of Destination Ranges associated with the router. The Destination Ranges entry in the list is given an identifier of destId. Specific errors are:
The parameters in rsvpDestinationRange are invalid A router with this destId exists already in the list

rsvpNeighborPair cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the rsvpNeighborPair command. rsvpNeighborPair clearAllDestinationRange Deletes all of the router Destination Ranges. rsvpNeighborPair config option value Modify the configuration options of the rsvpNeighborPair. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for rsvpNeighborPair. rsvpNeighborPair delDestinationRange destId Deletes the router Destination Range with an identifier of destId. Specific errors are:
No router with this destId exists in the list

rsvpNeighborPair getFirstDestinationRange Access the first Destination Range in the list. The results may be accessed using the rsvpDestinationRange command. Specific errors are:
rsvpServer select hasnt been called There are no Destination Ranges in the list

rsvpNeighborPair getDestinationRange destId Accesses the Destination Ranges entry in the list with an identifier of destId. The Destination Range is accessed in the rsvpDestinationRange command. Specific errors are:
A router with this destId does not exist in the list

rsvpNeighborPair getFirstLabel This command must be preceded by use of the rsvpNeighborPair getLabels command and followed by multiple uses of rsvpNeighborPair getNextLabel. This command fetches the first of the labels in the list into memory. The data associated with the individual label may be read through the use of the lsp_tunnel and rxLabel options.

A-240

Ixia Tcl Development Guide

rsvpNeighborPair

rsvpNeighborPair getLabels This command must be preceded by use of the rsvpNeighborPair requestRxLabels and followed by a call to rsvpNeighborPair getFirstLabel. This command determines whether the reading of labels from the Protocol Server has completed. This command should be called until it returns a 0, or until some suitable period of time has elapsed. The number of labels is available in the numRxLabels option. rsvpNeighborPair getNextDestinationRange Access the next Destination Range in the list. The results may be accessed using the rsvpDestinationRange command. Specific errors are:
rsvpNeighborPair getFirstDestinationRange hasnt been called There is no more Destination Ranges in the list

rsvpNeighborPair getNextLabel This command must be preceded by use of the rsvpNeighborPair getFirstLabel command and repeated multiple times to obtain all of the learned LSAs. This command fetches the next of the labels in the list into memory. The data associated with the individual label may be read through the use of the lsp_tunnel and rxLabel options. rsvpNeighborPair requestRxLabels Requests that the received RSVP labels associated with this neighbor pair be retrieved from the Protocol Server. This command must be followed by call to rsvpNeighborPair getLabels. rsvpNeighborPair setDestinationRange destId Sets the values for the destination ranges entry in the list with an identifier of destId based on changes made through the rsvpDestinationRange command. This command can be used to change a running configuration and must be followed by an rsvpServer write command in order to send these changes to the Protocol Server. Specific errors are:
A router with this interfaceLocalId does not exist in the list

rsvpNeighborPair setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under rsvpServer rsvpServer, rsvpDestinationRange, rsvpSenderRange, rsvpEroItem, rsvpRroItem

Ixia Tcl Development Guide

A-241

rsvpRroItem

NAME - rsvpRroItem
rsvpRroItem sets up the parameters associated with an RSVP RRO item. SYNOPSIS DESCRIPTION rsvpRroItem sub-command options The rsvpRroItem holds the information related to an RRO item used for in Ingress mode. RRO items are added into the rsvpDestinationRange list using the rsvpDestinationRange addRroItem command. Refer to RSVP-TE on page 327 for a discussion on RSVP testing with Ixia equipment. Refer to rsvpRroItem on page 5-79 for an overview of this command.

STANDARD OPTIONS
cType

If the type field is rsvpRroIpv4, then this is the C_Type of the included Label Object. (default = 1) If the type field is rsvpRroIpv4, then this indicates that the label will be understood if received on any interface. (default = false) If the type field is rsvpRroIpv4, then this indicates that local protection is made available for the downstream link. (default = false) If the type field is rsvpRroIpv4, then this indicates that the local protection is being used currently to maintain this tunnel. (default = false) If the type field is rsvpRroIpv4, then this is the RRO value as an IPv4 address. (default = 0.0.0.0) If the type field is rsvpLabel, then this is the RRO value as an assigned label. (default = 0) The type of contents in the ERO entry. One of:
Option rsvpRroIpv4 rsvpLabel Value 0 1 Usage (default) an IPv4 address an MPLS label

enableGlobalLabel true / false enableProtection Available true / false enableProtectionInUse

true / false
ipAddress

label

type

COMMANDS

The rsvpRroItem command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

rsvpRroItem cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the rsvpRroItem command. rsvpRroItem config option value Modify the configuration options of the rsvpRroItem. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for rsvpRroItem.

A-242

Ixia Tcl Development Guide

rsvpRroItem

rsvpRroItem setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under rsvpServer rsvpServer, rsvpNeighborPair, rsvpDestinationRange, rsvpSenderRange, rsvpEroItem

Ixia Tcl Development Guide

A-243

rsvpSenderRange

NAME - rsvpSenderRange
rsvpSenderRange sets up the parameters associated with an RSVP sender range. SYNOPSIS DESCRIPTION rsvpSenderRange sub-command options The rsvpSenderRange command holds the information related to the originating routers for the MPLS tunnels being simulated in Ingress cases. Sender ranges are added into the rsvpDestinationRanges list using the rsvpDestinationRanges addSenderRange command. Refer to RSVP-TE on page 3-27 for a discussion on RSVP testing with Ixia equipment. Refer to rsvpSenderRange on page 5-77 for an overview of this command.

STANDARD OPTIONS
bandwidth enableAutoSession Name true / false enableLabelRecording Desired true / false enableLocalProtection Desired true / false

The bandwidth requested for the connection, expressed in kbits/sec. (default = 0) Enables the Session Name to be generated automatically. (default = true) This indicates that label information is to be included when doing a record route operation. (default = false) This permits transit routers to use a local traffic rerouting repair mechanism, in the event of a fault on an adjacent downstream link or node. This may result in a violation of the explicit route object. (default = true) Enables the use of resource affinities as set by excludeAny, includeAny, and includeAll. (default = false) Enables the sender range entry. (default = false) This indicates that the tunnel ingress node may reroute this tunnel without tearing it down. A tunnel egress node should use the SE Style when responding with an RESV message. (default = false) Represents a set of attribute filters associated with a tunnel, any of which renders a link unacceptable. (default = 00 00 00 00) The IP address of the first sender router. (default = 0.0.0.0) This is the session priority with respect to holding resources, such as keeping a session during preemption. The valid range is from 0 to 7. The highest priority is indicated by 0. (default = 7) Represents a set of attribute filters associated with a tunnel, all of which must be present for a link to be acceptable (with respect to this test). When all bits are set to 0 (null set), it automatically passes. (default = 00 00 00 00)

enableRaSession Attribute true / false enableSenderRange Desired true / false enableSeStyleDesired Desired true / false

excludeAny

fromIpAddress holdingPriority

includeAll

A-244

Ixia Tcl Development Guide

rsvpSenderRange

includeAny

Represents a set of attribute filters associated with a tunnel, any of which makes a link acceptable (with respect to this test). When all bits are set to 0 (null set), it automatically passes. (default = 00 00 00 00) The end of the range of LSP IDs. (default = 0) The start of the range of LSP IDs to be generated. (default = 0) The number of routers in the sender range. Each sender router has an IP address one higher than its predecessor. (default = 1) The value of the refresh interval, in milliseconds. (default = 30000) If enableAutoSessionName is not set, this is the name assigned to this Session. (default = ) This is the session priority with respect to taking resources, such as preempting another session. The valid range is from 0 to 7. The highest priority is indicated by 0. (default = 7) The number of Hellos before a neighbor is declared dead. (default = 3) The rsvpSenderRange command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

lspIdEnd lspIdStart rangeCount

refreshInterval sessionName

setupPriority

timeoutMultiplier

COMMANDS

rsvpSenderRange cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the rsvpSenderRange command. rsvpSenderRange config option value Modify the configuration options of the rsvpSenderRange. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for rsvpSenderRange. rsvpSenderRange setDefault Sets default values for all configuration options. EXAMPLES SEE ALSO See examples under rsvpServer rsvpServer, rsvpNeighborPair, rsvpDestinationRange, rsvpEroItem, rsvpRroItem

Ixia Tcl Development Guide

A-245

rsvpServer

NAME - rsvpServer
rsvpServer - access the RSVP component of the Protocol Server for a particular port. SYNOPSIS DESCRIPTION rsvpServer sub-command options The rsvpServer command is necessary in order to access the RSVP Protocol Server for a particular port. The select sub-command must be used before all other RSVP commands. Refer to RSVP-TE on page 3-27 for a discussion on RSVP testing with Ixia equipment. Refer to rsvpServer on page 5-71 for an overview of this command.

STANDARD OPTIONS
None

COMMANDS

The rsvpServer command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

rsvpServer addNeighborPair NeighborPairId Adds the RSVP neighbor pair described in the rsvpNeighborPair command to the list of neighbor pairs associated with the port. The neighbor pairs entry in the list is given an identifier of NeighborPairId. Specific errors are:
rsvpServer select hasnt been called The neighbor pair parameters in rsvpNeighborPair are invalid A neighbor pair with this NeighborPairId exists already in the list

rsvpServer cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the rsvpServer command. rsvpServer clearAllNeighborPair Deletes all the RSVP neighbor pairs in the list. Specific errors are:
rsvpServer select hasnt been called

rsvpServer config option value Modify the configuration options of the rsvpServer. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for rsvpServer. rsvpServer delNeighborPair NeighborPairId Deletes the RSVP neighbor pair described that has an identifier of NeighborPairId. Specific errors are:
rsvpServer select hasnt been called There is no neighbor pair with this NeighborPairId in the list

A-246

Ixia Tcl Development Guide

rsvpServer

rsvpServer getFirstNeighborPair Access the first RSVP neighbor pair in the list. The results may be accessed using the rsvpNeighborPair command. Specific errors are:
rsvpServer select hasnt been called There are no neighbor pairs in the list

rsvpServer getNextNeighborPair Access the next RSVP neighbor pair in the list. The results may be accessed using the rsvpNeighborPair command. Specific errors are:
rsvpServer select hasnt been called rsvpServer getFirstNeighborPair hasnt been called There are no more neighbor pairs in the list

rsvpServer getNeighborPair NeighborPairId Access the RSVP neighbor pair with an identifier of NeighborPairId. The results may be accessed using the rsvpNeighborPair command. Specific errors are:
rsvpServer select hasnt been called There is no neighbor pair with this NeighborPairId in the list

rsvpServer select chasID cardID portID Accesses the RSVP component of the Protocol server for the indicated port. Specific errors are:
No connection to the chassis The RSVP protocol package has not been installed Invalid port specified

rsvpServer NeighborPair NeighborPairId Sets the values for the neighbor pairs entry in the list with an identifier of NeighborPairId based on changes made through the rsvpNeighborPair command. This command should be used to change a running configuration and must be followed by an rsvpServer write command in order to send these changes to the Protocol Server. Specific errors are:
A router with this NeighborPairId does not exist in the list

rsvpServer setNeighborPair NeighborPairId Sets the values for the neighbor pairs entry in the list with an identifier of NeighborPairId based on changes made through the rsvpNeighborPair command. This command should be used to change a running configuration and must be followed by an rsvpServer write command in order to send these changes to the Protocol Server. Specific errors are:
A neighbor with this rsvpNeighborPair does not exist in the list

rsvpServer write Writes or commits the changes in IxHAL to hardware for the currently selected chassis, card and port. Before using this command, use the rsvpServer select command to select the port.

Ixia Tcl Development Guide

A-247

rsvpServer

EXAMPLES

package req IxTclHal # Define parameters used by rsvp router set host ruby if [ixInitialize $host] { logMsg Error in connecting to hostName return 1 } # Port is card 2, port 1 set ch set ca set po set pl set myMac set router set neighbor

[chassis cget -id] 9 1 [list [list $ch $ca $po]] {00 0a de 01 01 01} 101.101.9.2 101.101.9.1

# Set up IP address table for others who ARP to us ipAddressTableItem setDefault ipAddressTableItem config -numAddresses ipAddressTableItem config -mappingOption ipAddressTableItem config -overrideDefaultGateway ipAddressTableItem config -fromIpAddress ipAddressTableItem config -fromMacAddress ipAddressTable addItem ipAddressTable set $ch $ca $po

1 oneIpToOneMAC false $router $myMac

# Select port to operate if [rsvpServer select $ch $ca $po] { logMsg Error in selecting the port $ch $ca $po } # Clear all neighborPairs rsvpServer # Configure the rsvpSenderRange rsvpSenderRange rsvpSenderRange rsvpSenderRange rsvpSenderRange rsvpSenderRange

clearAllNeighborPair

senderRange for first destinationRange setDefault config -enableSenderRange true config -fromIpAddress {1.1.1.1} config -rangeCount 1 config -lspIdStart 1 config -lspIdEnd 160

# Add senderRange to destinationRange if [rsvpDestinationRange addSenderRange senderRange1] { logMsg Error adding senderRange senderrange1 } # Configure destinationRange rsvpDestinationRange setDefault rsvpDestinationRange config -enableDestinationRange rsvpDestinationRange config -behavior rsvpDestinationRange config -fromIpAddress rsvpDestinationRange config -rangeCount rsvpDestinationRange config -tunnelIdStart rsvpDestinationRange config -tunnelIdEnd

true rsvpIngress {2.2.2.2} 1 1 1

# Add destinatioanRange to the neighborPair if [rsvpNeighborPair addDestinationRange destinationRange1] { logMsg Error adding destinationRange destinationRange1] }

A-248

Ixia Tcl Development Guide

rsvpServer

# Configure the neighborPair rsvpNeighborPair setDefault rsvpNeighborPair config -enableNeighborPair true rsvpNeighborPair config -ipAddress {1.1.1.1} rsvpNeighborPair config -dutAddress {2.2.2.2} # Add the neighborPair to the rsvp server if [rsvpServer addNeighborPair neighborPair1] { logMsg Error in adding neighborPair to the server } # Enable RSVP operation protocolServer config -enableRsvpService true protocolServer set $ch $ca $po # Send the data to the hardware ixWriteConfigToHardware pl # And start rsvp on the port ixStartRsvp pl # Disable destinationRange while rsvp server is runnung. # This is the same as removing the destination from router rsvpServer select $ch $ca $po if [rsvpServer getNeighborPair neighborPair1] { logMsg Error getting router1 } if [rsvpNeighborPair getDestinationRange destinationRange1] { logMsg Error getting routeRange1 } # Disable the route range (You can also change other configuration if you want) rsvpDestinationRange config -enableDestinationRange false if [rsvpNeighborPair setDestinationRange destinationRange1] { logMsg Error setting routeRange1 } if [rsvpServer write] { logMsg Error writing rsvpServer }

# Stop the server at the end ixStopRsvp pl

SEE ALSO

rsvpNeighborPair, rsvpDestinationRange, rsvpSenderRange, rsvpEroItem, rsvpRroItem

Ixia Tcl Development Guide

A-249

session

NAME - session
session - manage a multiuser session SYNOPSIS DESCRIPTION session sub-command options The session command is used to login and logout of this Tcl session. A user is not required to login to configure ports; however in order to take ownership of a group of ports in a multiuser environment, the user must log in. Session login is valid for the entire duration of a Tcl window, regardless of how many times a package require IxTclHal or cleanUp is initiated or until the user logs out. Logging in as a different user name is the same as logging out and logging in again with a different login name.

STANDARD OPTIONS
userName

Read-only. User name for this session. The session command is invoked with the following sub-commands. If no subcommand is specified, returns a list of all sub-commands available.

COMMANDS

session config option value Modify the session configuration options of the port. If no option is specified, returns a list describing all of the available session options (see STANDARD OPTIONS) for port. (Since there are no writable options, this command is not currently useful). session cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the session command. session login userName Initiate a login to a new multiuser session. If already logged in as a different userName, log out existing user and log in new userName. Specific errors are:
No connection to a chassis UserName is null

session logout Logs out current user. EXAMPLES

package require IxTclHal # Login for george session login george # See whos logged in set userName [session cget -userName] ixPuts $userName is currently logged in

A-250

Ixia Tcl Development Guide

session

# Logout session logout # And check again set userName [session cget -userName] ixPuts $userName is currently logged in

SEE ALSO

ixLogin, ixLogout

Ixia Tcl Development Guide

A-251

sonet

NAME - sonet
sonet - configure the sonet properties of a POS port of a card on a chassis. SYNOPSIS DESCRIPTION sonet sub-command options The sonet command is used to configure the sonet properties of a POS port of a card on a chassis. Note: sonet error insertion is now handled by the sonetError command; sonet commands related to error insertion are now deprecated.

STANDARD OPTIONS
apsType

Sets the Automatic Protection Switching (APS) bytes. Options include:


Option linearAps Value 0 Usage (default) The K1 and K2 Automatic Protection Switching (APS) bytes bit definitions represent a linear topology. The K1 and K2 Automatic Protection Switching (APS) bytes bit definitions represent a ring topology.

ringAps

C2byteExpected C2byteTransmit

Received path signal label. (default = CF) Register-programmable path signal label. (default = CF) Enables or disables custom K1K2. (default = disable) Enables or disables data scrambling in the sonet framer. (default = enable) Enable sonet header type. Options include:
Option sonetHdlcPppIp sonetCiscoHdlc sonetOther sonetFrameRelay1490 sonetFrameRelay2427 sonetSrp sonetCiscoHdlcIpv6 sonetHdlcPppIso Value 0 1 2 3 3 5 6 7 (default) Usage

disable

customK1K2 enable/ dataScrambling header

enable/disable

sonetFrameRelayCisco 4

interfaceType

Sets the type/speed of the sonet interface. Options include:


Option oc3 oc12 Value 0 1 (default) Usage

A-252

Ixia Tcl Development Guide

sonet

Option oc48 stm1c stm4c stm16c oc192 stm64c ethOverSonet ethOverSdh

Value 2 3 4 5 6 7 8 9

Usage

k1NewState

Enables the K1 byte code value to be sent in the Sonet frame. (It is used by sonnet APS (automatic protection switching) to implement a bit-oriented protocol for critical switching operations). (default = 0) Enables the K2 byte code value as in k1NewState. (default = 0) Enables/disables line error handling on the sonet interface. (default = disable) Enables or disables line scrambling in the sonet framer. Applies only to the POS/ sonet interface ports. (default = enable) Sets up the sonet interface/operation either as normal mode or loopback mode. Options include:
Option sonetNormal sonetLoopback sonetLineLoopback sonetFramerParallelDiagnostic Loopback sonetFramerDiagnosticLoopback Value 0 1 2 3 4 (default) Usage

k2NewState lineErrorHandling

enable/disable
lineScrambling

enable/disable
operation

pathErrorHandling

enable/disable
rxCrc

Enables or disables path error handling on the sonet interface. (default = disable) Sets the receive CRC mode. Options include:
Option sonetCrc16 sonetCrc32 Value 0 1 (default) Usage

txCrc

Sets the transmit CRC mode. Options include:


Option sonetCrc16 sonetCrc32 Value 0 1 (default) Usage

useRecoveredClock

true/false

Set the sonet framer to use the recovered clock. (default = true)

Ixia Tcl Development Guide

A-253

sonet

DEPRECATED STANDARD OPTIONS


B1 enable/disable

Enables or disables insertion of B1 errors; only applies if insertBipErrors is set to true. (default = disable) Enables or disables insertion of B2 errors; only applies if insertBipErrors is set to true. (default = disable) Enables or disables insertion of B3 errors; only applies if insertBipErrors is set to true. (default = disable) The amount of time, expressed in seconds, between periodic error insertions as indicated by the periodB1, periodicB2, periodicB3, and periodicLossOfFrame. Enables or disables inserting of Bip errors; see B1/B2/B3. (default = false) Force loss of frame condition. (default = false) Force loss of signal condition. (default = false) Enables or disables the period insertion of B1 errors; only applies if insertBipErrors is set to true. The frequency with which the errors are inserted is controlled by the errorDuration option. (default = disable) Enables or disables the period insertion of B2 errors; only applies if insertBipErrors is set to true. The frequency with which the errors are inserted is controlled by the errorDuration option. (default = disable) Enables or disables the period insertion of B3 errors; only applies if insertBipErrors is set to true. The frequency with which the errors are inserted is controlled by the errorDuration option. (default = disable) Force a periodic loss of frame condition. The frequency with which the errors are inserted is controlled by the errorDuration option. (default = false) Force a periodic loss of signal condition. The frequency with which the errors are inserted is controlled by the errorDuration option. (default = false) The sonet command is invoked with the following sub-commands. If no subcommand is specified, returns a list of all sub-commands available.

B2 enable/disable

B3 enable/disable

errorDuration

insertBipErrors

true/false

lossOfFrame true/false lossOfSignal true/false periodicB1

enable/disable

periodicB2

enable/disable

periodicB3

enable/disable

enable/disable enable/disable
lossOfSignal

periodicLossOfFrame

COMMANDS sonet cget option

Returns the current value of the configuration option given by option. Option may have any of the values accepted by the sonet command. sonet config option value Modify the configuration options of the port. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for port. If option is specified with no value, then the commands returns a list of values available for this option.

A-254

Ixia Tcl Development Guide

sonet

sonet get chasID cardID portID Gets the current configuration of the port with id portID on card cardID, chassis chasID. from its hardware. Call this command before calling sonet cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number

sonet set chasID cardID portID Sets the configuration of the port in IxTclHAL with id portID on card cardID, chassis chasID by reading the configuration option values set by the sonet config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port The port is not a Packet over Sonet port or 10Gigabit WAN.

sonet setDefault Sets default values for all configuration options. EXAMPLES

package require IxTclHal # Connect to chassis and get chassis ID set host localhost ixInitialize $host set chas [ixGetChassisID $host] # Assuming that an OC48 POS card is in slot 8 set card 8 set portList [list [list $chas $card 1]] # Get the type of card and check if its the correct type set ifType [card getInterface $chas $card] if {$ifType != $::interfaceOc48} \ { ixPuts Card $card is not an OC48c POS card } \ else \ { # Reset to the defaults and then set several values sonet setDefault sonet config -interfaceType oc48 sonet config -header sonetCiscoHdlc sonet config -lineErrorHandling enable sonet config -rxCrc sonetCrc16 sonet config -txCrc sonetCrc16 # Send to ixTclHal and thence to the hardware sonet set $chas $card 1 ixWriteConfigToHardware portList }

SEE ALSO

card, port, sonetError

Ixia Tcl Development Guide

A-255

sonetError

NAME - sonetError
sonetError - configure the sonet error generation of a POS port of a card on a chassis. SYNOPSIS DESCRIPTION sonetError sub-command options The sonetError command is used to configure the sonet error generation properties of a POS port of a card on a chassis.

STANDARD OPTIONS
consecutiveErrors

The number of consecutive error frames to insert when an error is inserted either periodically, continuously or only once. (default = 1) If insertionMode is set to sonetPeriodic, then this is the period of time or number of frames to insert errors over, depending on the setting of errorUnits. A value of 1 will always be used for OC12/OC3 ports. (default = 1) If insertionMode is set to sonetPeriodic, then this determines whether errorPeriod refers to time (expressed in seconds) or frames. OC12/OC3 cards may only use units of seconds. One of:
Option sonetFrames sonetSeconds Value 0 1 Notes (default) errorPeriod expressed in number of frames errorPeriod expressed in number of seconds

errorPeriod

errorUnits

insertionMode

The periodicity of error insertion. One of:


Option sonetContinuous sonetPeriodic sonetOff Value 0 1 2 Notes Errors are inserted continuously Errors are inserted periodically as determined by errorPeriod and errorUnits (default) Errors are not inserted

sonetErrorType

Read-only. When a error configuration is read back with sonetError getError, this reflects the sonet error type. One of:
Option sonetLofError sonetBip1Error sonetBip2Error sonetBip3Error sonetLineAis sonetLineRei sonetLineRdi sonetPathAis sonetPathRei Value 1 2 3 4 5 6 7 9 10 Loss of Frame BIP 1 BIP 2 BIP 3 Line AIS Line REI Line RDI Path AIS Path REI Usage

A-256

Ixia Tcl Development Guide

sonetError

COMMANDS

The sonet command is invoked with the following sub-commands. If no subcommand is specified, returns a list of all sub-commands available.

sonetError cget option Returns the current value of the configuration option given by option. Option may have any of the values accepted by the sonet command. sonetError config option value Modify the configuration options of the port. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for port. sonetError get chasID cardID portID Gets the current sonetError configuration for all of the sonet error types for the port indicated from its hardware. Call this command before calling sonet cget option value to get the value of the configuration option. Specific errors are:
No connection to a chassis Invalid port number The port is not a Packet over Sonet port.

sonetError getError sonetErrorType Retrieves the values of the attributes (insertionMode, consecutiveErrors, errorPeriod, and errorUnits) associated with the sonetErrorType. See the description of sonetErrorType above for a list of the possible values of sonetErrorType. The sonetError get command must be used before getError. sonetError insertError sonetErrorType chasID cardID portID Inserts a single instance of the error defined by sonetErrorType and in the standard options into the sonet stream for the indicated port. sonetError set chasID cardID portID Sets the configuration of the port in IxTclHAL with id portID on card cardID, chassis chasID by reading the configuration option values set by the sonet config option value command. Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user The configured parameters are not valid for this port The port is not a Packet over Sonet port or 10Gigabit WAN.

sonetError setDefault Sets default values for all configuration options and resets all hardware configuration as well. sonetError setError sonetErrorType Sets the attributes (insertionMode, consecutiveErrors, errorPeriod, and errorUnits) associated with the sonetErrorType. See the description of sonetErrorType above for a list of the possible values of sonetErrorType. The sonetError set command should be used after this command to write the values to the hardware.

Ixia Tcl Development Guide

A-257

sonetError

sonetError start chasID cardID portID Starts sonet error insertion on the selected port.Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user The port is not a Packet over Sonet port or 10Gigabit WAN.

sonetError stop chasID cardID portID Stops sonet error insertion on the selected port.Specific errors are:
No connection to a chassis Invalid port number The port is being used by another user The port is not a Packet over Sonet port or 10Gigabit WAN.

EXAMPLES

package require IxTclHal proc printState {} \ { for {set errType $::sonetLofError} {$errType < $::sonetPathRei} {incr errType} { sonetError getError $errType ixPuts ixPuts -nonewline insertionMode: ixPuts -nonewline [sonetError cget -insertionMode] ixPuts -nonewline errorPeriod: ixPuts -nonewline [sonetError cget -errorPeriod] ixPuts -nonewline errorUnits: ixPuts -nonewline [sonetError cget -errorUnits] ixPuts -nonewline consecutiveErrors: ixPuts [sonetError cget -consecutiveErrors] } } # Connect to chassis and get chassis ID set host localhost ixInitialize $host set chas [ixGetChassisID $host] # Assuming that an OC48 POS card is in slot 8 set card 8 set portList [list [list $chas $card 1]] # Get the type of card and check if its the correct type set ifType [card getInterface $chas $card] if {$ifType != $::interfaceOc48} \ { ixPuts Card $card is not an OC48c POS card } \ else \ { sonetError setDefault ixPuts ixPuts Initial State: printState sonetError config -insertionMode sonetContinuous sonetError config -consecutiveErrors 5 sonetError setError sonetLofError

A-258

Ixia Tcl Development Guide

sonetError

sonetError sonetError sonetError sonetError sonetError

config -insertionMode sonetPeriodic config -errorUnits sonetSeconds config -errorPeriod 10 config -consecutiveErrors 20 setError sonetBip1Error

sonetError set $chas $card 1 ixWritePortsToHardware portList sonetError get $chas $card 1 ixPuts After changes: printState sonetError start $chas $card 1 after 1000 sonetError stop $chas $card 1 sonetError setDefault sonetError config -consecutiveErrors 4 sonetError insertError sonetLineAis $chas $card 1 }

SEE ALSO

card, port, sonet

Ixia Tcl Development Guide

A-259

stat

NAME - stat
stat - gets the statistics on a port of a card on a chassis. SYNOPSIS DESCRIPTION stat sub-command options The stat command is used to get statistics. Statistics may be gathered in several ways. All statistics may be obtained through the use of the stat get allStats <chassis> <card> <port> followed by calls to get the data using stat cget -statName. All rate statistics may be obtained through the use of the stat getRate allStats <chassis> <card> <port> followed by calls to get the data using stat cget -statName. An individual statistic may be collected through the use of the stat get statName <chassis> <card> <port> followed by stat cget -statName. Note that the statName is formed from the standard option name by prepending stat to the name and capitalizing the first letter of the option. (E.g. for the option framesSent, the statName is statFramesSent.) The statistic is also available through stat cget -counterVal and the corresponding rate is available through stat cget -counterRate. No call to stat getRate is needed to get the rate. Values are available through the STANDARD OPTIONS following the stat cget call. When using stat cget -statName, only those statistics valid for that type of port are returned; all others will return an error (see the enableValidStats option). Refer to Available Statistics for a list of which statistics are available for particular card modules and under particular circumstances. STANDARD OPTIONS Standard Options controlling statistics modes and operation
enableArpStats

true/false true/false true/false true/false true/false

Enables the collection of the protocol servers ARP statistics. enableProtocolServerStats must also be set to true. (default = true) Enables the collection of the protocol servers BGP4 statistics. enableProtocolServerStats must also be set to true. (default = false) Enables the collection of the protocol servers ICMP statistics. enableProtocolServerStats must also be set to true. (default = true) Enables the collection of the protocol servers ISIS statistics. enableProtocolServerStats must also be set to true. (default = false) Enables the collection of the protocol servers OSPF statistics. enableProtocolServerStats must also be set to true. (default = false) Enables the collection of extended PoS extended statistics, for POS cards only. (default = true) Master enable for the protocol server. This must be set to true for ARP, BGP and ICMP statistics. (default = true)

enableBgpStats

enableIcmpStats

enableIsisStats

enableOspfStats

enablePos ExtendedStats

true/false

enableProtocol ServerStats true/false

A-260

Ixia Tcl Development Guide

stat

enableRsvpStats

true/false

Enables the collection of the protocol servers RSVP statistics. enableProtocolServerStats must also be set to true. (default = false) Enables the collection of statistics from temperature sensors. (default = true) Enables the collection of extended USB extended statistics, for USB cards only. (default = true) If set, then stat cget -statName calls for statistics invalid for the ports type will return an error. If unset, then all stat cget -statName will return without error, but the invalid statistics will have default values. (default = 0) Sets the mode of the statistic counters. The following modes can be read:
Option statNormal statQos statStreamTrigger statModeChecksumErrors statModeDataIntegrity Value 0 1 2 3 4 (default) Reuses 8 hardware counters to count QoS packets Reuses two hardware counters: User-Defined Statistics Counters 5 and 6. Reuses 6 hardware counters to count IP, TCP, UDP checksum errors. Reuses 2 hardware counters. Usage

enableTemperature SensorStats true/false enableUsbExtended Stats true/false enableValidStats

true / false

mode

Standard Options used to retrieve statistics


alignmentErrors

Read-only. 64-bit value. Number of frames received with alignment errors on a 10/100 port. Read-only. 64-bit value. Part of the OC-192 - Temperature Sensors Statistics. Temperature of the Background chip. Read-only. 64-bit value. For BERT - the number of seconds which have occurred during Available Periods. Read-only. For BERT the ratio of Background Block Errors (BBEs) to the total number of blocks. Read-only. 64-bit value. For BERT - the number of errored blocks not occurring as part of a Severely Errored Second. Read-only. For BERT the ratio of the number of errored bits compared to the total number of bits transmitted. Read-only. 64-bit value. For BERT - the total number of bit errors received. Read-only. 64-bit value. For BERT - the total number of bit errors sent. Read-only. 64-bit value. For BERT - the total number of bits received. Read-only. 64-bit value. For BERT - the total number of bits sent.

background Temperature bertAvailableSeconds

bertBackgroundBlock ErrorRatio bertBackgroundBlock Errors bertBitErrorRatio

bertBitErrorsReceived bertBitErrorsSent bertBitsReceived bertBitsSent

Ixia Tcl Development Guide

A-261

stat

bertBlockErrorState

Read-only. For BERT - whether the link is in an available or unavailable state. One of:
Option statBertUnavailablePeriod statBertAvailablePeriod Value 0 1 Usage Link is currently unavailable. Link is currently available.

bertElapsedTestTime

Read-only. 64-bit value. For BERT - the elapsed test time, expressed in seconds in the APIs. Read-only. 64-bit value. For BERT - the number of blocks containing at least one errored second. Read-only. 64-bit value. For BERT - the number of seconds with no errored blocks or defects. Read-only. For BERT - (ESR); the ratio of Errored Seconds (ES) to the total seconds. Read-only. 64-bit value. For BERT - the number of seconds containing at least one errored block or a defect. Read-only. 64-bit value. For BERT - a service disruption is the period of time during which
the service is unavailable while switching rings. The SONET spec calls for this to be less than 50 ms. This value is the length of the last service disruption that occurred, expressed in milliseconds

bertErroredBlocks

bertErrorFree Seconds bertErroredSecond Ratio bertErroredSeconds

bertLastService DisruptionTime

bertMaxService DisruptionTime bertMinService DisruptionTime bertMismatchedOnes Ratio bertMismatchedZeros Ratio bertNumber MismatchedOnes bertNumber MismatchedZeros bertSeverelyErrored SecondRatio bertServiceDisruption Cumulative

Read-only. 64-bit value. For BERT - the longest service disruption that occurred, expressed in milliseconds. Read-only. 64-bit value. For BERT - the shortest service disruption that occurred, expressed in milliseconds. Read-only. The number of expected ones that where received as zeroes. Read-only. The ratio of mismatched ones to the total number of bits. Read-only. 64-bit value. The number of expected zeroes that where received as ones. Read-only. 64-bit value. The ratio of mismatched zeroes to the total number of bits. Read-only. For BERT - (SESR); the ratio of Severely Errored Seconds (SESs) to the total seconds. Read-only. 64-bit value. For BERT - the total service disruption time encountered, expressed in milliseconds.

A-262

Ixia Tcl Development Guide

stat

bertStatus

Read-only. 64-bit value. For BERT - the status of the receive connection. One of:.
Option statBertNotLocked statBertLockedOnInvertedAllZero statBertLockedOnInverted AlternatingOneZero statBertLockedOnInverted UserDefinedPattern statBertLockedOnInverted 2to31powerLinearFeedbackShiftReg statBertLockedOnInverted 2to11powerLinearFeedbackShiftReg statBertLockedOnInverted 2to15powerLinearFeedbackShiftReg statBertLockedOnInverted 2to20powerLinearFeedbackShiftReg statBertLockedOnInverted 2to23powerLinearFeedbackShiftReg statBertLockedOnAllZero statBertLockedOnAlternatingAllZero statBertLockedOn 2to31powerLinearFeedbackShiftReg statBertLockedOn 2to11powerLinearFeedbackShiftReg statBertLockedOn 2to15powerLinearFeedbackShiftReg statBertLockedOn 2to20powerLinearFeedbackShiftReg statBertLockedOn 2to23powerLinearFeedbackShiftReg Value 0 1 2 3 4 5 6 7 8 9 10 12 13 14 15 16 None. Inverted all zeroes. Inverted alternating one-zero. Inverted user defined pattern. Inverted 2**31. Inverted 2**11. Inverted 2**15. Inverted 2**20. Inverted 2**23. All zeroes. Alternating one-zero. User defined pattern. 2**31. 2**11. 2**15. 2**20. 2**23. Pattern Locked

statBertLockedOnAlternatingOneZero 11

bertUnavailable Seconds bgpTotalSessions

Read-only. 64-bit value. For BERT - the number of seconds which have occurred during Unavailable Periods. Read-only. 64-bit value. For BGP4 - the number of BGP4 sessions that were configured.

bgpTotalSessions Established bytesReceived bytesSent captureFilter

Read-only. 64-bit value. (For BGP4) The number of configured BGP4 sessions that
established adjacencies.

Read-only. 64-bit value. Number of bytes received. Read-only. 64-bit value. Number of bytes transmitted. Read-only. 64-bit value. Number of frames received meeting the capture filter criteria set up using filter command. This counter is available when stat mode is set to statNormal.

Ixia Tcl Development Guide

A-263

stat

captureState

Read-only. Reflects the current state of capture. The following states can be read:
Option statIdle statActive Value 0 1 capture stopped port currently capturing Usage

captureTemperature

Read-only. 64-bit value. Part of the OC-192 - Temperature Sensors Statistics. Temperature of the Capture chip.

captureTrigger

Read-only. 64-bit value. Number of frames received meeting the capture trigger criteria set up using filter command. This counter is available when stat mode is set to statNormal. Read-only. 64-bit value. Number of frames received with collisions. Read-only. 64-bit value. Number of collisions. Read-only. 64-bit value. The rate of the value of the statistic counter. Read-only. 64-bit value. The value of the statistic counter. Read-only. 64-bit value. Number of frames that have data integrity error. Read-only. 64-bit value. Number of frames that match data integrity signiture. Read-only. 64-bit value. Part of the OC-192 - Temperature Sensors Statistics. Temperature of the DMA chip.

collisionFrames collisions counterRate counterVal dataIntegrityErrors dataIntegrityFrames dmaTemperature

dribbleErrors

Read-only. 64-bit value. Number of frames received with dribble errors on a 10/ 100 port. Read-only. The duplex mode configured for the port retrieved by calling the command stat get statAllStats. Read-only. 64-bit value. Number of frames received with excessive collisions. Read-only. 64-bit value. Number of frames received with FCS errors. Read-only. 64-bit value. Number of flow control frames received. Read-only. 64-bit value. Part of the OC-192 - Temperature Sensors Stats. The temperature of the board of the Fiber optic module.

duplexMode

excessiveCollision Frames fcsErrors flowControlFrames fobBoardTemperature

fobDeviceInternal Temperature fobPort1Fpga Temperature fobPort2Fpga Temperature fragments

Read-only. 64-bit value. Part of the OC-192 - Temperature Sensors Stats. The temperature of the FPGA on the Fiber optic module.

Read-only. 64-bit value. Part of the OC-192 - Temperature Sensors Stats. The temperature next to port 1 on the Fiber optic module.

Read-only. 64-bit value. Part of the OC-192 - Temperature Sensors Stats. The temperature next to port 2 on the Fiber optic module.

Read-only. 64-bit value. Number of fragmented frames received.

A-264

Ixia Tcl Development Guide

stat

framerAbort framerFCSErrors framerMaxLength framerMinLength framesReceived framesSent frontEndTemperature

Read-only. 64-bit value. Read-only. 64-bit value. Read-only. 64-bit value. Read-only. 64-bit value. Read-only. 64-bit value. Number of frames received. Read-only. 64-bit value. Number of frames transmitted. Read-only. 64-bit value. Part of the OC-192 - Temperature Sensors Statistics. Temperature of the Front End chip.

inputSignalStrength ipChecksumErrors ipPackets isisSessionConfigured L1 isisSessionConfigured L2 isisSessionsUpL1

Read-only. Monitors receive optical input power. Read-only. 64-bit value. Number of frames transmitted. Read-only. 64-bit value. Number of frames transmitted. Read-only. 64-bit value. The total number of level 1 configured sessions. Read-only. 64-bit value. The total number of level 2 configured sessions. Read-only. 64-bit value. The total number of level 1 configured sessions that are fully up. Read-only. 64-bit value. The total number of level 2 configured sessions that are fully up. Read-only. 64-bit value. Number of frames received with late collisions. Read-only. 64-bit value. Part of the OC-192 - Temperature Sensors Statistics. Temperature of the Latency chip.

isisSessionsUpL2

lateCollisions latencyTemperature

lineAis

Read-only. A flag indicating whether any Line Alarm Indication Signal have been received on an OC port for Packet over Sonet interfaces. Contains a value after the class method stat get statAllStats is used: 0 no errors 1 alarm 2 not applicable

lineAisAlarmSecs

Read-only. 64-bit value. A count of the seconds during which (at any point during the second) at least one Line layer AIS defect was present. Read-only. 64-bit value. Number of Line Bit Interleaved Parity errors received on OC ports for POS interfaces. Read-only. 64-bit value. A count of the seconds during which (at any point during the second) at least one Line layer BIP was detected.

lineBip

lineBipErroredSecs

Ixia Tcl Development Guide

A-265

stat

lineRdi

Read-only. 64-bit value. A flag indicating whether any Line Remote Defect Indicators (former FERF Far End Receive Failure) have been received on an OC ports for Packet over Sonet interfaces. Contains value after the class method stat get statAllStats is used: 0 no errors 1 alarm 2 not applicable

lineRdiUnavailableSecs

Read-only. 64-bit value. A count of the seconds during which the line is considered
unavailable at the far end.

lineRei

Read-only. 64-bit value. Number of Line Remote Error Indications (former FEBE Far End Block Error) received on OC ports for Packet over Sonet interfaces. Read-only. 64-bit value. A count of the seconds during which at least one line BIP error
was reported by the far end.

lineReiErroredSecs

lineSpeed link

Read-only. The speed configured for the port. Read-only. The state of the link. The following states can be read from the port:
Option linkDown Value 0 Usage The link on the port is down. This may be because there is no cable connected to the port or the link on the destination port may be down. The LED on the card is off when the link is down. (default) the link is up indicated by green LED on the card. the port has been set to loopback mode. The LED on the card is off in this mode. the link goes into this state when the configuration of 10/100 port is being written to hardware (applicable to 10/100 only) restarts the auto-negotiation process the link is in currently executing the auto-negotiation process failed to write into memory for 10/100 ports (applicable to 10/100 only) No external transceiver detected on Ixia Mii or Rmii port. No PHY detected at the selected address. PPP link negotiation state. This is an intermediate state and should be used for informational purposes only. Initialization state at the start of the negotiation process. Auto negotiation state in negotiation process. This is an intermediate state and should be used for informational purposes only. Auto negotiation state in negotiation process. No link partner was found. This is an intermediate state and should be used for informational purposes only

linkUp linkLoopback miiWrite

1 2 3

restartAuto autoNegotiating miiFail noTransceiver invalidAddress pppInit

4 5 6 7 8 19

readLinkPartner

noLinkPartner

10

A-266

Ixia Tcl Development Guide

stat

Option restartAutoEnd

Value 11

Usage Auto negotiation state in negotiation process. This is an intermediate state and should be used for informational purposes only. Fpga download failure. Port will not be usable. No GBIC module detected on Ixia GBic port. State in board initialization process. This is an intermediate state and should be used for informational purposes only. State in board initialization process. This is an intermediate state and should be used for informational purposes only. PPP is disabled. PPP control packets will be ignored; PPP link negotiation will not be performed. Does not mean the link is unusable; it may, for instance, be configured for Cisco/HDLC and traffic (non-PPP) may still flow. The fully operational state when PPP is enabled. PPP link negotiation has successfully completed and the link is available for normal data traffic. The non-operational state when PPP is enabled. PPP link negotiation has failed or the link has been administratively disabled. PPP link negotiation state: Waiting for indication from PPP controller that auto-negotiation and related PPP control packet transfers can proceed. This is an intermediate state and should be used for informational purposes only. PPP link negotiation state: In process of exchanging PPP control packets (e.g., LCP and IPCP) to negotiate link parameters. This is an intermediate state and should be used for informational purposes only. PPP link negotiation state: The PPP session has been terminated. All data traffic will stop. PPP link negotiation state: Negotiation has successfully completed; the peers are logically connected. Normal data traffic may flow once the pppUp state is reached. This is an intermediate state and should be used for informational purposes only. PPP link negotiation state, following explicit request to restart negotiation process: this state indicates response to request.This is an intermediate state and should be used for informational purposes only. PPP link negotiation state, following explicit request to restart negotiation process: the link has or will be brought down in order to begin a new negotiation cycle. This is an intermediate state and should be used for informational purposes only. PPP link negotiation state, following explicit request to restart negotiation process: Waiting for indication from PPP controller that current connection is already down or is in process of being shut down. This is an intermediate state and should be used for informational purposes only.

fpgaDownloadFail noGbicModule fifoReset

12 13 14

fifoResetComplete

15

pppOff

16

pppUp

17

pppDown

18

pppWaitForOpen

20

pppAutoNegotiate

21

pppClose pppConnect

22 23

pppRestartNegotiation

28

pppRestartInit

29

pppRestartWaitFor Open

30

Ixia Tcl Development Guide

A-267

stat

Option pppRestartWaitFor Close

Value 31

Usage PPP link negotiation state, following explicit request to restart negotiation process: Waiting for indication from PPP controller that shut down of current connection has completed.This is an intermediate state and should be used for informational purposes only. PPP link negotiation state, following explicit request to restart negotiation process: Preparation for restart completed; ready to begin normal cycle again. This is an intermediate state and should be used for informational purposes only. local processor boot failure Physical link is down. (e.g., loss of signal, loss of frame) PPP link negotiation state: Physical link has gone down and PPP negotiation has been stopped. Communication with the local processor has failed. Check Server display and log for possible failure. The restart PPP state machine has been activated. Initializing the PPP state machine and commanding a restart to the PPP engine. Waiting for the PPP engine to begin renegotiation. Waiting for the PPP engine to close the PPP link prior to renegotiating the link. Renegotiation has started (LCP is in process) and control is transferring to the main PPP state machine. The CPU on the port is not operating.

pppRestartFinish

32

localProcessorDown lossOfSignal lossOfFramePpp Disabled stateMachineFailure pppRestartNegotiatin pppRestartInit pppRestartWaitFor Open pppRestartWaitFor Close pppRestartFinish localProcessorDown

33 25 26 27 28 29 30 31 32 33

ospfFullNeighbors ospfTotalSessions

Read-only. 64-bit value. For OSPF - the number of OSPF neighbors that are fully up. Read-only. 64-bit value. For OSPF - the number of OSPF sessions that were configured.

overlayTemperature

Read-only. 64-bit value. Part of the OC-192 - Temperature Sensors Statistics. Temperature of the Overlay chip.

oversize

Read-only. 64-bit value. Number of oversized frames received (greater than 1518 bytes). Read-only. 64-bit value. Only available for Gigabit modules. Number of frames received with oversize and CRC errors. Read-only. A flag indicating whether any Path Alarm Indication Signals have been received on an OC ports for Packet over Sonet interfaces. Contains a value after the class method stat get statAllStats is used: 0 no errors 1 alarm 2 not applicable

oversizeAndCrcErrors

pathAis

pathAisErroredSecs

Read-only. 64-bit value. A count of the seconds during which (at any point during the second) at least one Path AIS error was detected.

A-268

Ixia Tcl Development Guide

stat

pathAisUnavailableSecs

Read-only. 64-bit value. A count of the seconds during which the STS path was considered unavailable.

pathBip

Read-only. 64-bit value. Number of Path Bit Interleaved Parity errors received on OC ports for Packet over Sonet interfaces. Read-only. 64-bit value. A count of the seconds during which (at any point during the second) at least one Path BIP error was detected. Read-only. A flag indicating whether any Path LOP indications have been received on an OC ports for Packet over Sonet interfaces. Contains a value after the class method stat get statAllStats is used: 0 no errors 1 alarm 2 not applicable

pathBipErroredSecs

pathLossOfPointer

pathPlm

Read-only. A flag indicating whether any Path Label Mismatch indications have been received on an OC ports for Packet over Sonet interfaces. Contains a value after the class method stat get statAllStats is used: 0 no errors 1 alarm 2 not applicable

pathRdi

Read-only. A flag indicating whether any Path Remote Defect Indicators (former FERF Far End Receive Failure) have been received on an OC ports for Packet over Sonet interfaces. Contains a value after the class method stat get statAllStats is used: 0 no errors 1 alarm 2 not applicable

pathRdiUnavailable Secs pathRei

Read-only. 64-bit value. A count of the seconds during which the STS path was considered unavailable at the far end.

Read-only. 64-bit value. Number of Path Remote Error Indications (former FEBE Far End Block Error) received on OC ports for Packet over Sonet interfaces. Read-only. 64-bit value. A count of the seconds during which (at any point during the second) at least one STS Path error was reported by the far end. Read-only. 64-bit value. For 10Gbe the number of received pause acknowledge messages. Read-only. 64-bit value. For 10Gbe the number of received pause end frame messages. Read-only. 64-bit value. For 10Gbe the temperature observed at the transmit FPGA.

pathReiErroredSecs

pauseAcknowledge

pauseEndFrames

pauseOverwrite

Ixia Tcl Development Guide

A-269

stat

pauseState

Read-only. Reflects whether the port is in pause transmit mode. The following states can be read:
Option statIdle statActive Value 0 1 Usage transmit pause not enabled transmit pause enabled

plmDevice1Internal Temperature plmDevice2Internal Temperature plmDevice3Internal Temperature posK1Byte

Read-only. 64-bit value. Part of the OC-192 - Temperature Sensors Statistics. Temperature of the PLM measuring device #1 chip. Read-only. 64-bit value. Part of the OC-192 - Temperature Sensors Statistics. Temperature of the PLM measuring device #2 chip. Read-only. 64-bit value. Part of the OC-192 - Temperature Sensors Statistics. Temperature of the PLM measuring device #3 chip. Read-only. 64-bit value. The current K1 byte code value being received in the Sonet frame. Read-only. 64-bit value. The current K2 byte code value being received in the Sonet frame. Read-only. 64-bit value. Number of frames received by the protocol server when it is enabled using the protocolServer command. Read-only. 64-bit value. Number of frames transmitted by the protocol server when it is enabled using the protocolServer command. Read-only. 64-bit value. Number of frames counted by Quality of Service Counter 0 through 7 that meet the criteria set up using the qos command. This counter is available when stat mode is set to statQos. Read-only. 64-bit value. The number of egress LSPs configured and running. Read-only. 64-bit value. The number of ingress LSPs configured. Read-only. 64-bit value. The number of ingress LSPs configured and running. Read-only. 64-bit value. Number of ARP reply frames received by the protocol server when it is enabled for ARP using the protocolServer command. Read-only. 64-bit value. Number of ARP request frames received from a DUT by the protocol server when it is enabled for ARP using the protocolServer command. Read-only. 64-bit value. Number of PING reply frames received by the protocol server when it is enabled for PING using the protocolServer command. Read-only. 64-bit value. Number of PING request frames received from a DUT by the protocol server when it is enabled for PING using the protocolServer command. . Read-only. 64-bit value. The temperature at the scheduler chip.

posK2Byte

protocolServerRx

protocolServerTx

qualityOfService0-7

rsvpEgressLSPsUp rsvpIngressLSPs Configured rsvpIngressLSPsUp rxArpReply

rxArpRequest

rxPingReply

rxPingRequest

schedulerTemperature

A-270

Ixia Tcl Development Guide

stat

sectionBip

Read-only. 64-bit value. Number of section BIP errors received on OC ports for Packet over Sonet interfaces. Read-only. 64-bit value. A count of the number of seconds during which (at any point during the second) at least one section layer BIP was detected. Read-only. 64-bit value. Number of section LOF indications received on OC ports for Packet over Sonet interfaces. Read-only. 64-bit value. Number of section LOS indications received on OC ports for Packet over Sonet interfaces. Read-only. 64-bit value. A count of the number of seconds during which (at any point during the second) at least one section layer LOS defect was present. Read-only. 64-bit value. Number of sequence errored frames. Read-only. 64-bit value. Number of signiture matched frames. Read-only. 64-bit value. User-Defined Statistic counter 5 indicating number of frames received that meet the filtering criteria set up using the filter command. To use this counter the stat mode has to be set to statStreamTrigger. Read-only. 64-bit value. User-Defined Statistic counter 6 indicating number of frames received that meet the filtering criteria set up using the filter command. To use this counter the stat mode has to be set to statStreamTrigger. Read-only. 64-bit value. Number of frames received with symbol errors (gigabit only). Read-only. 64-bit value. Number of symbol errors. Read-only. 64-bit value. Number of frames with synchronized errors (gigabit only). Read-only. 64-bit value. Read-only. 64-bit value. Read-only. 64-bit value. For 10Gbe the temperature at the LAN receive FPGA. Read-only. 64-bit value. For 10Gbe the temperature at the LAN transmit FPGA. Read-only. 64-bit value. Transmit duration. Read-only. Reflects the current state of transmit. The following states can be read:
Option statIdle statActive Value 0 1 transmit stopped port currently transmitting Usage

sectionBipErroredSecs

sectionLossOfFrame

sectionLossOfSignal

sectionLossOfSignal Secs sequenceErrors sequenceFrames streamTrigger1

streamTrigger2

symbolErrorFrames

symbolErrors synchErrorFrames

tcpChecksumErrors tcpPackets tenGigLanRxFpga Temperature tenGigLanTxFpga Temperature transmitDuration transmitState

Ixia Tcl Development Guide

A-271

stat

txArpReply

Read-only. 64-bit value. Number of ARP reply frames transmitted for ARP requests received by the protocol server when it is enabled for ARP using the protocolServer command. Read-only. 64-bit value. Number of ARP reply frames transmitted by the protocol server when it is enabled for ARP using the protocolServer command. Read-only. 64-bit value. Number of PING reply frames transmitted for PING requests received by the protocol server when it is enabled for PING using protocolServer command. Read-only. 64-bit value. Number of PING request frames transmitted by the protocol server when it is enabled for PING using the protocolServer command. Read-only. 64-bit value. Read-only. 64-bit value. Read-only. 64-bit value. Number of undersized frames (less than 64 bytes) received. Read-only. 64-bit value. Part of the USB Extended Statistics The last data packet
received contained a bit stuffing violation.

txArpRequest

txPingReply

txPingRequest

udpChecksumErrors udpPackets undersize

usbRxBitStuffing

usbRxBufferOverrun

Read-only. 64-bit value. Part of the USB Extended Statistics. Receiving port receives
data faster than it can be written to system memory.

usbRxCRCError

Read-only. 64-bit value. Part of the USB Extended Statistics. Receiving port receives
data faster than it can be written to system memory.

usbRxDataOverrun

Read-only. 64-bit value. Part of the USB Extended Statistics. The amount of data returned exceeded the size of: the maximum data packet allowed, or the remaining amount of memory in the buffer. Read-only. 64-bit value. Part of the USB Extended Statistics. The endpoint sent less
than maximum packet size, so the specified buffer is not filled.

usbRxdataUnderrun

usbRxDeviceNot Responding usbRxNoError

Read-only. 64-bit value. Part of the USB Extended Statistics. The receive device did
not respond to a token sent by the transmit device.

Read-only. 64-bit value. Part of the USB Extended Statistics. Data packets received
with no errors.

usbRxNotAccessed

Read-only. 64-bit value. Part of the USB Extended Statistics. This code is set by the software before the DUT is placed in a queue for processing. Read-only. 64-bit value. Part of the USB Extended Statistics. Check bits in the PID
from the endpoint failed on data PID.

usbRxPIDCheckFail

usbRxStall usbRxToggleMismatch

Read-only. 64-bit value. Part of the USB Extended Statistics. Received a Stall PID. Read-only. 64-bit value. Part of the USB Extended Statistics. The data toggle PID for the last data packet received did not match the expected value.

A-272

Ixia Tcl Development Guide

stat

usbRxUnexpectedPID

Read-only. 64-bit value. Part of the USB Extended Statistics. Received an invalid PID
or undefined PID value.

usbTxBufferUnderrun

Read-only. 64-bit value. Part of the USB Extended Statistics. During transmission, cannot retrieve data from system memory and send out fast enough to keep up with the USB data rate. Read-only. 64-bit value. Part of the USB Extended Statistics. The transmit device did
not provide a handshake to the receive device.

usbTxDeviceNot Responding usbTxNoError

Read-only. 64-bit value. Part of the USB Extended Statistics. Data packets sent with no
errors.

usbTxNotAccessed

Read-only. 64-bit value. Part of the USB Extended Statistics. This code is set by software before the DUT is placed in a queue for processing. Read-only. 64-bit value. Part of the USB Extended Statistics. Check bits in the PID
from the endpoint failed on handshake

usbTxPIDCheckFail

usbTxStall usbTxUnexpectedPID

Read-only. 64-bit value. Part of the USB Extended Statistics. Transmitted a Stall PID. Read-only. 64-bit value. Part of the USB Extended Statistics. Transmitted an invalid PID or undefined PID value. Read-only. 64-bit value. Number of frames counted by User Defined Statistics Counter 1 that meet the criteria set up using the filter command. This counter is available when stat mode is set to statNormal. Read-only. 64-bit value. Number of frames counted by User Defined Statistics Counter 2 that meet the criteria set up using the filter command. This counter is available when stat mode is set to statNormal. Read-only. 64-bit value. Number of VLAN Tagged frames received. The stat command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

userDefinedStat1

userDefinedStat2

vlanTaggedFramesRx

COMMANDS stat cget option

Returns the current value of the configuration option given by option. Option may have any of the values accepted by the stat command. Specific errors include:
Invalid statistic for port.

stat config option value Modify the configuration options of the statistics. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for capture. stat get counterType chasID cardID portID Gets the statistics counter of type counterType. Note that the counterType is formed from the standard option name by prepending stat to the name and capitalizing the first letter of the option. (E.g. for the option framesSent, the stat-

Ixia Tcl Development Guide

A-273

stat

Name is statFramesSent.) The special counterType allStats will make all of the statistics available through the options. A value of counterType other than allStats will make just that counter available through the counterVal option and the corresponding rate will be available through the counterRate option as well as the appropriately named option. Refer to Available Statistics for a list of the statistics names and the cases under which they are available. (Actually, the counterType value is irrelevant in the operation of this command; any value, legal or not, will cause all statistics to be fetched as in allStats). stat getCaptureState chasID cardID portID Returns the capture state of the port. See the values associated with the captureState standard option. stat getLineSpeed chasID cardID portID Returns the line speed of the port. See the values associated with the lineSpeed standard option. stat getLinkState chasID cardID portID Returns the link state of the port. See the values associated with the link standard option. stat getRate counterType chasID cardID portID Gets the frame rate for all stats. Note that the counterType is formed from the standard option name by prepending stat to the name and capitalizing the first letter of the option. (E.g. for the option framesSent, the statName is statFramesSent.) The special counterType allStats will make all of the statistics available through the options. Refer to Available Statistics for a list of the statistics names and the cases under which they are available. stat getTransmitState chasID cardID portID Returns the transmit state of the port. See the values associated with the transmitState standard option. stat set chasID cardID portID Sets the configurati