<PARAMS>
    # CASE - Description
    # 1 - Variable initialization and optional pull and build ONOS package
    # 2 - Install ONOS
    # 8 - Compare Topology
    # 9 - Report logs
    # 10 - Start Mininet with Openflow 1.0
    # 11 - Start Mininet with Openflow 1.3
    # 12 - Assign switch to controller
    # 13 - Create Scapy Components
    # 14 - Discover hosts with Mininet Pingall
    # 15 - Discover hosts with Scapy arping ( only discovers scapy hosts )
    # 16 - Balance ownership of switches
    # 17 - Activate Flow Objectives
    # 18 - Stop Mininet
    # 19 - Copy karaf logs from ONOS nodes to TestON log directory
    # 100 - Connect to physical network and start scapy
    # 101 - Stop physical scapy hosts
    # 1000 - Test host intents
    # 2000 - Test point intents
    # 3000 - Test single to multi point intents
    # 4000 - Test multi to single point intents
    # 5000 - Test host mobility
    # 6000 - Test Multi Point intent End Point Failure
    # Sample testcases for physical network: 1,2,100,15,16,1000,2000,3000,4000,6000,101,19
    # Note: set usePortstate to True for tests with physical switches

    <testcases>1,[2,10,12,13,15,16,1000,2000,3000,4000,5000,6000,18,19]*2,[2,10,12,13,15,16,17,1000,2000,3000,4000,5000,6000,18,19]*2,[2,11,12,13,15,16,1000,2000,3000,4000,5000,6000,18,19]*2,[2,11,12,13,15,16,17,1000,2000,3000,4000,5000,6000,18,19]*2</testcases>

    <GRAPH>
        <nodeCluster>VM</nodeCluster>
        <builds>20</builds>
    </GRAPH>

    <SCALE>
        <size>1,3,1,3,1,3,1,3</size>
    </SCALE>

    <DEPENDENCY>
        <path>/tests/FUNC/FUNCintent/dependencies/</path>
        <filePath>/dependencies/allocations.txt</filePath>
        <wrapper1>startUp</wrapper1>
        <wrapper2>FuncIntentFunction</wrapper2>
        <wrapper3>topo</wrapper3>
        <topology>newFuncTopo.py</topology>
    </DEPENDENCY>

    <ENV>
        <cellApps>drivers,openflow,proxyarp,mobility</cellApps>
    </ENV>
    <GIT>
        <pull>False</pull>
        <branch>master</branch>
    </GIT>

    <TEST>
        <usePortstate>False</usePortstate>
    </TEST>

    <SLEEP>
        <startup>15</startup>
        <reroute>5</reroute>
        <removeintent>5</removeintent>
        <checkintent>5</checkintent>
        <fwd>10</fwd>
        <topoAttempts>3</topoAttempts>
        <flowDuration>10</flowDuration>
        <checkConnection>1</checkConnection> # because the scapyCheckConnection itself takes 12 seconds.
        <checkFlowCount>5</checkFlowCount>
        <checkIntentHost>5</checkIntentHost>
        <checkIntentPoint>5</checkIntentPoint>
    </SLEEP>

    <RETRY>
        <generalAttempts>36</generalAttempts>
        <middleAttempts>5</middleAttempts>
        <minimumAttempts>1</minimumAttempts>
        <checkConnectionAtt>15</checkConnectionAtt> # because the scapyCheckConnection itself takes 12 seconds.
        <removeIntentAtt>20</removeIntentAtt>
    </RETRY>
    <MININET>
        <switch>7</switch>
        <links>20</links>
        <dpids>
            <s4>of:0000000000000004</s4>
            <s5>of:0000000000000005</s5>
            <s6>of:0000000000000006</s6>
        </dpids>
        <ports>
            <s4>
                <s1>1</s1>
                <s3>2</s3>
            </s4>
            <s5>
                <s2>10</s2>
            </s5>
            <s6>
                <s2>9</s2>
            </s6>
        </ports>
    </MININET>

    <SCAPY>
        <HOSTNAMES>h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13,h14,h15,h16,h17,h18,h19,h20,h21,h22,h23,h24</HOSTNAMES>
    </SCAPY>

    # Intent tests params
    <SDNIP>
        <tcpProto>6</tcpProto>
        <ipPrototype>6</ipPrototype>
        <srcPort>5001</srcPort>
        <dstPort>5001</dstPort>
    </SDNIP>

</PARAMS>
