diff --git a/utils/misc/src/main/java/org/onlab/util/Tools.java b/utils/misc/src/main/java/org/onlab/util/Tools.java
index 61b1a8e..9bc6436 100644
--- a/utils/misc/src/main/java/org/onlab/util/Tools.java
+++ b/utils/misc/src/main/java/org/onlab/util/Tools.java
@@ -39,6 +39,7 @@
 import java.util.Collection;
 import java.util.Dictionary;
 import java.util.List;
+import java.util.Optional;
 import java.util.Random;
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
@@ -583,6 +584,17 @@
         return StreamSupport.stream(it.spliterator(), false);
     }
 
+    /**
+     * Converts an optional to a stream.
+     *
+     * @param optional optional to convert
+     * @param <T> type of enclosed value
+     * @return optional as a stream
+     */
+    public static <T> Stream<T> stream(Optional<T> optional) {
+        return optional.map(Stream::of).orElse(Stream.empty());
+    }
+
     // Auxiliary path visitor for recursive directory structure copying.
     private static class DirectoryCopier extends SimpleFileVisitor<Path> {
         private Path src;
diff --git a/utils/misc/src/test/java/org/onlab/util/ToolsTest.java b/utils/misc/src/test/java/org/onlab/util/ToolsTest.java
index 56f0f95..9466bde 100644
--- a/utils/misc/src/test/java/org/onlab/util/ToolsTest.java
+++ b/utils/misc/src/test/java/org/onlab/util/ToolsTest.java
@@ -18,8 +18,11 @@
 import org.junit.Test;
 import org.onlab.junit.TestTools;
 
+import java.util.Optional;
 import java.util.concurrent.ThreadFactory;
+import java.util.stream.Stream;
 
+import static org.hamcrest.Matchers.is;
 import static org.junit.Assert.*;
 import static org.onlab.junit.TestTools.assertAfter;
 
@@ -73,4 +76,14 @@
         assertAfter(100, () -> assertEquals("incorrect thread state", Thread.State.TERMINATED, t.getState()));
     }
 
+    @Test
+    public void testOptionalStream() {
+        Stream<Object> empty = Tools.stream(Optional.empty());
+        assertThat(empty.count(), is(0L));
+
+        String value = "value";
+        Stream<String> stream = Tools.stream(Optional.of(value));
+        assertThat(stream.allMatch(value::equals), is(true));
+    }
+
 }
