Fix for meter delete and meter state update

Change-Id: Ic0945a6785da87aa66ab9620b0a599d75e563c78
diff --git a/internal/pkg/controller/device.go b/internal/pkg/controller/device.go
index 8d185a3..a3527c8 100644
--- a/internal/pkg/controller/device.go
+++ b/internal/pkg/controller/device.go
@@ -393,6 +393,19 @@
 	return nil
 }
 
+// UpdateMeter to update meter
+func (d *Device) UpdateMeter(cntx context.Context, meter *of.Meter) error {
+       d.meterLock.Lock()
+       defer d.meterLock.Unlock()
+       if _, ok := d.meters[meter.ID]; ok {
+               d.meters[meter.ID] = meter
+               d.AddMeterToDb(cntx, meter)
+       } else {
+               return errors.New("Meter not found for updation")
+       }
+       return nil
+}
+
 // GetMeter to get meter
 func (d *Device) GetMeter(id uint32) (*of.Meter, error) {
 	d.meterLock.RLock()