mpExperienceNetperf
This commit is contained in:
parent
82e6384d0b
commit
f9ba259343
@ -8,6 +8,7 @@ class MpExperience:
|
||||
HTTPS = "https"
|
||||
HTTP = "http"
|
||||
EPLOAD = "epload"
|
||||
NETPERF = "netperf"
|
||||
|
||||
def __init__(self, xpParam, mpTopo, mpConfig):
|
||||
self.xpParam = xpParam
|
||||
|
73
src/mpExperienceNetperf.py
Normal file
73
src/mpExperienceNetperf.py
Normal file
@ -0,0 +1,73 @@
|
||||
from mpExperience import MpExperience
|
||||
from mpParamXp import MpParamXp
|
||||
from mpPvAt import MpPvAt
|
||||
import os
|
||||
|
||||
class MpExperienceNetperf(MpExperience):
|
||||
NETPERF_LOG = "netperf.log"
|
||||
NETSERVER_LOG = "netserver.log"
|
||||
NETPERF_BIN = "netperf"
|
||||
NETSERVER_BIN = "netserver"
|
||||
PING_OUTPUT = "ping.log"
|
||||
|
||||
def __init__(self, xpParamFile, mpTopo, mpConfig):
|
||||
MpExperience.__init__(self, xpParamFile, mpTopo, mpConfig)
|
||||
self.loadParam()
|
||||
self.ping()
|
||||
MpExperience.classicRun(self)
|
||||
|
||||
def ping(self):
|
||||
self.mpTopo.commandTo(self.mpConfig.client, "rm " + \
|
||||
MpExperienceNetperf.PING_OUTPUT)
|
||||
count = self.xpParam.getParam(MpParamXp.PINGCOUNT)
|
||||
for i in range(0, self.mpConfig.getClientInterfaceCount()):
|
||||
cmd = self.pingCommand(self.mpConfig.getClientIP(i),
|
||||
self.mpConfig.getServerIP(), n = count)
|
||||
self.mpTopo.commandTo(self.mpConfig.client, cmd)
|
||||
|
||||
def pingCommand(self, fromIP, toIP, n=5):
|
||||
s = "ping -c " + str(n) + " -I " + fromIP + " " + toIP + \
|
||||
" >> " + MpExperienceNetperf.PING_OUTPUT
|
||||
print(s)
|
||||
return s
|
||||
|
||||
def loadParam(self):
|
||||
"""
|
||||
todo : param LD_PRELOAD ??
|
||||
"""
|
||||
self.testlen = self.xpParam.getParam(MpParamXp.NETPERFTESTLEN)
|
||||
self.testname = self.xpParam.getParam(MpParamXp.NETPERFTESTNAME)
|
||||
self.reqres_size = self.XpParam.getParam(MpParamXp.NETPERFREQRESSIZE)
|
||||
|
||||
def prepare(self):
|
||||
MpExperience.prepare(self)
|
||||
self.mpTopo.commandTo(self.mpConfig.client, "rm " +
|
||||
MpExperienceNetperf.NETPERF_LOG)
|
||||
self.mpTopo.commandTo(self.mpConfig.server, "rm " +
|
||||
MpExperienceNetperf.NETSERVER_LOG)
|
||||
|
||||
def getClientCmd(self):
|
||||
s = MpExperienceNetperf.NETPERF_BIN + " -H " + self.mpConfig.getServerIP() + \
|
||||
" -l " + self.testlen + " -t " + self.testname + " -r " + self.reqres_size
|
||||
print(s)
|
||||
return s
|
||||
|
||||
def getServerCmd(self):
|
||||
s = "sudo " + MpExperienceNetperf.NETSERVER_BIN
|
||||
print(s)
|
||||
return s
|
||||
|
||||
def clean(self):
|
||||
MpExperience.clean(self)
|
||||
#todo use cst
|
||||
#self.mpTopo.commandTo(self.mpConfig.server, "killall netcat")
|
||||
|
||||
|
||||
def run(self):
|
||||
cmd = self.getServerCmd()
|
||||
self.mpTopo.commandTo(self.mpConfig.server, cmd)
|
||||
|
||||
self.mpTopo.commandTo(self.mpConfig.client, "sleep 2")
|
||||
cmd = self.getClientCmd()
|
||||
self.mpTopo.commandTo(self.mpConfig.client, cmd)
|
||||
self.mpTopo.commandTo(self.mpConfig.client, "sleep 2")
|
@ -32,6 +32,9 @@ class MpParamXp(MpParam):
|
||||
EPLOADTESTDIR = "epload_test_dir"
|
||||
HTTPFILE = "http_file"
|
||||
HTTPRANDOMSIZE = "http_file_size"
|
||||
NETPERFTESTLEN = "netperfTestlen"
|
||||
NETPERFTESTNAME = "netperfTestname"
|
||||
NETPERFREQRESSIZE = "netperfReqresSize"
|
||||
|
||||
|
||||
# global sysctl
|
||||
@ -79,6 +82,9 @@ class MpParamXp(MpParam):
|
||||
defaultValue[EPLOADTESTDIR] = "/bla/bla/bla"
|
||||
defaultValue[HTTPFILE] = "random"
|
||||
defaultValue[HTTPRANDOMSIZE] = "1024"
|
||||
defaultValue[NETPERFTESTLEN] = "10"
|
||||
defaultValue[NETPERFTESTNAME] = "TCP_RR"
|
||||
defaultValue[NETPERFREQRESSIZE] = "2k,256"
|
||||
|
||||
def __init__(self, paramFile):
|
||||
MpParam.__init__(self, paramFile)
|
||||
|
@ -11,6 +11,7 @@ from mpExperienceNC import MpExperienceNC
|
||||
from mpExperienceHTTPS import MpExperienceHTTPS
|
||||
from mpExperienceHTTP import MpExperienceHTTP
|
||||
from mpExperienceEpload import MpExperienceEpload
|
||||
from mpExperienceNetperf import MpExperienceNetperf
|
||||
from mpExperienceNone import MpExperienceNone
|
||||
from mpExperience import MpExperience
|
||||
from mpECMPSingleInterfaceTopo import MpECMPSingleInterfaceTopo
|
||||
@ -87,6 +88,9 @@ class MpXpRunner:
|
||||
elif xp == MpExperience.EPLOAD:
|
||||
MpExperienceEpload(self.xpParam, self.mpTopo,
|
||||
self.mpTopoConfig)
|
||||
elif xp == MpExperience.NETPERF:
|
||||
MpExperienceNetperf(self.xpParam, self.mpTopo,
|
||||
self.mpTopoConfig)
|
||||
else:
|
||||
print("Unfound xp type..." + xp)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user