diff --git a/vendor/github.com/opencord/device-management-interface/go/dmi/commons.pb.go b/vendor/github.com/opencord/device-management-interface/go/dmi/commons.pb.go
index 2f90bd5..1b3b9da 100644
--- a/vendor/github.com/opencord/device-management-interface/go/dmi/commons.pb.go
+++ b/vendor/github.com/opencord/device-management-interface/go/dmi/commons.pb.go
@@ -24,20 +24,20 @@
 
 const (
 	Status_UNDEFINED_STATUS Status = 0
-	Status_OK               Status = 1
-	Status_ERROR            Status = 2
+	Status_OK_STATUS        Status = 1
+	Status_ERROR_STATUS     Status = 2
 )
 
 var Status_name = map[int32]string{
 	0: "UNDEFINED_STATUS",
-	1: "OK",
-	2: "ERROR",
+	1: "OK_STATUS",
+	2: "ERROR_STATUS",
 }
 
 var Status_value = map[string]int32{
 	"UNDEFINED_STATUS": 0,
-	"OK":               1,
-	"ERROR":            2,
+	"OK_STATUS":        1,
+	"ERROR_STATUS":     2,
 }
 
 func (x Status) String() string {
@@ -60,17 +60,23 @@
 	Reason_LOGGING_ENDPOINT_ERROR          Reason = 5
 	Reason_LOGGING_ENDPOINT_PROTOCOL_ERROR Reason = 6
 	Reason_KAFKA_ENDPOINT_ERROR            Reason = 7
+	Reason_UNKNOWN_LOG_ENTITY              Reason = 8
+	Reason_ERROR_FETCHING_CONFIG           Reason = 9
+	Reason_INVALID_CONFIG                  Reason = 10
 )
 
 var Reason_name = map[int32]string{
-	0: "UNDEFINED_REASON",
-	1: "UNKNOWN_DEVICE",
-	2: "INTERNAL_ERROR",
-	3: "WRONG_METRIC",
-	4: "WRONG_EVENT",
-	5: "LOGGING_ENDPOINT_ERROR",
-	6: "LOGGING_ENDPOINT_PROTOCOL_ERROR",
-	7: "KAFKA_ENDPOINT_ERROR",
+	0:  "UNDEFINED_REASON",
+	1:  "UNKNOWN_DEVICE",
+	2:  "INTERNAL_ERROR",
+	3:  "WRONG_METRIC",
+	4:  "WRONG_EVENT",
+	5:  "LOGGING_ENDPOINT_ERROR",
+	6:  "LOGGING_ENDPOINT_PROTOCOL_ERROR",
+	7:  "KAFKA_ENDPOINT_ERROR",
+	8:  "UNKNOWN_LOG_ENTITY",
+	9:  "ERROR_FETCHING_CONFIG",
+	10: "INVALID_CONFIG",
 }
 
 var Reason_value = map[string]int32{
@@ -82,6 +88,9 @@
 	"LOGGING_ENDPOINT_ERROR":          5,
 	"LOGGING_ENDPOINT_PROTOCOL_ERROR": 6,
 	"KAFKA_ENDPOINT_ERROR":            7,
+	"UNKNOWN_LOG_ENTITY":              8,
+	"ERROR_FETCHING_CONFIG":           9,
+	"INVALID_CONFIG":                  10,
 }
 
 func (x Reason) String() string {
@@ -92,31 +101,73 @@
 	return fileDescriptor_74aedf0dda1205d8, []int{1}
 }
 
