Adding delay between ONU operations
Change-Id: I3442325e3b4ad9d0fe77b0182f16d3db42e5f0a1
diff --git a/core/core_server.go b/core/core_server.go
index 8b52e49..76c219f 100644
--- a/core/core_server.go
+++ b/core/core_server.go
@@ -17,6 +17,12 @@
package core
import (
+ "errors"
+ "log"
+ "strconv"
+ "sync"
+ "time"
+
"gerrit.opencord.org/voltha-bbsim/device"
"gerrit.opencord.org/voltha-bbsim/protos"
"gerrit.opencord.org/voltha-bbsim/setup"
@@ -24,11 +30,6 @@
"github.com/google/gopacket/layers"
"github.com/google/gopacket/pcap"
"google.golang.org/grpc"
- "errors"
- "log"
- "strconv"
- "sync"
- "time"
)
type Mode int
@@ -50,6 +51,7 @@
AAAWait int
DhcpWait int
DhcpServerIP string
+ Delay int
gRPCserver *grpc.Server
VethEnv []string
TestFlag bool
@@ -63,7 +65,7 @@
Pkt gopacket.Packet
}
-func (s *Server)Initialize(){
+func (s *Server) Initialize() {
s.VethEnv = []string{}
s.Endchan = make(chan int)
s.TestFlag = false
@@ -71,7 +73,7 @@
s.Ioinfos = []*Ioinfo{}
}
-func Create(oltid uint32, npon uint32, nonus uint32, aaawait int, dhcpwait int, ip string, g *grpc.Server, mode Mode, e chan int) *Server {
+func Create(oltid uint32, npon uint32, nonus uint32, aaawait int, dhcpwait int, ip string, delay int, g *grpc.Server, mode Mode, e chan int) *Server {
s := new(Server)
s.Olt = device.CreateOlt(oltid, npon, 1)
nnni := s.Olt.NumNniIntf
@@ -81,6 +83,7 @@
s.DhcpWait = dhcpwait
s.DhcpServerIP = ip
s.gRPCserver = g
+ s.Delay = delay
s.Mode = mode
s.Endchan = e
s.VethEnv = []string{}
@@ -92,11 +95,11 @@
//TODO: To be fixed
s.CtagMap = make(map[string]uint32)
- for i := 0; i < MAX_ONUS_PER_PON; i ++ {
+ for i := 0; i < MAX_ONUS_PER_PON; i++ {
oltid := s.Olt.ID
intfid := uint32(1)
sn := convB2S(device.CreateSN(oltid, intfid, uint32(i)))
- s.CtagMap[sn] = uint32(900 + i) // This is hard coded for BBWF
+ s.CtagMap[sn] = uint32(900 + i) // This is hard coded for BBWF
}
return s
}
@@ -148,7 +151,7 @@
}
for intfid, _ := range s.Onumap {
- sendOnuInd(stream, s.Onumap[intfid])
+ sendOnuInd(stream, s.Onumap[intfid], s.Delay)
log.Printf("OLT id:%d sent ONUInd.\n", olt.ID)
}
@@ -168,7 +171,7 @@
errchan := make(chan error)
go func() {
- <- errchan
+ <-errchan
close(s.Endchan)
}()
@@ -222,7 +225,7 @@
return nil
}
-func createIoinfos(oltid uint32, vethenv []string, onumap map[uint32][]*device.Onu)([]*Ioinfo, []string, error){
+func createIoinfos(oltid uint32, vethenv []string, onumap map[uint32][]*device.Onu) ([]*Ioinfo, []string, error) {
ioinfos := []*Ioinfo{}
var err error
for intfid, _ := range onumap {
@@ -309,7 +312,7 @@
//C-TAG
onu, _ := s.getOnuByID(onuid)
sn := convB2S(onu.SerialNumber.VendorSpecific)
- if ctag, ok := s.CtagMap[sn]; ok == true{
+ if ctag, ok := s.CtagMap[sn]; ok == true {
tagpkt, err := PushVLAN(pkt, uint16(ctag))
if err != nil {
log.Println("Error happend in C-tag tagging")
@@ -373,14 +376,14 @@
univeths = append(univeths, info.name)
}
- for {
+ for {
select {
case <-s.Endchan:
log.Println("exeAAATest thread receives close !")
return nil
- case <- time.After(time.Second * time.Duration(s.AAAWait)):
+ case <-time.After(time.Second * time.Duration(s.AAAWait)):
log.Println("exeAAATest Start")
- err = setup.ActivateWPASups(univeths)
+ err = setup.ActivateWPASups(univeths, s.Delay)
if err != nil {
return err
}
@@ -416,14 +419,14 @@
univeths = append(univeths, info.name)
}
- for {
+ for {
select {
case <-s.Endchan:
log.Println("exeDHCPTest thread receives close !")
return nil
- case <- time.After(time.Second * time.Duration(s.DhcpWait)):
+ case <-time.After(time.Second * time.Duration(s.DhcpWait)):
log.Println("exeDHCPTest Start")
- err = setup.ActivateDHCPClients(univeths)
+ err = setup.ActivateDHCPClients(univeths, s.Delay)
if err != nil {
return err
}
@@ -479,7 +482,7 @@
return nil
}
-func (s *Server)IsAllOnuActive(regonus map[uint32][]*device.Onu) bool {
+func (s *Server) IsAllOnuActive(regonus map[uint32][]*device.Onu) bool {
for _, onus := range regonus {
for _, onu := range onus {
if onu.GetIntStatus() != device.ONU_ACTIVATED {
@@ -543,7 +546,7 @@
}
func killProcesses(pnames []string) error {
- for _, pname := range pnames {
+ for _, pname := range pnames {
setup.KillProcess(pname)
}
return nil
@@ -584,7 +587,7 @@
func convB2S(b []byte) string {
s := ""
for _, i := range b {
- s = s + strconv. FormatInt(int64(i/16), 16) + strconv. FormatInt(int64(i%16), 16)
+ s = s + strconv.FormatInt(int64(i/16), 16) + strconv.FormatInt(int64(i%16), 16)
}
return s
-}
\ No newline at end of file
+}