VOL-1123 Specify serial number for Ponsim v2 ONU on command line
Change-Id: I85a15c0e710f22d2869fbe47976036cfa1ee610d
diff --git a/ponsim/v2/README.md b/ponsim/v2/README.md
index 88841c7..9d004be 100644
--- a/ponsim/v2/README.md
+++ b/ponsim/v2/README.md
@@ -50,6 +50,8 @@
Enable promiscuous mode on network interfaces
-quiet
Suppress debug and info logs
+ -serial_number string
+ Serial number of ONU device (default "PSMO12345678")
-vcore_endpoint string
Voltha core endpoint address (default "vcore")
-verbose
diff --git a/ponsim/v2/core/ponsim_onu.go b/ponsim/v2/core/ponsim_onu.go
index ac3a02a..ae40387 100644
--- a/ponsim/v2/core/ponsim_onu.go
+++ b/ponsim/v2/core/ponsim_onu.go
@@ -43,6 +43,7 @@
ParentAddress string
ParentPort int32
AssignedPort int32
+ SerialNumber string
Conn *grpc.ClientConn
oltClient ponsim.PonSimCommonClient
@@ -214,6 +215,7 @@
Id: uuid.New().String(),
Address: common.GetInterfaceIP(o.InternalIf),
Port: o.Port,
+ SerialNumber: o.SerialNumber,
}
common.Logger().Printf("Request details %+v\n", rreq)
diff --git a/ponsim/v2/grpc/nbi/ponsim_handler.go b/ponsim/v2/grpc/nbi/ponsim_handler.go
index 8205386..49fd71a 100644
--- a/ponsim/v2/grpc/nbi/ponsim_handler.go
+++ b/ponsim/v2/grpc/nbi/ponsim_handler.go
@@ -128,25 +128,28 @@
"handler": handler,
}).Info("Getting device information")
- var out *voltha.PonSimDeviceInfo
+ out := &voltha.PonSimDeviceInfo{}
// Check which device type we're currently handling
if _, ok := (handler.device).(*core.PonSimOltDevice); ok {
common.Logger().WithFields(logrus.Fields{
"handler": handler,
}).Debug("Handling OLT device")
- keys := make([]int32, 0, len((handler.device).(*core.PonSimOltDevice).GetOnus()))
- for k := range (handler.device).(*core.PonSimOltDevice).GetOnus() {
- keys = append(keys, k)
+ onus := (handler.device).(*core.PonSimOltDevice).GetOnus()
+ for k := range onus {
+ out.Onus = append(
+ out.Onus,
+ &voltha.PonSimOnuDeviceInfo {
+ UniPort: k,
+ SerialNumber: onus[k].Device.SerialNumber,
+ },
+ )
}
- out = &voltha.PonSimDeviceInfo{NniPort: 0, UniPorts: []int32(keys)}
-
+ out.NniPort = 0
} else {
common.Logger().WithFields(logrus.Fields{
"handler": handler,
}).Debug("Handling ONU/OTHER device")
-
- out = &voltha.PonSimDeviceInfo{}
}
common.Logger().WithFields(logrus.Fields{
diff --git a/ponsim/v2/grpc/sbi/olt_handler.go b/ponsim/v2/grpc/sbi/olt_handler.go
index a264532..2f98c96 100644
--- a/ponsim/v2/grpc/sbi/olt_handler.go
+++ b/ponsim/v2/grpc/sbi/olt_handler.go
@@ -48,6 +48,7 @@
PonSimDevice: core.PonSimDevice{
Address: request.Address, Port: request.Port, //GrpcSecurity: h.olt.GrpcSecurity,
}}
+ onu.SerialNumber = request.SerialNumber
if assignedPort, err := h.olt.AddOnu(onu); assignedPort == -1 || err != nil {
return &ponsim.RegistrationReply{
diff --git a/ponsim/v2/ponsim.go b/ponsim/v2/ponsim.go
index eab6a54..cbb863d 100644
--- a/ponsim/v2/ponsim.go
+++ b/ponsim/v2/ponsim.go
@@ -49,6 +49,7 @@
default_parent_port = 50060
default_vcore_endpoint = "vcore"
default_fluentd_host = ""
+ default_serial_number = "PSMO12345678"
default_snapshot_len = 65535
default_promiscuous = false
@@ -82,6 +83,7 @@
parent_port int = default_parent_port
vcore_endpoint string = default_vcore_endpoint
fluentd_host string = default_fluentd_host
+ serial_number string = default_serial_number
snapshot_len int32 = default_snapshot_len
promiscuous bool = default_promiscuous
@@ -158,6 +160,9 @@
help = fmt.Sprintf("Fluentd host address")
flag.StringVar(&fluentd_host, "fluentd", default_fluentd_host, help)
+ help = fmt.Sprintf("Serial number of ONU device")
+ flag.StringVar(&serial_number, "serial_number", default_serial_number, help)
+
flag.Parse()
}
@@ -274,6 +279,7 @@
device = core.NewPonSimOnuDevice(pon)
device.(*core.PonSimOnuDevice).ParentAddress = parent_addr
device.(*core.PonSimOnuDevice).ParentPort = int32(parent_port)
+ device.(*core.PonSimOnuDevice).SerialNumber = serial_number
default:
log.Println("Unknown device type")
diff --git a/ponsim/v2/protos/ponsim_olt.proto b/ponsim/v2/protos/ponsim_olt.proto
index 82214a7..3b8a761 100644
--- a/ponsim/v2/protos/ponsim_olt.proto
+++ b/ponsim/v2/protos/ponsim_olt.proto
@@ -12,6 +12,7 @@
string id = 1;
string address = 2;
int32 port = 3;
+ string serial_number = 4;
}
message RegistrationReply {