pip install --upgrade ixnetwork-restpy Import a package based on your product:
# The ixnetwork_restpy package is the superset of all IxNetwork products from ixnetwork_restpy import SessionAssistant# The uhd_restpy package is a subset of the ixnetwork_restpy package for the UHD appliance from uhd_restpy import SessionAssistant"""This script demonstrates how to get started with ixnetwork_restpy scripting. The script demonstrates the following: - connect to an IxNetwork test platform, authenticate, add a new session and clear the config - create 1 tx port and 1 rx port - create traffic from the tx port to the rx port - start traffic - print statistics - stop traffic """ from ixnetwork_restpy import SessionAssistant # create a test tool session session_assistant = SessionAssistant(IpAddress='127.0.0.1', LogLevel=SessionAssistant.LOGLEVEL_INFO, ClearConfig=True) ixnetwork = session_assistant.Ixnetwork # create tx and rx port resources port_map = session_assistant.PortMapAssistant() port_map.Map('10.36.74.26', 2, 13, Name='Tx') port_map.Map('10.36.74.26', 2, 14, Name='Rx') # create a TrafficItem resource # TrafficItem acts a a high level container for ConfigElement resources # ConfigElement is a high level container for individual HighLevelStream resources traffic_item = ixnetwork.Traffic.TrafficItem.add(Name='Traffic Test', TrafficType='raw') traffic_item.EndpointSet.add( Sources=ixnetwork.Vport.find(Name='^Tx').Protocols.find(), Destinations=ixnetwork.Vport.find(Name='^Rx').Protocols.find()) # using the traffic ConfigElement resource # update the frame rate # update the transmission control traffic_config = traffic_item.ConfigElement.find() traffic_config.FrameRate.update(Type='percentLineRate', Rate='100') traffic_config.TransmissionControl.update(Type='continuous') # adjust Ethernet stack fields destination_mac = traffic_config.Stack.find(StackTypeId='ethernet').Field.find(FieldTypeId='ethernet.header.destinationAddress') destination_mac.update(ValueType='valueList', ValueList=['00:00:fa:ce:fa:ce', '00:00:de:ad:be:ef'], TrackingEnabled=True) # push ConfigElement settings down to HighLevelStream resources traffic_item.Generate() # connect ports to hardware test ports # apply traffic to hardware # start traffic port_map.Connect(ForceOwnership=True) ixnetwork.Traffic.Apply() ixnetwork.Traffic.StartStatelessTrafficBlocking() # print statistics print(session_assistant.StatViewAssistant('Port Statistics')) print(session_assistant.StatViewAssistant('Traffic Item Statistics')) print(session_assistant.StatViewAssistant('Flow Statistics')) # stop traffic ixnetwork.Traffic.StopStatelessTrafficBlocking()This client package supports versions 8.52 and up of the following servers:
- Linux IxNetwork API Server
- Windows IxNetwork GUI
- Windows IxNetwork Connection Manager
Documentation is available using the following methods:
-
Documentation available in the online doc browser is also inlined in each class, property and method and can be viewed using the python help command
from ixnetwork_restpy import SessionAssistant help(SessionAssistant)
Visit the OpenIxia ixnetwork-restpy sample site maintained by solution architects for in-depth end-to-end samples that demonstrate the following:
- building a configuration
- from scratch
- from an existing IxNetwork configuration
- running the configuration
- connecting ports to hardware
- starting protocols
- starting traffic
- getting statistics
- port stats
- traffic stats
The purpose of this repository is to allow users to clone the auto generated code. We do not accept pull requests in this repository.
Feedback such as bugs/enhancements/questions regarding the ixnetwork-restpy package is welcomed by opening a GitHub issue.