Question on how to use VON

Home Forums PeerfactSim Forum Question on how to use VON

This topic contains 1 reply, has 1 voice, and was last updated by  Matthias Feldotto 5 years, 6 months ago.

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #839

    Kalman

    Thanks.
    I need some help,who can help me?

    I studied the document, also carried out an XML file, as follows. For every under the specified class, Parameters where I can see? How to set?

    the VON with VISUAL.XML
    <!– Should be as first declared, because the creating of Nodes need Information from this! –>
    <ConfiguartionVON class=”de.tud.kom.p2psim.impl.overlay.ido.von.VonConfiguration”
    ……………
    transportProtocol=”$TRANSPORT_PROTOCOL”>
    </ConfiguartionVON>

    <SimulatorCore class=”de.tud.kom.p2psim.impl.simengine.Simulator”
    static=”getInstance” seed=”$seed” finishAt=”$finishTime” realTime=”false”
    timeSkew=”300″ />

    <!– <NetLayer class=”de.tud.kom.p2psim.impl.network.gnp.GnpNetLayerFactory”
    gnpFile=”$gnpDataFile”>
    <LatencyModel class=”de.tud.kom.p2psim.impl.network.gnp.GnpLatencyModel”
    usePingErRttData=”false” usePingErJitter=”false” usePingErPacketLoss=”false” />
    <BandwidthDetermination
    class=”de.tud.kom.p2psim.impl.network.bandwidthDetermination.OECDReportBandwidthDetermination” />
    </NetLayer> –>
    <!– Here I assume a bandwidth of a normal DSL 1000 Link (Downstream: 120kBps=122880Bps, Upstream: 16kBps=16384Bps –>
    <!–<NetLayer class=”de.tud.kom.p2psim.impl.network.simple.SimpleNetFactory” downBandwidth=”122880″ upBandwidth=”16384″>
    <LatencyModel class=”de.tud.kom.p2psim.impl.network.simple.SimpleStaticLatencyModel” latency=”10″/>
    </NetLayer> –>
    <NetLayer class=”de.tud.kom.p2psim.impl.network.modular.ModularNetLayerFactory” downBandwidth=”122880″ upBandwidth=”16384″ useRegionGroups=”false” useInOrderDelivery=”true” preset=”Fundamental”>

    <PacketSizing class=”de.tud.kom.p2psim.impl.network.modular.st.packetSizing.IPv4Header”/>
    <Fragmenting class=”de.tud.kom.p2psim.impl.network.modular.st.fragmenting.NoFragmenting”/>
    <TrafficControl class=”de.tud.kom.p2psim.impl.network.modular.st.trafCtrl.BoundedTrafficQueue” maxTimeSend=”3s” maxTimeReceive=”3s”/>
    <!–<TrafficControl class=”de.tud.kom.p2psim.impl.network.modular.st.trafCtrl.NoTrafficControl”/>–>
    <PLoss class=”de.tud.kom.p2psim.impl.network.modular.st.ploss.StaticPacketLoss” ratio=”0.0″/>
    <Latency class=”de.tud.kom.p2psim.impl.network.modular.st.latency.StaticLatency” propagationDelay=”40ms”/>
    <Jitter class=”de.tud.kom.p2psim.impl.network.modular.st.jitter.NoJitter”/>
    <Positioning class=”de.tud.kom.p2psim.impl.network.modular.st.positioning.TorusPositioning”/>
    </NetLayer>

    <TransLayer class=”de.tud.kom.p2psim.impl.transport.DefaultTransLayerFactory” />

    <NodeFactory class=”de.tud.kom.p2psim.impl.overlay.ido.von.VonNodeFactory”
    port=”400″>
    <BootstrapManager class=”de.tud.kom.p2psim.impl.overlay.ido.von.VonBootstrapManager”/>
    </NodeFactory>
    <ApplicationFactory class=”de.tud.kom.p2psim.impl.application.ido.IDOApplicationFactory”
    intervalBetweenMove=”200ms”>
    <MoveModel class=”de.tud.kom.p2psim.impl.application.ido.moveModels.RandomPathMoveModel”
    worldDimensionX=”$WORLD_DIMENSION_X”
    worldDimensionY=”$WORLD_DIMENSION_Y”
    moveSpeedLimit=”$MOVE_SPEED_LIMIT”/>
    <PositionDistribution class=”de.tud.kom.p2psim.impl.application.ido.moveModels.RandomPositionDistribution”
    worldDimensionX=”$WORLD_DIMENSION_X”
    worldDimensionY=”$WORLD_DIMENSION_Y”/>
    </ApplicationFactory>

    <Monitor class=”de.tud.kom.p2psim.impl.common.DefaultMonitor”
    start=”0m” stop=”$finishTime”>

    <Analyzer
    class=”de.tud.kom.p2psim.impl.overlay.ido.evaluation.EvaluationControlAnalyzer” measurementInterval=”$INTERVAL_BETWEEN_STATISTIC_GENERATIONS” >
    <IDOOracle class=”de.tud.kom.p2psim.impl.overlay.ido.von.VonOracle”/>
    <IAnalyzerOutputWriter class=”de.tud.kom.p2psim.impl.util.db.writer.SQLOutputWriter” XXXX Parameters where I can see? How to set? >

    <DBMSConnector class=”de.tud.kom.p2psim.impl.util.db.writer.MySQLConnector”/ xxxx >
    </IAnalyzerOutputWriter>

    </Analyzer>
    </Monitor>

    <HostBuilder class=”de.tud.kom.p2psim.impl.scenario.DefaultHostBuilder”
    experimentSize=”$size”>

    <!– LatinAmerica max Groupsize = 6838 –>
    <Group size=”100″ groupID=”LatinAmerica”>
    <NetLayer />
    <TransLayer />
    <NodeFactory />
    <Properties enableChurn=”false” />
    <ApplicationFactory />
    </Group>

    <!–Fourth Group Japan max Groupsize = 4406 –>
    <!–
    <Group size=”1″ groupID=”Japan”> <NetLayer /> <TransLayer />
    <NodeFactory /> <Properties enableChurn=”false” /> </Group>
    –>
    </HostBuilder>

    <GlobalOracle class=”de.tud.kom.p2psim.impl.util.oracle.GlobalOracle” />

    <ChurnGenerator class=”de.tud.kom.p2psim.impl.churn.DefaultChurnGenerator”
    start=”$churnStart” stop=”$churnFinish”>
    <ChurnModel class=”de.tud.kom.p2psim.impl.churn.model.ExponentialChurnModel”
    churnFactor=”0.4″ meanSessionLength=”60m” />
    </ChurnGenerator>

    <Scenario class=”de.tud.kom.p2psim.impl.scenario.CSVScenarioFactory”
    actionsFile=”$actions” componentClass=”de.tud.kom.p2psim.impl.application.ido.IDOApplication”>
    </Scenario>

    </Configuration>

    #840

    Matthias Feldotto

    Hey,

    as your configuration file cannot be complete (it is not a valid xml file which has to start and end with the same xml tag and in the case of the simulator with the Configuration tag), I can only guess what you mean with your question.

    On the one hand you have the configuration parameters, which you can define in the beginning of the configuration file in the default tag, for example:

    <Default>
    <Variable name=”seed” value=”0″ />
    </Default>

    After they are defined in the beginning, you can reuse them in the whole configuration file and change the values in the gui or console runner.

    On the other hand you can use parameterization for your java classes, for example:

    <Analyzer class=”de.tud.kom.p2psim.impl.overlay.ido.evaluation.EvaluationControlAnalyzer” measurementInterval=”20″>

    All these class parameters are of the format name=”value” and they are constructed for all setter methods of the corresponding class. So in the example case the class has a public method setMeasurementInterval(long interval). So if you need a further variable for the classes, just implement a setter method for it with the correct name.

    I hope, that you got the idea for both variable types which are used in the simulator.

Viewing 2 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic.

Comments are closed