diff --git a/web/gui/src/main/webapp/app/view/tunnel/tunnel.css b/web/gui/src/main/webapp/app/view/tunnel/tunnel.css
new file mode 100644
index 0000000..da7d06d
--- /dev/null
+++ b/web/gui/src/main/webapp/app/view/tunnel/tunnel.css
@@ -0,0 +1,27 @@
+/*
+ * 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.
+ */
+
+/*
+ ONOS GUI -- Link View -- CSS file
+ */
+
+#ov-tunnel h2 {
+    display: inline-block;
+}
+
+#ov-tunnel div.ctrl-btns {
+    width: 45px;
+}
\ No newline at end of file
diff --git a/web/gui/src/main/webapp/app/view/tunnel/tunnel.html b/web/gui/src/main/webapp/app/view/tunnel/tunnel.html
new file mode 100644
index 0000000..3f1d761
--- /dev/null
+++ b/web/gui/src/main/webapp/app/view/tunnel/tunnel.html
@@ -0,0 +1,71 @@
+<!--
+  ~ 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.
+  -->
+
+<!-- Tunnel partial HTML -->
+<div id="ov-tunnel">
+    <div class="tabular-header">
+        <h2>Tunnels ({{tableData.length}} total)</h2>
+        <div class="ctrl-btns">
+            <div class="refresh" ng-class="{active: autoRefresh}"
+                 icon icon-size="36" icon-id="refresh"
+                 tooltip tt-msg="autoRefreshTip"
+                 ng-click="toggleRefresh()"></div>
+        </div>
+    </div>
+
+    <div class="summary-list" onos-table-resize>
+        <div ng-show="loading" class="loading-wheel"
+             icon icon-id="loading" icon-size="75"></div>
+
+        <div class="table-header" onos-sortable-header>
+            <table>
+                <tr>
+                    <td colId="id" sortable>ID </td>
+                    <td colId="name" sortable>Name</td>
+                    <td colId="one" sortable>Port 1 </td>
+                    <td colId="two" sortable>Port 2 </td>
+                    <td colId="type" sortable>Type </td>
+                    <td colId="group_id" sortable>Group Id</td>
+                    <td colId="bandwidth" sortable>Bandwidth</td>
+                    <td colId="path" sortable>Path</td>
+                </tr>
+            </table>
+        </div>
+
+        <div class="table-body">
+            <table onos-flash-changes id-prop="one">
+                <tr ng-if="!tableData.length" class="no-data">
+                    <td colspan="6">
+                        No tunnels found
+                    </td>
+                </tr>
+
+                <tr ng-repeat="tunnel in tableData track by $index"
+                    ng-repeat-complete row-id="{{tunnel.id}}">
+                    <td>{{tunnel.id}}</td>
+                    <td>{{tunnel.name}}</td>
+                    <td>{{tunnel.one}}</td>
+                    <td>{{tunnel.two}}</td>
+                    <td>{{tunnel.type}}</td>
+                    <td>{{tunnel.group_id}}</td>
+                    <td>{{tunnel.path}}</td>
+                </tr>
+            </table>
+        </div>
+
+    </div>
+
+</div>
diff --git a/web/gui/src/main/webapp/app/view/tunnel/tunnel.js b/web/gui/src/main/webapp/app/view/tunnel/tunnel.js
new file mode 100644
index 0000000..5cde045
--- /dev/null
+++ b/web/gui/src/main/webapp/app/view/tunnel/tunnel.js
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ */
+
+/*
+ ONOS GUI -- Host View Module
+ */
+
+(function () {
+    'use strict';
+
+    angular.module('ovTunnel', [])
+    .controller('OvTunnelCtrl',
+        ['$log', '$scope', '$sce', 'FnService', 'TableBuilderService',
+
+        function ($log, $scope, $sce, fs, tbs) {
+            tbs.buildTable({
+                scope: $scope,
+                tag: 'tunnel'
+            });
+
+            $scope.$watch('tableData', function () {
+                if (!fs.isEmptyObject($scope.tableData)) {
+                    $scope.tableData.forEach(function (tunnel) {
+                        //tunnel.direction = $sce.trustAsHtml(tunnel.direction);
+                    });
+                }
+            });
+
+            $log.log('OvTunnelCtrl has been created');
+        }]);
+}());
diff --git a/web/gui/src/main/webapp/index.html b/web/gui/src/main/webapp/index.html
index 4138e83..154f941 100644
--- a/web/gui/src/main/webapp/index.html
+++ b/web/gui/src/main/webapp/index.html
@@ -121,6 +121,7 @@
     <script src="app/view/app/app.js"></script>
     <script src="app/view/settings/settings.js"></script>
     <script src="app/view/cluster/cluster.js"></script>
+    <script src="app/view/tunnel/tunnel.js"></script>
 
     <!-- This is where contributed javascript will get injected -->
     <!-- {INJECTED-JAVASCRIPT-START} -->
@@ -138,6 +139,7 @@
     <link rel="stylesheet" href="app/view/app/app.css">
     <link rel="stylesheet" href="app/view/settings/settings.css">
     <link rel="stylesheet" href="app/view/cluster/cluster.css">
+    <link rel="stylesheet" href="app/view/tunnel/tunnel.css">
 
     <!-- This is where contributed stylesheets will get injected -->
     <!-- {INJECTED-STYLESHEETS-START} -->
