<TOPOLOGY>
    <COMPONENT>
        <ONOScell>
            <host>localhost</host>  # ONOS "bench" machine
            <user>jenkins</user>
            <password></password>
            <type>OnosClusterDriver</type>
            <connect_order>50</connect_order>
            <jump_host></jump_host>
            <home>~/onos</home>   # defines where onos home is on the build machine. Defaults to "~/onos/" if empty.
            <COMPONENTS>
                <kubeConfig>~/.kube/ci1-sdfabric</kubeConfig>  # If set, will attempt to use this file for setting up port-forwarding
                <useDocker>True</useDocker>  # Whether to use docker for ONOS nodes
                <docker_prompt>\$</docker_prompt>
                <cluster_name></cluster_name>  # Used as a prefix for cluster components. Defaults to 'ONOS'
                <diff_clihost>True</diff_clihost> # if it has different host other than localhost for CLI. True or empty. OC# will be used if True.
                <karaf_username>karaf</karaf_username>
                <karaf_password>karaf</karaf_password>
                <web_user>karaf</web_user>
                <web_pass>karaf</web_pass>
                <karafPrompt_username>karaf</karafPrompt_username>
                <rest_port></rest_port>
                <prompt></prompt>  # TODO: we technically need a few of these, one per component
                <onos_home>~/onos/</onos_home>  # defines where onos home is on the target cell machine. Defaults to entry in "home" if empty.
                <nodes> 3 </nodes>  # number of nodes in the cluster
                <up4_port>51001</up4_port> # Port where the UP4 P4Runtime server is listening
            </COMPONENTS>
        </ONOScell>

        <!-- No need for any HostDriver components, traffic is being generated by TRex-->
        <TRexClient>
            <host>localhost</host>
            <type>TrexClientDriver</type>
            <connect_order>5</connect_order>
            <COMPONENTS>
                <trex_address>10.70.10.98</trex_address> <!-- Lottanics -->
                <trex_config>trex_config.yaml</trex_config> <!-- relative path starting from ./dependencies-->
                <force_restart>True</force_restart>
                <software_mode>True</software_mode>
                <trex_library_python_path>/home/jenkins/trex_python</trex_library_python_path>
            </COMPONENTS>
        </TRexClient>

    <!--  This component is not needed, but required to use the Testcaselib  -->
        <NetworkBench>
            <host>localhost</host>
            <user>jenkins</user>
            <password></password>
            <type>NetworkDriver</type>
            <connect_order>1</connect_order>
            <COMPONENTS>
            </COMPONENTS>
        </NetworkBench>

    </COMPONENT>
</TOPOLOGY>
