diff --git a/src/vnm_mad/remotes/802.1Q/HostManaged.rb b/src/vnm_mad/remotes/802.1Q/HostManaged.rb
index 28e9a602be..90cbff26e1 100644
--- a/src/vnm_mad/remotes/802.1Q/HostManaged.rb
+++ b/src/vnm_mad/remotes/802.1Q/HostManaged.rb
@@ -17,8 +17,9 @@
 require 'OpenNebulaNetwork'
 
 class OpenNebulaHM < OpenNebulaNetwork
+    XPATH_FILTER = "TEMPLATE/NIC[VLAN='YES']"
     def initialize(vm, hypervisor = nil)
-        super(vm,hypervisor)
+        super(vm,XPATH_FILTER,hypervisor)
         @bridges = get_interfaces
     end
 
diff --git a/src/vnm_mad/remotes/Firewall.rb b/src/vnm_mad/remotes/Firewall.rb
index 2cc4f98eca..c139bfeabe 100644
--- a/src/vnm_mad/remotes/Firewall.rb
+++ b/src/vnm_mad/remotes/Firewall.rb
@@ -15,8 +15,10 @@
 #--------------------------------------------------------------------------- #
 
 class OpenNebulaFirewall < OpenNebulaNetwork
+    XPATH_FILTER =  "TEMPLATE/NIC[ICMP|WHITE_PORTS_TCP|WHITE_PORTS_UDP|" <<
+                    "BLACK_PORTS_TCP|BLACK_PORTS_UDP]"
     def initialize(vm, hypervisor = nil)
-        super(vm,hypervisor)
+        super(vm,XPATH_FILTER,hypervisor)
     end
     def activate
         vm_id =  @vm['ID']
diff --git a/src/vnm_mad/remotes/OpenNebulaNetwork.rb b/src/vnm_mad/remotes/OpenNebulaNetwork.rb
index a944adeb8d..284eb7a680 100644
--- a/src/vnm_mad/remotes/OpenNebulaNetwork.rb
+++ b/src/vnm_mad/remotes/OpenNebulaNetwork.rb
@@ -45,14 +45,15 @@ COMMANDS = {
 class VM
     attr_accessor :nics, :vm_info
 
-    def initialize(vm_root, hypervisor)
-        @vm_root    = vm_root
-        @hypervisor = hypervisor
-        @vm_info    = Hash.new
+    def initialize(vm_root, xpath_filter, hypervisor)
+        @vm_root      = vm_root
+        @xpath_filter = xpath_filter
+        @hypervisor   = hypervisor
+        @vm_info      = Hash.new
 
         nics = Nics.new(@hypervisor)
 
-        @vm_root.elements.each("TEMPLATE/NIC[VLAN='YES']") do |nic_element|
+        @vm_root.elements.each(@xpath_filter) do |nic_element|
             nic =  nics.new_nic
 
             nic_element.elements.each('*') do |nic_attribute|
@@ -96,14 +97,14 @@ class OpenNebulaNetwork
         self.new(vm_xml, hypervisor)
     end
 
-    def initialize(vm_tpl, hypervisor=nil)
+    def initialize(vm_tpl, xpath_filter, hypervisor=nil)
         if !hypervisor
             @hypervisor = detect_hypervisor
         else
             @hypervisor = hypervisor
         end
 
-        @vm = VM.new(REXML::Document.new(vm_tpl).root, @hypervisor)
+        @vm = VM.new(REXML::Document.new(vm_tpl).root, xpath_filter, @hypervisor)
     end
 
     def process(&block)
diff --git a/src/vnm_mad/remotes/ebtables/Ebtables.rb b/src/vnm_mad/remotes/ebtables/Ebtables.rb
index c22ad69340..fc3dead298 100644
--- a/src/vnm_mad/remotes/ebtables/Ebtables.rb
+++ b/src/vnm_mad/remotes/ebtables/Ebtables.rb
@@ -17,8 +17,9 @@
 require 'OpenNebulaNetwork'
 
 class EbtablesVLAN < OpenNebulaNetwork
+    XPATH_FILTER = "TEMPLATE/NIC[VLAN='YES']"
     def initialize(vm, hypervisor = nil)
-        super(vm,hypervisor)
+        super(vm,XPATH_FILTER,hypervisor)
     end
 
     def ebtables(rule)
diff --git a/src/vnm_mad/remotes/ovswitch/OpenvSwitch.rb b/src/vnm_mad/remotes/ovswitch/OpenvSwitch.rb
index 9716d99f8a..2cdaeafd80 100644
--- a/src/vnm_mad/remotes/ovswitch/OpenvSwitch.rb
+++ b/src/vnm_mad/remotes/ovswitch/OpenvSwitch.rb
@@ -17,8 +17,9 @@
 require 'OpenNebulaNetwork'
 
 class OpenvSwitchVLAN < OpenNebulaNetwork
+    XPATH_FILTER = "TEMPLATE/NIC[VLAN='YES']"
     def initialize(vm, hypervisor = nil)
-        super(vm,hypervisor)
+        super(vm,XPATH_FILTER,hypervisor)
     end
 
     def activate
diff --git a/src/vnm_mad/remotes/test/OpenNebulaNetwork_spec.rb b/src/vnm_mad/remotes/test/OpenNebulaNetwork_spec.rb
index b97942055e..cfbfe8cf89 100644
--- a/src/vnm_mad/remotes/test/OpenNebulaNetwork_spec.rb
+++ b/src/vnm_mad/remotes/test/OpenNebulaNetwork_spec.rb
@@ -43,7 +43,7 @@ describe 'networking' do
         $capture_commands = {
             /virsh.*dumpxml/ => OUTPUT[:virsh_dumpxml]
         }
-        onevlan = OpenNebulaNetwork.new(OUTPUT[:onevm_show],"kvm")
+        onevlan = OpenNebulaNetwork.new(OUTPUT[:onevm_show],"TEMPLATE/NIC","kvm")
         nics_expected = [{:bridge=>"br0",
                           :ip=>"172.16.0.100",
                           :mac=>"02:00:ac:10:00:64",