<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2009 sp1 (http://www.altova.com) by Deepesh Arora (private) -->
<!--NOTE: sequence of elements is too rigidly defined now, debugging to make more flexible.  Also debugging use of XIncludes for several repetitive/standard elements -->
<tdca:TesLACommandDefinition xsi:schemaLocation="http://www.TesLAAlliance.org/stds/dca TesLACommandDefinition.xsd" xmlns:tdca="http://www.TesLAAlliance.org/stds/dca" xmlns:cmds="http://www.ixiacom.com/tesla/ixexplorer/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xi="http://www.w3.org/2001/XInclude">
	<!-- binding and procedureCall are per bindingSpec referred to in bindingID attribute.  Each binding has its own spec, namespace and schema for each may be different.  -->
	
	<!-- BINDING IS DEFINED IN THE TCL BINDING SPEC (THIS IS PRE-SPEC)
		  procedureCall procName is name of TCL procedure to call and 
		  paramSequence describes procedure parameters using XPATH syntax
		  procedureCall closest to command function should be used; procedureCall outside command block is default. -->	
	
	<tdca:binding bindingID="http://www.teslaalliance.org/standards/dca/bindings/tcl/" 
		version="1.0.2"  
		language="TCL" 
		displayName="TCL Package"  
		bindingSpec="http://www.teslaalliance.org/standards/dca/bindings/tcl/DCATclBinding.html">	
		<tdca:bindingExtensions xmlns:btcl="http://www.teslaalliance.org/standards/dca/bindings/tcl/">
			<btcl:tclBinding sourceFile="file://./CommandProcedures/ixexplorerDCAProcs.tcl" shellFile="wish80" minShellVersion="8.0">
			</btcl:tclBinding>
		</tdca:bindingExtensions>
	</tdca:binding>
	
	<tdca:procedureCall bindingID="http://www.TesLAAlliance.org/stds/bindings/tcl" 
		callMethod="tclProc" 
		procName="::tesLA::XMLAPI" 
		paramSequence="@name parameters/*">
	</tdca:procedureCall>
	
	<tdca:command name="startSession" displayName="startSession" helpURI="file://./helpFiles/Session.html" supportClass="GA">
		<tdca:keyword>session</tdca:keyword>
		<tdca:keyword>connect</tdca:keyword>

		<!-- all XML generated per the following XSD specs is returned from the bound procedureCall as a string -->
		<tdca:responseXSD>
			<!-- XML Schema segment describing response provided by command (return value) -->
			<xs:element name="tResponse">
				<!-- MANDATORY: TesLA Response MUST be in a tResponse element -->
				<xs:complexType>
					<xs:sequence>
						<xs:element name="logFile" minOccurs="0" maxOccurs="unbounded">
							<!-- RECOMMENDED: list of log files generated with optional format label -->
							<xs:complexType>
								<xs:simpleContent>
									<xs:extension base="xs:anyURI">
										<xs:attribute name="fileFormat" type="xs:string" use="optional"/>
									</xs:extension>
								</xs:simpleContent>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="vcCode" type="xs:int" use="required"/>
					<!-- MANDATORY: MUST have a vendor completion code -->
					<xs:attribute name="tcCode" type="xs:int" use="optional"/>
					<!-- RECOMMENDED: TesLA completion code per http://www.teslaalliance.org/standards/dca/teslaDCAEnums.txt -->
					<xs:attribute name="vcMsg" type="xs:string" use="optional"/>
					<!-- RECOMMENDED: vendor-defined descriptive completion text -->
				</xs:complexType>
			</xs:element>
		</tdca:responseXSD>
		
<!-- all XML generated per the following XSD specs is passed to procName as the parameters argument -->
		<tdca:parameters>
			<tdca:parameter displayName="Chassis" helpURI="file://./HelpFiles/session.html">
				<tdca:paramXSD>
					<xs:element name="chassis">
						<xs:simpleType>
							<xs:restriction base="xs:string">
								<xs:pattern value="[0-2][0-5][0-5].[0-2][0-5][0-5].[0-2][0-5][0-5].[0-2][0-5][0-5]"/>
							</xs:restriction>
						</xs:simpleType>
					</xs:element>
				</tdca:paramXSD>
			</tdca:parameter>
			
			<tdca:parameter displayName="Ports" helpURI="file://./HelpFiles/session.html">
				<tdca:paramXSD>
					<xs:element name="ports">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:pattern value="\{ *(\{ *\d *\d *\d *\} *)+ *\}"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
				</tdca:paramXSD>
				<tdca:vendorExtensions>
					<parameter displayName="Ports" id="ports" use="mandatory" selection="multiple" type="tree" description="" helpUrl="./helpfiles/Start.html">
						<data id="PortListSelection" nodeReference=""/>
					</parameter>
				</tdca:vendorExtensions>
			</tdca:parameter>
			
			<tdca:parameter displayName="Ownership Mode" helpURI="file://./HelpFiles/session.html">
				<tdca:paramXSD>
					<xs:element name="OwnershipMode" default="force">
						<xs:simpleType>
							<xs:restriction base="xs:string">
								<xs:enumeration value="force"/>
								<xs:enumeration value="noForce"/>
							</xs:restriction>
						</xs:simpleType>
					</xs:element>
				</tdca:paramXSD>
			</tdca:parameter>
		</tdca:parameters>

		<tdca:alias>open</tdca:alias>
		<tdca:alias>start</tdca:alias>
		<tdca:alias>connect</tdca:alias>
	</tdca:command>
	
	<tdca:commandGroup description="Commands that are used to control traffic generation" name="Transmit">
		<tdca:command displayName="Start" supportClass="GA" helpURI="./helpfiles/Start.html" description="text" name="String">
			<tdca:responseXSD>
				<!-- XML Schema segment describing response provided by command (return value) -->
				<xs:element name="tResponse">
					<!-- MANDATORY: TesLA Response MUST be in a tResponse element -->
					<xs:complexType>
						<xs:sequence>
							<xs:element name="logFile" minOccurs="0" maxOccurs="unbounded">
								<!-- RECOMMENDED: list of log files generated with optional format label -->
								<xs:complexType>
									<xs:simpleContent>
										<xs:extension base="xs:anyURI">
											<xs:attribute name="fileFormat" type="xs:string" use="optional"/>
										</xs:extension>
									</xs:simpleContent>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
						<xs:attribute name="vcCode" type="xs:int" use="required"/>
						<!-- MANDATORY: MUST have a vendor completion code -->
						<xs:attribute name="tcCode" type="xs:int" use="optional"/>
						<!-- RECOMMENDED: TesLA completion code per http://www.teslaalliance.org/standards/dca/teslaDCAEnums.txt -->
						<xs:attribute name="vcMsg" type="xs:string" use="optional"/>
						<!-- RECOMMENDED: vendor-defined descriptive completion text -->
					</xs:complexType>
				</xs:element>
			</tdca:responseXSD>
			<tdca:parameters>
				<tdca:parameter displayName="Port List" helpURI="./helpfiles/TxStart.html">
					<tdca:paramXSD>
						<xs:element name="ports">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:pattern value="\{ *(\{ *\d *\d *\d *\} *)+ *\}"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
					</tdca:paramXSD>
					<tdca:vendorExtensions type="tree" selection="multiple" id="ports">
						<data id="PortListSelection" nodeReference=""/>
					</tdca:vendorExtensions>
				</tdca:parameter>
			</tdca:parameters>
			<tdca:alias>txStart</tdca:alias>
			<tdca:alias>StartTransmit</tdca:alias>
			<tdca:keyword>transmit</tdca:keyword>
			<tdca:keyword>traffic</tdca:keyword>
		</tdca:command>
		
		<tdca:command  name="stop" displayName="Stop Transmit" supportClass="GA" 
				helpURI="./helpfiles/TxStop.html" description="Stop all traffic on specified ports">
				
			<tdca:responseXSD>
				<!-- XML Schema segment describing response provided by command (return value) -->
				<xs:element name="tResponse">
					<!-- MANDATORY: TesLA Response MUST be in a tResponse element -->
					<xs:complexType>
						<xs:sequence>
							<xs:element name="logFile" minOccurs="0" maxOccurs="unbounded">
								<!-- RECOMMENDED: list of log files generated with optional format label -->
								<xs:complexType>
									<xs:simpleContent>
										<xs:extension base="xs:anyURI">
											<xs:attribute name="fileFormat" type="xs:string" use="optional"/>
										</xs:extension>
									</xs:simpleContent>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
						<xs:attribute name="vcCode" type="xs:int" use="required"/>
						<!-- MANDATORY: MUST have a vendor completion code -->
						<xs:attribute name="tcCode" type="xs:int" use="optional"/>
						<!-- RECOMMENDED: TesLA completion code per http://www.teslaalliance.org/standards/dca/teslaDCAEnums.txt -->
						<xs:attribute name="vcMsg" type="xs:string" use="optional"/>
						<!-- RECOMMENDED: vendor-defined descriptive completion text -->
					</xs:complexType>
				</xs:element>
			</tdca:responseXSD>
			
			<tdca:parameters>
				<tdca:parameter displayName="Port List" helpURI="./helpfiles/TxStart.html">
					<tdca:paramXSD>
						<xs:element name="ports">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:pattern value="\{ *(\{ *\d *\d *\d *\} *)+ *\}"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
					</tdca:paramXSD>
					<tdca:vendorExtensions type="tree" selection="multiple" id="ports">
						<data id="PortListSelection" nodeReference=""/>
					</tdca:vendorExtensions>
				</tdca:parameter>
			</tdca:parameters>
			
			<tdca:alias>txStop</tdca:alias>
			<tdca:alias>StopTransmit</tdca:alias>
			<tdca:keyword>transmit</tdca:keyword>
			<tdca:keyword>traffic</tdca:keyword>
		</tdca:command>
	</tdca:commandGroup>
	
	<!-- Vendor Completion Codes -->
	<tdca:vccLookup code="0" msg="Fail"/>
	<tdca:vccLookup code="1" msg="Success"/>

	<!-- tesLA Completion Codes TBC in standard, this could be in all DCA files via XInclude  -->
	<tdca:tccLookup code="0" msg="Fail"/>
	<tdca:tccLookup code="1" msg="Success"/>

</tdca:TesLACommandDefinition>

