diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/ProtectedIntentMonitor.java b/web/gui/src/main/java/org/onosproject/ui/impl/ProtectedIntentMonitor.java
index 5d928a0..3a92428 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/ProtectedIntentMonitor.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/ProtectedIntentMonitor.java
@@ -17,6 +17,7 @@
 package org.onosproject.ui.impl;
 
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Sets;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.ElementId;
@@ -38,6 +39,7 @@
 import org.onosproject.ui.topo.Highlights;
 import org.onosproject.ui.topo.HostHighlight;
 import org.onosproject.ui.topo.LinkHighlight.Flavor;
+import org.onosproject.ui.topo.Mod;
 import org.onosproject.ui.topo.NodeHighlight;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -60,7 +62,18 @@
 
     private static final Logger log =
             LoggerFactory.getLogger(ProtectedIntentMonitor.class);
-    public static final String PRIMARY_PATH_TAG = "protection1";
+    private static final String PRIMARY_PATH_TAG = "protection1";
+
+    private static final String PROT_PRIMARY = "protPrimary";
+    private static final String PROT_BACKUP = "protBackup";
+
+
+    private static final Mod MOD_PROT_PRIMARY = new Mod(PROT_PRIMARY);
+    private static final Set<Mod> PROTECTED_MOD_PRIMARY_SET = ImmutableSet.of(MOD_PROT_PRIMARY);
+
+    private static final Mod MOD_PROT_BACKUP = new Mod(PROT_BACKUP);
+    private static final Set<Mod> PROTECTED_MOD_BACKUP_SET = ImmutableSet.of(MOD_PROT_BACKUP);
+
 
     /**
      * Designates the different modes of operation.
@@ -202,10 +215,13 @@
                 //Flavor is swapped so green is primary path.
                 if (usingBackup(primary)) {
                     //the backup becomes in use so we have a dotted line
-                    processLinks(linkMap, backup, Flavor.PRIMARY_HIGHLIGHT, isOptical, true);
+                    processLinks(linkMap, backup, Flavor.PRIMARY_HIGHLIGHT,
+                                 isOptical, true, PROTECTED_MOD_BACKUP_SET);
                 } else {
-                    processLinks(linkMap, primary, Flavor.SECONDARY_HIGHLIGHT, isOptical, true);
-                    processLinks(linkMap, backup, Flavor.PRIMARY_HIGHLIGHT, isOptical, false);
+                    processLinks(linkMap, primary, Flavor.PRIMARY_HIGHLIGHT,
+                                 isOptical, true, PROTECTED_MOD_PRIMARY_SET);
+                    processLinks(linkMap, backup, Flavor.SECONDARY_HIGHLIGHT,
+                                 isOptical, false, PROTECTED_MOD_BACKUP_SET);
                 }
                 updateHighlights(highlights, primary);
                 updateHighlights(highlights, backup);
@@ -279,7 +295,7 @@
 
     private void processLinks(TrafficLinkMap linkMap, Iterable<Link> links,
                               Flavor flavor, boolean isOptical,
-                              boolean showTraffic) {
+                              boolean showTraffic, Set<Mod> mods) {
         if (links != null) {
             for (Link link : links) {
                 TrafficLink tlink = linkMap.add(link);
@@ -288,6 +304,7 @@
                 if (showTraffic) {
                     tlink.antMarch(true);
                 }
+                tlink.tagMods(mods);
             }
         }
     }
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/topo/util/TrafficLink.java b/web/gui/src/main/java/org/onosproject/ui/impl/topo/util/TrafficLink.java
index 0089292..16d3db7 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/topo/util/TrafficLink.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/topo/util/TrafficLink.java
@@ -22,11 +22,13 @@
 import org.onosproject.ui.topo.BiLink;
 import org.onosproject.ui.topo.LinkHighlight;
 import org.onosproject.ui.topo.LinkHighlight.Flavor;
+import org.onosproject.ui.topo.Mod;
 import org.onosproject.ui.topo.TopoUtils;
 
-import static org.onosproject.ui.topo.LinkHighlight.Flavor.NO_HIGHLIGHT;
-import static org.onosproject.ui.topo.LinkHighlight.Flavor.PRIMARY_HIGHLIGHT;
-import static org.onosproject.ui.topo.LinkHighlight.Flavor.SECONDARY_HIGHLIGHT;
+import java.util.HashSet;
+import java.util.Set;
+
+import static org.onosproject.ui.topo.LinkHighlight.Flavor.*;
 
 /**
  * Representation of a link and its inverse, and associated traffic data.
@@ -45,6 +47,7 @@
     private boolean hasTraffic = false;
     private boolean isOptical = false;
     private boolean antMarch = false;
+    private Set<Mod> mods = new HashSet<>();
 
     /**
      * Constructs a traffic link for the given key and initial link.
@@ -90,6 +93,19 @@
     }
 
     /**
+     * Tags this traffic link with the mods to be used in visual rendering.
+     *
+     * @param mods the mods to tag on this link
+     * @return self, for chaining
+     */
+    public TrafficLink tagMods(Set<Mod> mods) {
+        if (mods != null) {
+            this.mods.addAll(mods);
+        }
+        return this;
+    }
+
+    /**
      * Adds load statistics, marks the traffic link as having traffic.
      *
      * @param load load to add
@@ -103,7 +119,7 @@
      * load {@link Load#rate rate} is greater than the given threshold
      * (expressed in bytes per second).
      *
-     * @param load load to add
+     * @param load      load to add
      * @param threshold threshold to register traffic
      */
     public void addLoad(Load load, double threshold) {
@@ -143,14 +159,23 @@
     }
 
     private LinkHighlight highlightForStats(StatsType type) {
-        return new LinkHighlight(linkId(), SECONDARY_HIGHLIGHT)
+        LinkHighlight hlite = new LinkHighlight(linkId(), SECONDARY_HIGHLIGHT)
                 .setLabel(generateLabel(type));
+        if (!mods.isEmpty()) {
+            mods.forEach(hlite::addMod);
+        }
+        return hlite;
     }
 
     private LinkHighlight highlightForFlowCount(StatsType type) {
         Flavor flavor = flows > 0 ? PRIMARY_HIGHLIGHT : SECONDARY_HIGHLIGHT;
-        return new LinkHighlight(linkId(), flavor)
+        LinkHighlight hlite = new LinkHighlight(linkId(), flavor)
                 .setLabel(generateLabel(type));
+        if (!mods.isEmpty()) {
+            mods.forEach(hlite::addMod);
+        }
+        return hlite;
+
     }
 
     private LinkHighlight highlightForTagging(StatsType type) {
@@ -162,6 +187,9 @@
         if (antMarch) {
             hlite.addMod(LinkHighlight.MOD_ANIMATED);
         }
+        if (!mods.isEmpty()) {
+            mods.forEach(hlite::addMod);
+        }
         return hlite;
     }
 
