code: func Init(dc driverapi.DriverCallback, config map[string]interface{}) error {
  	c := driverapi.Capability{
  		DataScope:         datastore.GlobalScope,
  		ConnectivityScope: datastore.GlobalScope,
  	}
  
  	d := &driver{
  		networks: networkTable{},
  		config:   config,
  	}
  
  	if data, ok := config[netlabel.GlobalKVClient]; ok {
  		var err error
  		dsc, ok := data.(discoverapi.DatastoreConfigData)
  		if !ok {
  			return types.InternalErrorf("incorrect data in datastore configuration: %v", data)
  		}
  		d.store, err = datastore.NewDataStoreFromConfig(dsc)
  		if err != nil {
  			return types.InternalErrorf("failed to initialize data store: %v", err)
  		}
  	}
  
  	if data, ok := config[netlabel.LocalKVClient]; ok {
  		var err error
  		dsc, ok := data.(discoverapi.DatastoreConfigData)
  		if !ok {
  			return types.InternalErrorf("incorrect data in datastore configuration: %v", data)
  		}
  		d.localStore, err = datastore.NewDataStoreFromConfig(dsc)
  		if err != nil {
  			return types.InternalErrorf("failed to initialize local data store: %v", err)
  		}
  	}
  
  	d.restoreHNSNetworks()
  
  	return dc.RegisterDriver(networkType, d, c)
  }
docs: // Init registers a new instance of overlay driver