diff --git a/core/api/src/main/java/org/onosproject/net/pi/model/PiPipeconf.java b/core/api/src/main/java/org/onosproject/net/pi/model/PiPipeconf.java
index c7142bf..098bef7 100644
--- a/core/api/src/main/java/org/onosproject/net/pi/model/PiPipeconf.java
+++ b/core/api/src/main/java/org/onosproject/net/pi/model/PiPipeconf.java
@@ -115,6 +115,11 @@
         TOFINO_CONTEXT_JSON,
 
         /**
+         * Stratum Fixed Pipeline Model (FPM) pipeline configuration binary.
+         */
+        STRATUM_FPM_BIN,
+
+        /**
          * CPU port file in UTF 8 encoding.
          */
         // TODO: consider a better way to get the CPU port in the interpreter
diff --git a/drivers/stratum/src/main/java/org/onosproject/drivers/stratum/FpmPipelineProgrammable.java b/drivers/stratum/src/main/java/org/onosproject/drivers/stratum/FpmPipelineProgrammable.java
new file mode 100644
index 0000000..2faf8cd
--- /dev/null
+++ b/drivers/stratum/src/main/java/org/onosproject/drivers/stratum/FpmPipelineProgrammable.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.stratum;
+
+import org.apache.commons.io.IOUtils;
+import org.onosproject.drivers.p4runtime.AbstractP4RuntimePipelineProgrammable;
+import org.onosproject.net.behaviour.PiPipelineProgrammable;
+import org.onosproject.net.pi.model.PiPipeconf;
+
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.Optional;
+
+import static org.onosproject.net.pi.model.PiPipeconf.ExtensionType.STRATUM_FPM_BIN;
+
+/**
+ * Implementation of the PiPipelineProgrammable behaviour for a Stratum
+ * Fixed-Pipeline Model (FPM) target.
+ */
+public class FpmPipelineProgrammable
+        extends AbstractP4RuntimePipelineProgrammable
+        implements PiPipelineProgrammable {
+
+    @Override
+    public Optional<PiPipeconf> getDefaultPipeconf() {
+        return Optional.empty();
+    }
+
+    @Override
+    public ByteBuffer createDeviceDataBuffer(PiPipeconf pipeconf) {
+        if (pipeconf.extension(STRATUM_FPM_BIN).isEmpty()) {
+            log.warn("Missing extension {} in pipeconf {}",
+                     STRATUM_FPM_BIN, pipeconf.id());
+            return null;
+        }
+        try {
+            return ByteBuffer.wrap(IOUtils.toByteArray(
+                    pipeconf.extension(STRATUM_FPM_BIN).get()));
+        } catch (IOException e) {
+            log.warn("Unable to read {} from pipeconf {}",
+                     STRATUM_FPM_BIN, pipeconf.id());
+            return null;
+        }
+    }
+}
diff --git a/drivers/stratum/src/main/resources/stratum-drivers.xml b/drivers/stratum/src/main/resources/stratum-drivers.xml
index 72e224b..86e18b5 100644
--- a/drivers/stratum/src/main/resources/stratum-drivers.xml
+++ b/drivers/stratum/src/main/resources/stratum-drivers.xml
@@ -30,4 +30,10 @@
         <property name="tableReadFromMirror">true</property>
         <property name="actionGroupReadFromMirror">true</property>
     </driver>
+
+    <driver name="stratum-fpm" manufacturer="Open Networking Foundation"
+            hwVersion="FPM" swVersion="Stratum" extends="stratum">
+        <behaviour api="org.onosproject.net.behaviour.PiPipelineProgrammable"
+                   impl="org.onosproject.drivers.stratum.FpmPipelineProgrammable"/>
+    </driver>
 </drivers>
