diff --git a/cli/src/main/java/org/onosproject/cli/net/DeviceConfigSetterCommand.java b/cli/src/main/java/org/onosproject/cli/net/DeviceConfigSetterCommand.java
new file mode 100644
index 0000000..dabcd79
--- /dev/null
+++ b/cli/src/main/java/org/onosproject/cli/net/DeviceConfigSetterCommand.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * 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 org.onosproject.cli.net;
+
+import org.apache.karaf.shell.commands.Argument;
+import org.apache.karaf.shell.commands.Command;
+import org.onosproject.cli.AbstractShellCommand;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.behaviour.ConfigSetter;
+import org.onosproject.net.driver.DriverHandler;
+import org.onosproject.net.driver.DriverService;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+/**
+ * Command that sets the configuration included in the specified file to the
+ * specified device. It prints the response of the device.
+ *
+ * This is a temporary development tool for use until yang integration is complete.
+ * This uses a not properly specified behavior. DO NOT USE AS AN EXAMPLE.
+ */
+//Temporary Developer tool, NOT TO BE USED in production or as example for
+// future commands.
+//FIXME this should eventually be removed.
+
+@Command(scope = "onos", name = "device-setconfiguration",
+        description = "Sets the configuration of the specified file to the " +
+                "specified device.")
+public class DeviceConfigSetterCommand extends AbstractShellCommand {
+
+    @Argument(index = 0, name = "uri", description = "Device ID",
+            required = true, multiValued = false)
+    private String uri = null;
+    @Argument(index = 1, name = "cfgFile", description = "Configuration file",
+            required = true, multiValued = false)
+    private String cfgFile = null;
+    private DeviceId deviceId;
+
+    @Override
+    protected void execute() {
+        DriverService service = get(DriverService.class);
+        deviceId = DeviceId.deviceId(uri);
+        DriverHandler h = service.createHandler(deviceId);
+        ConfigSetter config = h.behaviour(ConfigSetter.class);
+        checkNotNull(cfgFile, "Configuration file cannot be null");
+        print(config.setConfiguration(cfgFile));
+    }
+
+}
diff --git a/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
index f9dde70..2c75eff 100644
--- a/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
+++ b/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
@@ -127,6 +127,12 @@
             </completers>
         </command>
         <command>
+            <action class="org.onosproject.cli.net.DeviceConfigSetterCommand"/>
+            <completers>
+                <ref component-id="deviceIdCompleter"/>
+            </completers>
+        </command>
+        <command>
             <action class="org.onosproject.cli.net.DevicePortGetterCommand"/>
             <completers>
                 <ref component-id="deviceIdCompleter"/>
diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/ConfigSetter.java b/core/api/src/main/java/org/onosproject/net/behaviour/ConfigSetter.java
new file mode 100644
index 0000000..c6105a1
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/net/behaviour/ConfigSetter.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * 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 org.onosproject.net.behaviour;
+
+import org.onosproject.net.driver.HandlerBehaviour;
+
+/**
+ * Behaviour that sets the configuration to a device.
+ *
+ */
+//Temporary Developer tool, NOT TO BE USED in production or as example for
+// future drivers/behaviors.
+//FIXME this should eventually be removed.
+public interface ConfigSetter extends HandlerBehaviour {
+
+    /**
+     * Sets the configuration contained in the file at the file path, returns
+     * the response of the device.
+     * @param filePath the path to the configuration file.
+     * @return string response received from the device.
+     */
+    String setConfiguration(String filePath);
+}
diff --git a/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfConfigSetter.java b/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfConfigSetter.java
new file mode 100644
index 0000000..2534ca9
--- /dev/null
+++ b/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfConfigSetter.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * 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 org.onosproject.drivers.netconf;
+
+import org.onosproject.net.behaviour.ConfigSetter;
+import org.onosproject.net.driver.AbstractHandlerBehaviour;
+import com.google.common.base.Preconditions;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.driver.DriverHandler;
+import org.onosproject.netconf.NetconfController;
+import org.slf4j.Logger;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+import static org.slf4j.LoggerFactory.getLogger;
+
+/**
+ * Sets the configuration included in the specified file to the specified
+ * device. It returns the response of the device.
+ * Temporary Developer tool, NOT TO BE USED in production or as example for
+ * future drivers/behaviors.
+ */
+//FIXME this should eventually be removed.
+
+public class NetconfConfigSetter extends AbstractHandlerBehaviour
+        implements ConfigSetter {
+
+    private final Logger log = getLogger(getClass());
+
+    private static final String UNABLE_TO_READ_FILE =
+            "Configuration cannot be retrieved from file";
+    private static final String UNABLE_TO_SET_CONFIG =
+            "Configuration cannot be set";
+
+    @Override
+    public String setConfiguration(String filePath) {
+        DriverHandler handler = handler();
+        NetconfController controller = handler.get(NetconfController.class);
+        DeviceId deviceId = handler.data().deviceId();
+        Preconditions.checkNotNull(controller, "Netconf controller is null");
+
+        String request;
+        try {
+            request = new String(Files.readAllBytes(Paths.get(filePath)));
+        } catch (IOException e) {
+            log.error("Cannot read configuration file", e);
+            return UNABLE_TO_READ_FILE;
+        }
+
+        try {
+            return controller.getDevicesMap()
+                    .get(deviceId)
+                    .getSession()
+                    .requestSync(request);
+        } catch (IOException e) {
+            log.error("Configuration could not be set", e);
+        }
+        return UNABLE_TO_SET_CONFIG;
+    }
+
+}
diff --git a/drivers/netconf/src/main/resources/netconf-drivers.xml b/drivers/netconf/src/main/resources/netconf-drivers.xml
index dc54612..d9930ad 100644
--- a/drivers/netconf/src/main/resources/netconf-drivers.xml
+++ b/drivers/netconf/src/main/resources/netconf-drivers.xml
@@ -22,10 +22,14 @@
                    impl="org.onosproject.drivers.netconf.NetconfControllerConfig"/>
         <behaviour api="org.onosproject.net.behaviour.ConfigGetter"
                    impl="org.onosproject.drivers.netconf.NetconfConfigGetter"/>
+        <behaviour api="org.onosproject.net.behaviour.ConfigSetter"
+                   impl="org.onosproject.drivers.netconf.NetconfConfigSetter"/>
     </driver>
     <driver name="netconf" extends="default">
         <behaviour api="org.onosproject.net.behaviour.ConfigGetter"
                    impl="org.onosproject.drivers.netconf.NetconfConfigGetter"/>
+        <behaviour api="org.onosproject.net.behaviour.ConfigSetter"
+                   impl="org.onosproject.drivers.netconf.NetconfConfigSetter"/>
     </driver>
 </drivers>
 
