VOL-3395 Encryption of the OMCC GEM
Change-Id: I55090e6fe641aa10abe98e970c3463e42298a8d8
diff --git a/internal/pkg/config/config.go b/internal/pkg/config/config.go
index 541f4a6..a19f2ef 100644
--- a/internal/pkg/config/config.go
+++ b/internal/pkg/config/config.go
@@ -54,6 +54,7 @@
defaultTraceEnabled = false
defaultTraceAgentAddress = "127.0.0.1:6831"
defaultLogCorrelationEnabled = true
+ defaultOmccEncryption = false
)
// AdapterFlags represents the set of configurations used by the read-write adaptercore service
@@ -83,6 +84,7 @@
TraceEnabled bool
TraceAgentAddress string
LogCorrelationEnabled bool
+ OmccEncryption bool
}
// NewAdapterFlags returns a new RWCore config
@@ -110,6 +112,7 @@
TraceEnabled: defaultTraceEnabled,
TraceAgentAddress: defaultTraceAgentAddress,
LogCorrelationEnabled: defaultLogCorrelationEnabled,
+ OmccEncryption: defaultOmccEncryption,
}
return &adapterFlags
}
@@ -186,6 +189,9 @@
help = fmt.Sprintf("Whether to enrich log statements with fields denoting operation being executed for achieving correlation?")
flag.BoolVar(&(so.LogCorrelationEnabled), "log_correlation_enabled", defaultLogCorrelationEnabled, help)
+ help = fmt.Sprintf("OMCI Channel encryption status")
+ flag.BoolVar(&(so.OmccEncryption), "omcc_encryption", defaultOmccEncryption, help)
+
flag.Parse()
containerName := getContainerInfo()
if len(containerName) > 0 {
diff --git a/internal/pkg/core/device_handler.go b/internal/pkg/core/device_handler.go
index 2e4ae42..3eb43fe 100644
--- a/internal/pkg/core/device_handler.go
+++ b/internal/pkg/core/device_handler.go
@@ -1059,13 +1059,13 @@
}
func (dh *DeviceHandler) activateONU(ctx context.Context, intfID uint32, onuID int64, serialNum *oop.SerialNumber, serialNumber string) error {
- logger.Debugw(ctx, "activate-onu", log.Fields{"intf-id": intfID, "onu-id": onuID, "serialNum": serialNum, "serialNumber": serialNumber, "device-id": dh.device.Id})
+ logger.Debugw(ctx, "activate-onu", log.Fields{"intf-id": intfID, "onu-id": onuID, "serialNum": serialNum, "serialNumber": serialNumber, "device-id": dh.device.Id, "OmccEncryption": dh.openOLT.config.OmccEncryption})
if err := dh.flowMgr.UpdateOnuInfo(ctx, intfID, uint32(onuID), serialNumber); err != nil {
return olterrors.NewErrAdapter("onu-activate-failed", log.Fields{"onu": onuID, "intf-id": intfID}, err)
}
// TODO: need resource manager
var pir uint32 = 1000000
- Onu := oop.Onu{IntfId: intfID, OnuId: uint32(onuID), SerialNumber: serialNum, Pir: pir}
+ Onu := oop.Onu{IntfId: intfID, OnuId: uint32(onuID), SerialNumber: serialNum, Pir: pir, OmccEncryption: dh.openOLT.config.OmccEncryption}
if _, err := dh.Client.ActivateOnu(ctx, &Onu); err != nil {
st, _ := status.FromError(err)
if st.Code() == codes.AlreadyExists {
diff --git a/internal/pkg/core/device_handler_test.go b/internal/pkg/core/device_handler_test.go
index 6ec5ddd..855f42c 100644
--- a/internal/pkg/core/device_handler_test.go
+++ b/internal/pkg/core/device_handler_test.go
@@ -32,6 +32,7 @@
"github.com/opencord/voltha-lib-go/v3/pkg/log"
"github.com/opencord/voltha-lib-go/v3/pkg/pmmetrics"
ponrmgr "github.com/opencord/voltha-lib-go/v3/pkg/ponresourcemanager"
+ "github.com/opencord/voltha-openolt-adapter/internal/pkg/config"
"github.com/opencord/voltha-openolt-adapter/internal/pkg/olterrors"
"github.com/opencord/voltha-openolt-adapter/internal/pkg/resourcemanager"
"github.com/opencord/voltha-openolt-adapter/pkg/mocks"
@@ -143,7 +144,8 @@
cp := newMockCoreProxy()
ap := &mocks.MockAdapterProxy{}
ep := &mocks.MockEventProxy{}
- openOLT := &OpenOLT{coreProxy: cp, adapterProxy: ap, eventProxy: ep}
+ cfg := &config.AdapterFlags{OmccEncryption: true}
+ openOLT := &OpenOLT{coreProxy: cp, adapterProxy: ap, eventProxy: ep, config: cfg}
dh := NewDeviceHandler(cp, ap, ep, device, openOLT)
oopRanges := []*oop.DeviceInfo_DeviceResourceRanges{{
IntfIds: []uint32{0, 1},