+//Log Level
+type LogLevel int32
+
+const (
+	LogLevel_TRACE LogLevel = 0
+	LogLevel_DEBUG LogLevel = 1
+	LogLevel_INFO  LogLevel = 2
+	LogLevel_WARN  LogLevel = 3
+	LogLevel_ERROR LogLevel = 4
+)
+
+var LogLevel_name = map[int32]string{
+	0: "TRACE",
+	1: "DEBUG",
+	2: "INFO",
+	3: "WARN",
+	4: "ERROR",
+}
+
+var LogLevel_value = map[string]int32{
+	"TRACE": 0,
+	"DEBUG": 1,
+	"INFO":  2,
+	"WARN":  3,
+	"ERROR": 4,
+}
+
+func (x LogLevel) String() string {
+	return proto.EnumName(LogLevel_name, int32(x))
+}
+
+func (LogLevel) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_74aedf0dda1205d8, []int{2}
+}
+
 func init() {
 	proto.RegisterEnum("dmi.Status", Status_name, Status_value)
 	proto.RegisterEnum("dmi.Reason", Reason_name, Reason_value)
+	proto.RegisterEnum("dmi.LogLevel", LogLevel_name, LogLevel_value)
 }
 
 func init() { proto.RegisterFile("dmi/commons.proto", fileDescriptor_74aedf0dda1205d8) }
 
 var fileDescriptor_74aedf0dda1205d8 = []byte{
-	// 285 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x90, 0xcd, 0x4e, 0xf2, 0x40,
-	0x18, 0x85, 0xf9, 0xf9, 0xe8, 0x17, 0x5f, 0x8d, 0x8e, 0x13, 0x62, 0x8c, 0x1b, 0x17, 0xee, 0x48,
-	0xa0, 0x31, 0xac, 0x8c, 0xab, 0x4a, 0x07, 0xd2, 0x14, 0xdf, 0x21, 0xd3, 0x01, 0x12, 0x37, 0x4d,
-	0x69, 0x47, 0x9c, 0xc5, 0xcc, 0x10, 0x3a, 0x70, 0x85, 0x5e, 0x98, 0x41, 0x71, 0xa1, 0x6e, 0x9f,
-	0x93, 0xe7, 0x9c, 0xe4, 0xc0, 0x65, 0x65, 0x74, 0x58, 0x3a, 0x63, 0x9c, 0xad, 0x07, 0x9b, 0xad,
-	0xf3, 0x8e, 0xb6, 0x2b, 0xa3, 0x7b, 0xf7, 0x10, 0x64, 0xbe, 0xf0, 0xbb, 0x9a, 0x76, 0x81, 0xcc,
-	0x31, 0x66, 0xe3, 0x04, 0x59, 0x9c, 0x67, 0x32, 0x92, 0xf3, 0x8c, 0x34, 0x68, 0x00, 0x2d, 0x9e,
-	0x92, 0x26, 0x3d, 0x81, 0x0e, 0x13, 0x82, 0x0b, 0xd2, 0xea, 0xbd, 0x37, 0x21, 0x10, 0xaa, 0xa8,
-	0x9d, 0xfd, 0xe9, 0x08, 0x16, 0x65, 0x1c, 0x49, 0x83, 0x52, 0x38, 0x9f, 0x63, 0x8a, 0x7c, 0x89,
-	0x79, 0xcc, 0x16, 0xc9, 0x88, 0x91, 0xe6, 0x81, 0x25, 0x28, 0x99, 0xc0, 0x68, 0x9a, 0x1f, 0x8b,
-	0x28, 0x81, 0xb3, 0xa5, 0xe0, 0x38, 0xc9, 0x9f, 0x99, 0x14, 0xc9, 0x88, 0xb4, 0xe9, 0x05, 0x9c,
-	0x7e, 0x11, 0xb6, 0x60, 0x28, 0xc9, 0x3f, 0x7a, 0x03, 0x57, 0x53, 0x3e, 0x99, 0x24, 0x07, 0x84,
-	0xf1, 0x8c, 0x27, 0x28, 0x8f, 0x7a, 0x87, 0xde, 0xc1, 0xed, 0x9f, 0x6c, 0x26, 0xb8, 0xe4, 0x23,
-	0xfe, 0xbd, 0x11, 0xd0, 0x6b, 0xe8, 0xa6, 0xd1, 0x38, 0x8d, 0x7e, 0xeb, 0xff, 0x9f, 0x1e, 0x5f,
-	0x1e, 0xd6, 0xda, 0xbf, 0xed, 0x56, 0x83, 0xd2, 0x99, 0xd0, 0x6d, 0x94, 0x2d, 0xdd, 0xb6, 0x0a,
-	0x2b, 0xb5, 0xd7, 0xa5, 0xea, 0x9b, 0xc2, 0x16, 0x6b, 0x65, 0x94, 0xf5, 0x7d, 0x6d, 0xbd, 0xda,
-	0xbe, 0x16, 0xa5, 0x0a, 0xf7, 0xc3, 0x70, 0xed, 0xc2, 0xca, 0xe8, 0x55, 0xf0, 0x79, 0xe1, 0xf0,
-	0x23, 0x00, 0x00, 0xff, 0xff, 0x0a, 0x8a, 0xc7, 0x97, 0x57, 0x01, 0x00, 0x00,
+	// 373 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x91, 0xcf, 0x6f, 0xd3, 0x30,
+	0x14, 0xc7, 0xdb, 0xb4, 0x0b, 0xed, 0xe3, 0x97, 0xb1, 0xc6, 0x04, 0x5c, 0x38, 0x70, 0xab, 0xb4,
+	0xe5, 0xb0, 0x13, 0xe2, 0x30, 0x79, 0x89, 0x13, 0xac, 0x04, 0x7b, 0x72, 0x9c, 0x56, 0x70, 0x89,
+	0xb2, 0xc4, 0x84, 0x48, 0x38, 0x9e, 0xda, 0xac, 0xff, 0x04, 0xff, 0x34, 0x72, 0x43, 0x0e, 0xc0,
+	0xed, 0xf9, 0xf3, 0xf4, 0x3e, 0x7e, 0x5f, 0x3d, 0x78, 0xd5, 0x98, 0x2e, 0xa8, 0xad, 0x31, 0xb6,
+	0x3f, 0x5c, 0x3d, 0xec, 0xed, 0x60, 0xf1, 0xa2, 0x31, 0xdd, 0xe6, 0x06, 0xfc, 0x7c, 0xa8, 0x86,
+	0xc7, 0x03, 0x3e, 0x07, 0x54, 0xf0, 0x88, 0xc6, 0x8c, 0xd3, 0xa8, 0xcc, 0x15, 0x51, 0x45, 0x8e,
+	0x66, 0xf8, 0x39, 0xac, 0x45, 0x3a, 0x3d, 0xe7, 0x18, 0xc1, 0x33, 0x2a, 0xa5, 0x90, 0x13, 0xf1,
+	0x36, 0xbf, 0x3c, 0xf0, 0xa5, 0xae, 0x0e, 0xb6, 0xff, 0xdb, 0x20, 0x29, 0xc9, 0x05, 0x47, 0x33,
+	0x8c, 0xe1, 0x45, 0xc1, 0x53, 0x2e, 0x76, 0xbc, 0x8c, 0xe8, 0x96, 0x85, 0x14, 0xcd, 0x1d, 0x63,
+	0x5c, 0x51, 0xc9, 0x49, 0x56, 0x9e, 0x7c, 0xc8, 0x73, 0xea, 0x9d, 0x14, 0x3c, 0x29, 0xbf, 0x50,
+	0x25, 0x59, 0x88, 0x16, 0xf8, 0x25, 0x3c, 0x1d, 0x09, 0xdd, 0x52, 0xae, 0xd0, 0x12, 0xbf, 0x83,
+	0x8b, 0x4c, 0x24, 0x09, 0x73, 0x88, 0x47, 0x77, 0x82, 0x71, 0xf5, 0x67, 0xfc, 0x0c, 0x7f, 0x80,
+	0xf7, 0xff, 0xf5, 0xee, 0xa4, 0x50, 0x22, 0x14, 0xd3, 0x1f, 0x3e, 0x7e, 0x03, 0xe7, 0x29, 0x89,
+	0x53, 0xf2, 0xef, 0xf8, 0x13, 0x7c, 0x01, 0x78, 0xda, 0x32, 0x13, 0x4e, 0xa1, 0x98, 0xfa, 0x8a,
+	0x56, 0xf8, 0x2d, 0xbc, 0x1e, 0x03, 0xc7, 0x54, 0x85, 0x9f, 0x9d, 0x3d, 0x14, 0x3c, 0x66, 0x09,
+	0x5a, 0x8f, 0x21, 0xb6, 0x24, 0x63, 0xd1, 0xc4, 0x60, 0x73, 0x03, 0xab, 0xcc, 0xb6, 0x99, 0x3e,
+	0xea, 0x9f, 0x78, 0x0d, 0x67, 0x4a, 0x92, 0x90, 0xa2, 0x99, 0x2b, 0x23, 0x7a, 0x5b, 0x24, 0x68,
+	0x8e, 0x57, 0xb0, 0x64, 0x3c, 0x16, 0xc8, 0x73, 0xd5, 0x8e, 0x48, 0x8e, 0x16, 0xae, 0x3d, 0xee,
+	0xb1, 0xbc, 0xfd, 0xf4, 0xed, 0x63, 0xdb, 0x0d, 0x3f, 0x1e, 0xef, 0xaf, 0x6a, 0x6b, 0x02, 0xfb,
+	0xa0, 0xfb, 0xda, 0xee, 0x9b, 0xa0, 0xd1, 0xc7, 0xae, 0xd6, 0x97, 0xa6, 0xea, 0xab, 0x56, 0x1b,
+	0xdd, 0x0f, 0x97, 0x5d, 0x3f, 0xe8, 0xfd, 0xf7, 0xaa, 0xd6, 0xc1, 0xf1, 0x3a, 0x68, 0x6d, 0xd0,
+	0x98, 0xee, 0xde, 0x3f, 0x1d, 0xf6, 0xfa, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc8, 0xb6, 0xed,
+	0xcf, 0xed, 0x01, 0x00, 0x00,
 }
