diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/ControllerConfig.java b/core/api/src/main/java/org/onosproject/net/behaviour/ControllerConfig.java
new file mode 100644
index 0000000..bb8a788
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/net/behaviour/ControllerConfig.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2015 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 java.util.List;
+
+/**
+ * Device behaviour to obtain and set controllers at the device.
+ */
+public interface ControllerConfig {
+
+    //TODO: add other controller parameters as needed.
+
+    /**
+     * Obtain the list of controller which are currently configured.
+     * @return a list for controller descriptions
+     */
+    List<ControllerInfo> getControllers();
+
+    /**
+     * Set a list of controllers on a device.
+     * @param controllers a list of controller descriptions
+     */
+    void setControllers(List<ControllerInfo> controllers);
+
+}
diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/ControllerInfo.java b/core/api/src/main/java/org/onosproject/net/behaviour/ControllerInfo.java
new file mode 100644
index 0000000..9867622
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/net/behaviour/ControllerInfo.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2015 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.onlab.packet.IpAddress;
+
+/**
+ * Represents information for a device to connect to a controller.
+ */
+public class ControllerInfo {
+
+    public final IpAddress ip;
+    public final int tcpPort;
+
+    public ControllerInfo(IpAddress ip, int tcpPort) {
+        this.ip = ip;
+        this.tcpPort = tcpPort;
+    }
+}
diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/PortConfig.java b/core/api/src/main/java/org/onosproject/net/behaviour/PortConfig.java
new file mode 100644
index 0000000..0f0c1da
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/net/behaviour/PortConfig.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2015 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 com.google.common.primitives.UnsignedInteger;
+import org.onosproject.net.PortNumber;
+
+/**
+ * Means to configure a logical port at the device.
+ */
+public interface PortConfig {
+
+    /**
+     * Apply QoS configuration on a device.
+     * @param port a port number
+     * @param queueId an unsigned integer
+     */
+    void applyQoS(PortNumber port, UnsignedInteger queueId);
+
+    /**
+     * Remove a QoS configuration.
+     * @param port a port number
+     */
+    void removeQoS(PortNumber port);
+
+    /**
+     * Enable/disable administratively a port.
+     * @param port a port number
+     * @param state a boolean indicating state
+     */
+    void setEnabled(PortNumber port, boolean state);
+
+}
diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/QueueConfig.java b/core/api/src/main/java/org/onosproject/net/behaviour/QueueConfig.java
new file mode 100644
index 0000000..22f3ecb
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/net/behaviour/QueueConfig.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2015 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 com.google.common.primitives.UnsignedInteger;
+
+import java.util.Set;
+
+/**
+ * Means to alter a device's dataplane queues.
+ */
+public interface QueueConfig {
+
+    /**
+     * Obtain all queues configured on a device.
+     *
+     * @return a list of queue descriptions
+     */
+    Set<QueueInfo> getQueues();
+
+    /**
+     * Obtain a specific queue given a queue id.
+     *
+     * @param queueId an unsigned integer representing a queue id
+     * @return a queue description
+     */
+    QueueInfo getQueue(UnsignedInteger queueId);
+
+    /**
+     * Add a queue to a device.
+     *
+     * @param queue a queue description
+     */
+    void addQueue(QueueInfo queue);
+
+    /**
+     * Remove a queue from a device.
+     *
+     * @param queueId an unsigned integer
+     */
+    void removeQueue(UnsignedInteger queueId);
+
+}
diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/QueueInfo.java b/core/api/src/main/java/org/onosproject/net/behaviour/QueueInfo.java
new file mode 100644
index 0000000..25852b3
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/net/behaviour/QueueInfo.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2015 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 com.google.common.primitives.UnsignedInteger;
+
+/**
+ * Represents a dataplane queue.
+ */
+public class QueueInfo {
+
+    public enum Type {
+        /**
+         * Supports burst and priority as well as min and max rates.
+         */
+        FULL,
+
+        /**
+         * Only support min and max rates.
+         */
+        MINMAX
+    }
+
+    private final UnsignedInteger queueId;
+    private final Type type;
+    private final long minRate;
+    private final long maxRate;
+    private final long burst;
+    private final long priority;
+
+    public QueueInfo(UnsignedInteger queueId, Type type, long minRate,
+                     long maxRate, long burst, long priority) {
+        this.queueId = queueId;
+        this.type = type;
+        this.minRate = minRate;
+        this.maxRate = maxRate;
+        this.burst = burst;
+        this.priority = priority;
+    }
+
+    //TODO builder
+    // public static QueueInfoBuilder builder() {}
+}
