X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=extras%2Fhs-test%2Fvppinstance.go;h=a9b97bcaa0bc313b25d3eec1cb97192a727e112c;hb=608d0069d98579b0635be978dea8e316f77a8841;hp=c08514e22dcb87b00a42bcaf28ba02337a2513c3;hpb=47f352710824c373f8130ba632022b47cb27505b;p=vpp.git diff --git a/extras/hs-test/vppinstance.go b/extras/hs-test/vppinstance.go index c08514e22dc..a9b97bcaa0b 100644 --- a/extras/hs-test/vppinstance.go +++ b/extras/hs-test/vppinstance.go @@ -72,9 +72,10 @@ const ( type VppInstance struct { container *Container - additionalConfig Stanza + additionalConfig []Stanza connection *core.Connection apiChannel api.Channel + cpus []int } func (vpp *VppInstance) getSuite() *HstSuite { @@ -113,7 +114,10 @@ func (vpp *VppInstance) start() error { defaultApiSocketFilePath, defaultLogFilePath, ) - configContent += vpp.additionalConfig.toString() + configContent += vpp.generateCpuConfig() + for _, c := range vpp.additionalConfig { + configContent += c.toString() + } startupFileName := vpp.getEtcDir() + "/startup.conf" vpp.container.createFile(startupFileName, configContent) @@ -341,3 +345,25 @@ func (vpp *VppInstance) disconnect() { vpp.connection.Disconnect() vpp.apiChannel.Close() } + +func (vpp *VppInstance) generateCpuConfig() string { + var c Stanza + var s string + if len(vpp.cpus) < 1 { + return "" + } + c.newStanza("cpu"). + append(fmt.Sprintf("main-core %d", vpp.cpus[0])) + workers := vpp.cpus[1:] + + if len(workers) > 0 { + for i := 0; i < len(workers); i++ { + if i != 0 { + s = s + ", " + } + s = s + fmt.Sprintf("%d", workers[i]) + } + c.append(fmt.Sprintf("corelist-workers %s", s)) + } + return c.close().toString() +}