<PARAMS>
    # Sample testcase for physical network: 7
    <testcases>5,6,7,8,15,16,17,18,25,26,27,28,35,36,37,38,45,46,47,48,55,56,57,58,65,66,67,68,75,76,77,78</testcases>

    <GRAPH>
        <nodeCluster>Fabric</nodeCluster>
        <builds>20</builds>
        <jobName>SRBridging-stratum</jobName>
    </GRAPH>

    <SCALE>
        <size>3</size>
        <max>3</max>
    </SCALE>

    <DEPENDENCY>
        <useCommonConf>False</useCommonConf>
        <useCommonTopo>True</useCommonTopo>
        <useBmv2>True</useBmv2>
        <bmv2SwitchType>stratum</bmv2SwitchType>
        <switchPrefix>bmv2</switchPrefix>
        <stratumRoot>~/stratum</stratumRoot>
        <topology>trellis_fabric.py</topology>
        <lib>routinglib.py,trellislib.py,stratum.py</lib>
        <conf>bgpdbgp1.conf,bgpdbgp2.conf,bgpdr1.conf,bgpdr2.conf,dhcpd6.conf,dhcpd.conf,zebradbgp1.conf,zebradbgp2.conf</conf>
    </DEPENDENCY>

    <MN_DOCKER>
        <args>--privileged --net host --rm -v topo:/topo -v ~/mininet/custom:/home/root/mininet/custom -v /var/run/openvswitch/:/var/run/openvswitch/ -v /tmp/mn-stratum:/tmp -v /tmp/mn_conf/:/home/root --hostname mn-stratum -v /etc/network/interfaces:/etc/network/interfaces -it -d</args>
        <name>trellis_mininet</name>
        <home>/home/root/</home>
    </MN_DOCKER>

    <CLUSTER>
        # Params for onos docker
        <dockerSkipBuild>True</dockerSkipBuild>
        <dockerBuildCmd>make ONOS_BRANCH=master DOCKER_TAG=TestON-master onos-build trellis-control-build trellis-t3-build tost-build</dockerBuildCmd> # If using another cmd like make
        <dockerBuildTimeout>1200</dockerBuildTimeout>
        <dockerFilePath>~/tost-onos</dockerFilePath>
        <dockerImageTag>tost:TestON-master</dockerImageTag>
        <dockerOptions>-d --rm --network host -v ~/.ssh/authorized_keys:/root/.ssh/authorized_keys -v /tmp/cluster.json:/root/onos/config/cluster.json </dockerOptions> # We start the container detached, so the docker component can connect to cli instead of logs
        <atomixImageTag>atomix/atomix:3.1.5</atomixImageTag>
        <atomixOptions>-d --rm --network host -v ~/.ssh/authorized_keys:/root/.ssh/authorized_keys -v /tmp/atomix.json:/opt/atomix/conf/atomix.json </atomixOptions>
    </CLUSTER>

    <ENV>
        <cellName>productionCell</cellName>
        <cellApps>drivers,fpm,netcfghostprovider,drivers.bmv2,pipelines.fabric,segmentrouting,t3</cellApps>
    </ENV>

    <ONOS_Configuration>
        <org.onosproject.grpc.ctl.GrpcChannelControllerImpl>
            <enableMessageLog>true</enableMessageLog>
        </org.onosproject.grpc.ctl.GrpcChannelControllerImpl>
    </ONOS_Configuration>

    <ONOS_Logging>
        <org.onosproject.events>TRACE</org.onosproject.events>
        <org.onosproject.segmentrouting>DEBUG</org.onosproject.segmentrouting>
        <org.onosproject.driver>DEBUG</org.onosproject.driver>
        <org.onosproject.net.flowobjective.impl>DEBUG</org.onosproject.net.flowobjective.impl>
        <org.onosproject.routeservice.impl>DEBUG</org.onosproject.routeservice.impl>
        <org.onosproject.routeservice.store>DEBUG</org.onosproject.routeservice.store>
        <org.onosproject.routing.fpm>DEBUG</org.onosproject.routing.fpm>
        <org.onosproject.fpm>DEBUG</org.onosproject.fpm>
        <org.onosproject.mcast>DEBUG</org.onosproject.mcast>
        <org.onosproject.p4runtime>DEBUG</org.onosproject.p4runtime>
        <org.onosproject.protocols.p4runtime>DEBUG</org.onosproject.protocols.p4runtime>
        <org.onosproject.drivers.p4runtime>DEBUG</org.onosproject.drivers.p4runtime>
        <org.onosproject.protocols.grpc>DEBUG</org.onosproject.protocols.grpc>
        <org.onosproject.protocols.gnmi>DEBUG</org.onosproject.protocols.gnmi>
        <org.onosproject.protocols.gnoi>DEBUG</org.onosproject.protocols.gnoi>
        <org.onosproject.drivers.gnoi>DEBUG</org.onosproject.drivers.gnoi>
        <org.onosproject.drivers.gmni>DEBUG</org.onosproject.drivers.gmni>
        <org.onosproject.drivers.stratum>DEBUG</org.onosproject.drivers.stratum>
        <org.onosproject.bmv2>DEBUG</org.onosproject.bmv2>
    </ONOS_Logging>

    <GIT>
        <pull>False</pull>
        <branch>master</branch>
    </GIT>

    <CTRL>
        <port>6653</port>
    </CTRL>

    <timers>
        <LinkDiscovery>12</LinkDiscovery>
        <SwitchDiscovery>12</SwitchDiscovery>
    </timers>

    <SLEEP>
        <startup>10</startup>
    </SLEEP>

    <TOPO>
        <switchNum>1</switchNum>
        <linkNum>0</linkNum>
    </TOPO>

    <ALARM>
        <minPassPercent>100</minPassPercent>
    </ALARM>
</PARAMS>
