diff --git a/database/dbintf.go b/database/dbintf.go
new file mode 100644
index 0000000..b8b491f
--- /dev/null
+++ b/database/dbintf.go
@@ -0,0 +1,165 @@
+/*
+* Copyright 2022-present Open Networking Foundation
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+package database
+
+import (
+	"net"
+
+	"voltha-go-controller/internal/pkg/of"
+	"github.com/opencord/voltha-lib-go/v7/pkg/db/kvstore"
+)
+
+var dbObj DBIntf
+
+// DBIntf defines db related methods
+type DBIntf interface {
+	Get(key string) (string, error)
+	Put(fullKeyPath string, value string) error
+	Del(path string) error
+	List(key string) (map[string]*kvstore.KVPair, error)
+	DeleteAll(path string) error
+	DeleteAllUnderHashKey(hashKeyPrefix string) error
+	GetOlt(deviceID string) (string, error)
+	PutOlt(deviceID string, value string) error
+	DelOlt(deviceID string) error
+	GetFlow(deviceID string, flowID uint64) (string, error)
+	GetFlows(deviceID string) (map[string]*kvstore.KVPair, error)
+	PutFlow(deviceID string, flowID uint64, value string) error
+	DelFlow(deviceID string, flowID uint64) error
+	PutGroup(deviceID string, groupID uint32, value string) error
+	GetGroup(deviceID string, groupID uint32) (string, error)
+	GetGroups(deviceID string) (map[string]*kvstore.KVPair, error)
+	DelGroup(deviceID string, groupID uint32) error
+	DelAllGroup(string) error
+	DelAllPorts(deviceID string) error
+	DelPort(deviceID string, portID uint32) error
+	PutPort(deviceID string, portID uint32, value string) error
+	GetPort(deviceID string, portID uint32) (string, error)
+	GetPorts(deviceID string) (map[string]*kvstore.KVPair, error)
+	PutDeviceMeter(deviceID string, meterID uint32, value string) error
+	GetDeviceMeter(deviceID string, meterID uint32) (string, error)
+	GetDeviceMeters(deviceID string) (map[string]*kvstore.KVPair, error)
+	DelDeviceMeter(deviceID string, meterID uint32) error
+	GetService(name string) (string, error)
+	GetServices() (map[string]*kvstore.KVPair, error)
+	PutService(name string, value string) error
+	DelService(name string) error
+	GetVnets() (map[string]*kvstore.KVPair, error)
+	GetVnet(name string) (string, error)
+	PutVnet(name string, value string) error
+	DelVnet(name string) error
+	GetVpvs() (map[string]*kvstore.KVPair, error)
+	GetVpv(port string, SVlan uint16, CVlan uint16, UniVlan uint16) (string, error)
+	PutVpv(port string, SVlan uint16, CVlan uint16, UniVlan uint16, value string) error
+	DelVpv(port string, SVlan uint16, CVlan uint16, UniVlan uint16) error
+	GetMvlans() (map[string]*kvstore.KVPair, error)
+	GetMvlan(mvlan uint16) (string, error)
+	PutMvlan(mvlan uint16, value string) error
+	DelMvlan(mvlan uint16) error
+	DelIGMPCfg() error
+	GetHealth() (string, error)
+	PutHealth(value string) error
+	DelHealth() error
+	GetMeters() (map[string]*kvstore.KVPair, error)
+	GetMeter(name string) (string, error)
+	PutMeter(name string, value string) error
+	DelMeter(name string) error
+	DelAllMeter(device string) error
+	GetIgmpGroups() (map[string]*kvstore.KVPair, error)
+	GetIgmpGroup(id string) (string, error)
+	PutIgmpGroup(id string, value string) error
+	DelIgmpGroup(id string) error
+	GetAllIgmpDevices() (map[string]*kvstore.KVPair, error)
+	GetPrevIgmpDevices(mvlan of.VlanType, gid string) (map[string]*kvstore.KVPair, error)
+	GetIgmpDevices(mvlan of.VlanType, gid string, gip net.IP) (map[string]*kvstore.KVPair, error)
+	GetIgmpDevice(mvlan of.VlanType, gid string, gip net.IP, device string) (string, error)
+	PutIgmpDevice(mvlan of.VlanType, gid string, gip net.IP, device string, value string) error
+	DelIgmpDevice(mvlan of.VlanType, gid string, gip net.IP, device string) error
+	GetAllIgmpChannels() (map[string]*kvstore.KVPair, error)
+	GetPrevIgmpChannels(gname string, device string) (map[string]*kvstore.KVPair, error)
+	GetIgmpChannels(mvlan of.VlanType, gname string, device string) (map[string]*kvstore.KVPair, error)
+	GetIgmpChannel(mvlan of.VlanType, gName string, device string, gip net.IP) (string, error)
+	PutIgmpChannel(mvlan of.VlanType, gName string, device string, gip net.IP, value string) error
+	DelIgmpChannel(mvlan of.VlanType, gName string, device string, gip net.IP) error
+	GetAllIgmpRcvrs() (map[string]*kvstore.KVPair, error)
+	GetPrevIgmpRcvrs(gip net.IP, device string) (map[string]*kvstore.KVPair, error)
+	GetIgmpRcvrs(mvlan of.VlanType, gip net.IP, device string) (map[string]*kvstore.KVPair, error)
+	GetIgmpRcvr(mvlan of.VlanType, gip net.IP, device string, rcvr string) (string, error)
+	PutIgmpRcvr(mvlan of.VlanType, gip net.IP, device string, rcvr string, value string) error
+	DelIgmpRcvr(mvlan of.VlanType, gip net.IP, device string, rcvr string) error
+	DelAllIgmpRcvr(mvlan of.VlanType, gip net.IP, device string) error
+	DelAllRoutesForDevice(device string) error
+	DelNbDevicePort(device string, ponPortID uint32)
+	GetAllNbPorts(deviceID string) (map[string]*kvstore.KVPair, error)
+	GetMigrationInfo() (string, error)
+	PutMigrationInfo(value string) error
+	DelMigrationInfo() error
+	GetAllPonCounters(device string) (map[string]*kvstore.KVPair, error)
+	GetPonCounter(device string, ponID string) (string, error)
+	PutPonCounter(device string, ponID string, value string) error
+	DelPonCounter(device string, ponID string) error
+	GetAllPonChannelCounters(device string, ponID string) (map[string]*kvstore.KVPair, error)
+	GetPonChannelCounter(device string, ponID string, channel string) (string, error)
+	PutNbDevicePort(device string, ponPortID uint32, value string)
+	PutPonChannelCounter(device string, ponID string, channel string, value string) error
+	DelPonChannelCounter(device string, ponID string, channel string) error
+	DelAllPONCounters(device string) error
+	DelPONCounters(device string, ponID string)
+	GetAllServiceChannelCounters(serviceName string) (map[string]*kvstore.KVPair, error)
+	GetServiceChannelCounter(serviceName string, channel string) (string, error)
+	PutServiceChannelCounter(serviceName string, channel string, value string) error
+	DelServiceChannelCounter(serviceName string, channel string) error
+	DelAllServiceChannelCounter(serviceName string) error
+	PutOltIgmpCounters(device string, value string) error
+	GetOltIgmpCounter(device string) (string, error)
+	PutFlowHash(deviceID string, value string) error
+	GetFlowHash(deviceID string) (string, error)
+	OltExists(deviceID string) bool
+	GetIgmpProfiles() (map[string]*kvstore.KVPair, error)
+	GetIgmpProfile(name string) (string, error)
+	PutIgmpProfile(name string, value string) error
+	DelIgmpProfile(name string) error
+	GetMcastConfigs() (map[string]*kvstore.KVPair, error)
+	GetMcastConfig(name string) (string, error)
+	PutMcastConfig(name string, value string) error
+	DelMcastConfig(name string) error
+	PutPortAlarmProfile(portAlarmProfileID string, value string)
+	GetPortAlarmProfile(portAlarmProfileID string) (map[string]*kvstore.KVPair, error)
+	DelPortAlarmProfile(portAlarmProfileID string)
+	PutPortAlarmData(deviceID string, portID uint32, value string)
+	GetPortAlarmData(deviceID string, portID uint32) (string, error)
+	DelPortAlarmData(deviceID string, portID uint32)
+	GetAllPortAlarmData(deviceID string) (map[string]*kvstore.KVPair, error)
+	PutSubAlarmData(deviceID string, portName string, value string)
+	GetSubAlarmData(deviceID string, portName string) (string, error)
+	DelSubAlarmData(deviceID string, portName string)
+	GetAllSubAlarmData(deviceID string) (map[string]*kvstore.KVPair, error)
+	PutMigrateServicesReq(deviceID string, vlan string, value string) error
+	GetMigrateServicesReq(deviceID string, vlan string) (string, error)
+	GetAllMigrateServicesReq(deviceID string) (map[string]*kvstore.KVPair, error)
+	DelMigrateServicesReq(deviceID string, vlan string) error
+	DelAllMigrateServicesReq(deviceID string) error
+}
+
+//GetDatabase - returns databse operation based on configuration
+func GetDatabase() DBIntf {
+	return dbObj
+}
+
+//SetDatabase - sets the DB object based on the type
+func SetDatabase(df DBIntf) {
+	dbObj = df
+}