diff --git a/web/gui/src/main/webapp/app/view/topo/protected-intents.css b/web/gui/src/main/webapp/app/view/topo/protected-intents.css
new file mode 100644
index 0000000..6fca91c
--- /dev/null
+++ b/web/gui/src/main/webapp/app/view/topo/protected-intents.css
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2017-present 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.
+ */
+
+#ov-topo svg .link.protPrimary {
+    stroke-width: 5px;
+    stroke: #00cc00;
+}
+
+#ov-topo svg .link.protBackup {
+    stroke-width: 4px;
+    stroke: #cc4400;
+}
\ No newline at end of file
diff --git a/web/gui/src/main/webapp/index.html b/web/gui/src/main/webapp/index.html
index b391cde..f053f02 100644
--- a/web/gui/src/main/webapp/index.html
+++ b/web/gui/src/main/webapp/index.html
@@ -216,6 +216,7 @@
     <!-- Builtin views stylesheets. -->
     <link rel="stylesheet" href="app/view/topo/topo.css">
     <link rel="stylesheet" href="app/view/topo/topo-theme.css">
+    <link rel="stylesheet" href="app/view/topo/protected-intents.css">
     <link rel="stylesheet" href="app/view/device/device.css">
     <link rel="stylesheet" href="app/view/device/device-theme.css">
     <link rel="stylesheet" href="app/view/flow/flow.css">
