VOL-1399: The value of the metadata field used by OFAgent & Arouter
          should not be hard-coded
- Added grpc-timeout and core-binding-key options to OFAgent run command
- Added core_binding_key option to rw_core run command

Change-Id: Icf5fe226d17a1a5fcd9459a85e41c434fc7ac8b9
diff --git a/rw_core/config/config.go b/rw_core/config/config.go
index b924376..f977be0 100644
--- a/rw_core/config/config.go
+++ b/rw_core/config/config.go
@@ -50,6 +50,7 @@
 	default_InCompetingMode     = true
 	default_LongRunningRequestTimeout = int64(2000)
 	default_DefaultRequestTimeout = int64(500)
+	default_CoreBindingKey      = "voltha_backend_name"
 )
 
 // RWCoreFlags represents the set of configurations used by the read-write core service
@@ -79,6 +80,7 @@
 	InCompetingMode     bool
 	LongRunningRequestTimeout int64
 	DefaultRequestTimeout int64
+	CoreBindingKey      string
 }
 
 func init() {
@@ -112,6 +114,7 @@
 		InCompetingMode:     default_InCompetingMode,
 		DefaultRequestTimeout:default_DefaultRequestTimeout,
 		LongRunningRequestTimeout:default_LongRunningRequestTimeout,
+		CoreBindingKey:      default_CoreBindingKey,
 	}
 	return &rwCoreFlag
 }
@@ -181,6 +184,9 @@
 	help = fmt.Sprintf("Show startup banner log lines")
 	flag.BoolVar(&cf.Banner, "banner", default_Banner, help)
 
+	help = fmt.Sprintf("The name of the meta-key whose value is the rw-core group to which the ofagent is bound")
+	flag.StringVar(&(cf.CoreBindingKey), "core_binding_key", default_CoreBindingKey, help)
+
 	flag.Parse()
 
 	containerName := getContainerInfo()