mpExperienceNetperf
This commit is contained in:
parent
82e6384d0b
commit
f9ba259343
@ -8,6 +8,7 @@ class MpExperience:
|
|||||||
HTTPS = "https"
|
HTTPS = "https"
|
||||||
HTTP = "http"
|
HTTP = "http"
|
||||||
EPLOAD = "epload"
|
EPLOAD = "epload"
|
||||||
|
NETPERF = "netperf"
|
||||||
|
|
||||||
def __init__(self, xpParam, mpTopo, mpConfig):
|
def __init__(self, xpParam, mpTopo, mpConfig):
|
||||||
self.xpParam = xpParam
|
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"
|
EPLOADTESTDIR = "epload_test_dir"
|
||||||
HTTPFILE = "http_file"
|
HTTPFILE = "http_file"
|
||||||
HTTPRANDOMSIZE = "http_file_size"
|
HTTPRANDOMSIZE = "http_file_size"
|
||||||
|
NETPERFTESTLEN = "netperfTestlen"
|
||||||
|
NETPERFTESTNAME = "netperfTestname"
|
||||||
|
NETPERFREQRESSIZE = "netperfReqresSize"
|
||||||
|
|
||||||
|
|
||||||
# global sysctl
|
# global sysctl
|
||||||
@ -79,6 +82,9 @@ class MpParamXp(MpParam):
|
|||||||
defaultValue[EPLOADTESTDIR] = "/bla/bla/bla"
|
defaultValue[EPLOADTESTDIR] = "/bla/bla/bla"
|
||||||
defaultValue[HTTPFILE] = "random"
|
defaultValue[HTTPFILE] = "random"
|
||||||
defaultValue[HTTPRANDOMSIZE] = "1024"
|
defaultValue[HTTPRANDOMSIZE] = "1024"
|
||||||
|
defaultValue[NETPERFTESTLEN] = "10"
|
||||||
|
defaultValue[NETPERFTESTNAME] = "TCP_RR"
|
||||||
|
defaultValue[NETPERFREQRESSIZE] = "2k,256"
|
||||||
|
|
||||||
def __init__(self, paramFile):
|
def __init__(self, paramFile):
|
||||||
MpParam.__init__(self, paramFile)
|
MpParam.__init__(self, paramFile)
|
||||||
|
@ -11,6 +11,7 @@ from mpExperienceNC import MpExperienceNC
|
|||||||
from mpExperienceHTTPS import MpExperienceHTTPS
|
from mpExperienceHTTPS import MpExperienceHTTPS
|
||||||
from mpExperienceHTTP import MpExperienceHTTP
|
from mpExperienceHTTP import MpExperienceHTTP
|
||||||
from mpExperienceEpload import MpExperienceEpload
|
from mpExperienceEpload import MpExperienceEpload
|
||||||
|
from mpExperienceNetperf import MpExperienceNetperf
|
||||||
from mpExperienceNone import MpExperienceNone
|
from mpExperienceNone import MpExperienceNone
|
||||||
from mpExperience import MpExperience
|
from mpExperience import MpExperience
|
||||||
from mpECMPSingleInterfaceTopo import MpECMPSingleInterfaceTopo
|
from mpECMPSingleInterfaceTopo import MpECMPSingleInterfaceTopo
|
||||||
@ -87,6 +88,9 @@ class MpXpRunner:
|
|||||||
elif xp == MpExperience.EPLOAD:
|
elif xp == MpExperience.EPLOAD:
|
||||||
MpExperienceEpload(self.xpParam, self.mpTopo,
|
MpExperienceEpload(self.xpParam, self.mpTopo,
|
||||||
self.mpTopoConfig)
|
self.mpTopoConfig)
|
||||||
|
elif xp == MpExperience.NETPERF:
|
||||||
|
MpExperienceNetperf(self.xpParam, self.mpTopo,
|
||||||
|
self.mpTopoConfig)
|
||||||
else:
|
else:
|
||||||
print("Unfound xp type..." + xp)
|
print("Unfound xp type..." + xp)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user