diff --git a/instances/templates/instance.html b/instances/templates/instance.html
index b83809b..7b45eef 100644
--- a/instances/templates/instance.html
+++ b/instances/templates/instance.html
@@ -878,6 +878,7 @@
                                         <th>{% trans 'MAC' %}</th>
                                         <th>{% trans 'IP Address' %}</th>
                                         <th>{% trans 'Source' %}</th>
+                                        <th>{% trans 'LinkState' %}</th>
                                         <th>{% trans 'Filter' %}</th>
                                         <th>{% trans 'Qos' %}</th>
                                         <th>{% trans 'Actions' %}</th>
@@ -886,11 +887,20 @@
                                     <tbody>
                                         {% for network in networks %}
                                         <tr>
-                                            <td class="col-sm-2"><label>eth{{ forloop.counter0 }}({{ network.target|default:"no target" }})</label></td>
-                                            <td><label>{{ network.mac }}</label></td>
-                                            <td><label>{{ network.ipv4|default:"unknown" }}</label></td>
-                                            <td><label>{{ network.nic }}</label></td>
-                                            <td><label>{{ network.filterref|default:"None" }}</label></td>
+                                            <td class="col-sm-1">eth{{ forloop.counter0 }}({{ network.target|default:"no target" }})</td>
+                                            <td>{{ network.mac }}</td>
+                                            <td>{{ network.ipv4|default:"unknown" }}</td>
+                                            <td>{{ network.nic }}</td>
+                                            <td>
+                                            <form method="post">{% csrf_token %}
+                                                <input name="mac" value="{{ network.mac }}" hidden/>
+                                                <input name="set_link_state" value="{{ network.state }}" hidden/>
+                                                <input type="checkbox" {% if network.state == 'up' %} checked
+                                                {% endif %} onclick='submit();' />
+                                                {% trans 'active' %}
+                                            </form>
+                                            </td>
+                                            <td>{{ network.filterref|default:"None" }}</td>
                                             <td>
                                                 <form class="form-horizontal" method="post" name="add_qos{{ forloop.counter0 }}" role="form">{% csrf_token %}
                                                     <input type="text" name="net-mac-{{ forloop.counter0 }}" value="{{ network.mac }}" hidden/>
diff --git a/instances/views.py b/instances/views.py
index 0de54b0..495c790 100644
--- a/instances/views.py
+++ b/instances/views.py
@@ -873,6 +873,15 @@ def instance(request, compute_id, vname):
                     addlogmsg(request.user.username, instance.name, msg)
                     return HttpResponseRedirect(request.get_full_path() + '#network')
 
+                if 'set_link_state' in request.POST:
+                    mac_address = request.POST.get('mac', '')
+                    state = request.POST.get('set_link_state')
+                    state = 'down' if state == 'up' else 'up'
+                    conn.set_link_state(mac_address, state)
+                    msg = _("Set Link State: {}".format(state))
+                    addlogmsg(request.user.username, instance.name, msg)
+                    return HttpResponseRedirect(request.get_full_path() + '#network')
+
                 if 'set_qos' in request.POST:
                     qos_dir = request.POST.get('qos_direction', '')
                     average = request.POST.get('qos_average') or 0
diff --git a/vrtManager/instance.py b/vrtManager/instance.py
index 3609bb2..2605b93 100644
--- a/vrtManager/instance.py
+++ b/vrtManager/instance.py
@@ -331,7 +331,6 @@ class wvmInstance(wvmConnect):
         return {}
 
     def refresh_interface_addresses(self):
-
         self._ip_cache = {"qemuga": {}, "arp": {}}
 
         if not self.get_status() == 1:
@@ -353,6 +352,7 @@ class wvmInstance(wvmConnect):
                 mac_inst = net.xpath('mac/@address')[0]
                 nic_inst = net.xpath('source/@network|source/@bridge|source/@dev')[0]
                 target_inst = '' if not net.xpath('target/@dev') else net.xpath('target/@dev')[0]
+                link_state = 'up' if not net.xpath('link') else net.xpath('link/@state')[0]
                 filterref_inst = '' if not net.xpath('filterref/@filter') else net.xpath('filterref/@filter')[0]
                 if net.xpath('bandwidth/inbound'):
                     in_attr = net.xpath('bandwidth/inbound')[0]
@@ -374,6 +374,7 @@ class wvmInstance(wvmConnect):
                 result.append({'mac': mac_inst,
                                'nic': nic_inst,
                                'target': target_inst,
+                               'state': link_state,
                                'ipv4': ipv4,
                                'ipv6': ipv6,
                                'filterref': filterref_inst,
@@ -1275,6 +1276,24 @@ class wvmInstance(wvmConnect):
         new_xml = ElementTree.tostring(tree)
         self._defineXML(new_xml)
 
+    def set_link_state(self, mac_address, state):
+        tree = etree.fromstring(self._XMLDesc(0))
+        for interface in tree.findall('devices/interface'):
+            source = interface.find('mac')
+            if source.get('address') == mac_address:
+                link = interface.find('link')
+                if link is not None:
+                    interface.remove(link)
+                link_el = etree.Element("link")
+                link_el.attrib["state"] = state
+                interface.append(link_el)
+                new_xml = etree.tostring(interface)
+                if self.get_status() == 1:
+                    self.instance.updateDeviceFlags(new_xml, VIR_DOMAIN_AFFECT_LIVE)
+                    self.instance.updateDeviceFlags(new_xml, VIR_DOMAIN_AFFECT_CONFIG)
+                if self.get_status() == 5:
+                    self.instance.updateDeviceFlags(new_xml, VIR_DOMAIN_AFFECT_CONFIG)
+
     def _set_options(self, tree, options):
         for o in ['title', 'description']:
             option = tree.find(o)
@@ -1388,10 +1407,12 @@ class wvmInstance(wvmConnect):
             return None
 
         dev = util.get_xml_path(self._XMLDesc(0), func=_get_agent)
-        state = dev.xpath("target/@state")[0]
-        if dev and state == "connected":
-            return True
-        return False
+        if len(dev) > 0:
+            states = dev.xpath("target/@state")
+            state = states[0] if len(states) > 0 else ''
+            if state == "connected":
+                return True
+            return False