Index: html/pages/device/loadbalancer/lb_virtuals.inc.php
===================================================================
--- html/pages/device/loadbalancer/lb_virtuals.inc.php	(revision 7398)
+++ html/pages/device/loadbalancer/lb_virtuals.inc.php	(working copy)
@@ -73,6 +73,21 @@
       case 3:
         $virt_type = "reject";
         break;
+      case 4:
+        $virt_type="fastl4<br />&nbsp;&nbsp;".$pool;
+        break;
+      case 5:
+        $virt_type="fasthttp<br />&nbsp;&nbsp;".$pool;
+        break;
+      case 6:
+        $virt_type="stateless<br />&nbsp;&nbsp;".$pool;
+        break;
+      case 7:
+        $virt_type="dhcp-relay<br />&nbsp;&nbsp;".$pool;
+        break;
+      case 8:
+        $virt_type="internal";
+        break;
     }
 
     if ($virt['virt_rules'])
@@ -240,6 +255,21 @@
       case 3:
         $virt_type="reject";
         break;
+      case 4:
+        $virt_type="fastl4<br />&nbsp;&nbsp;".$pool;
+        break;
+      case 5:
+        $virt_type="fasthttp<br />&nbsp;&nbsp;".$pool;
+        break;
+      case 6:
+        $virt_type="stateless<br />&nbsp;&nbsp;".$pool;
+        break;
+      case 7:
+        $virt_type="dhcp-relay<br />&nbsp;&nbsp;".$pool;
+        break;
+      case 8:
+        $virt_type="internal";
+        break;
     }
 
     if ($virt['virt_rules'])
Index: includes/polling/loadbalancer/f5-bigip-local-mib.inc.php
===================================================================
--- includes/polling/loadbalancer/f5-bigip-local-mib.inc.php	(revision 7398)
+++ includes/polling/loadbalancer/f5-bigip-local-mib.inc.php	(working copy)
@@ -68,7 +68,7 @@
 $virts = snmpwalk_cache_multi_oid($device, "ltmVirtualServName", NULL, $mib, mib_dirs('f5'));
 $virts = snmpwalk_cache_multi_oid($device, "ltmVirtualServVaName", NULL, $mib, mib_dirs('f5'));
 $virts = snmpwalk_cache_multi_oid($device, "ltmVirtualServAddrType", $virts, $mib, mib_dirs('f5'), OBS_SNMP_ALL_ENUM);
-$virts = snmpwalk_cache_multi_oid($device, "ltmVirtualServAddr", $virts, $mib, mib_dirs('f5'));
+$virts = snmpwalk_cache_multi_oid($device, "ltmVirtualServAddr", $virts, $mib, mib_dirs('f5'), OBS_SNMP_ALL_HEX);
 $virts = snmpwalk_cache_multi_oid($device, "ltmVirtualServWildmask", $virts, $mib, mib_dirs('f5'));
 $virts = snmpwalk_cache_multi_oid($device, "ltmVirtualServPort", $virts, $mib, mib_dirs('f5'));
 $virts = snmpwalk_cache_multi_oid($device, "ltmVirtualServIpProto", $virts, $mib, mib_dirs('f5'));
@@ -84,18 +84,21 @@
 
 // These don't multi_oid properly, so do them manually
 $rules = snmp_walk($device, "ltmVirtualServRuleRuleName", "-OEq", "F5-BIGIP-LOCAL-MIB", mib_dirs("f5"));
-foreach (explode("\n", $rules) as $rule)
+if (strlen($rules))
 {
-  $bits = explode("\\",$rule);
-  $name = $bits[1];
-  $rname = $bits[3];
+  foreach (explode("\n", $rules) as $rule)
+  {
+    $bits = explode("\\",$rule);
+    $name = $bits[1];
+    $rname = $bits[3];
 
-  if ($virts[$name]['rules'])
-  {
-    $rname = $virts[$name]['rules'] . "," . $rname;
+    if ($virts[$name]['rules'])
+    {
+      $rname = $virts[$name]['rules'] . "," . $rname;
+    }
+
+    $virts[$name] = array_merge($virts[$name],array('rules'=>$rname));
   }
-
-  $virts[$name] = array_merge($virts[$name],array('rules'=>$rname));
 }
 
 foreach ($virts as $name => $virt)
@@ -144,6 +147,8 @@
   echo(str_pad($name, 45) . " | " . str_pad($addr.$sep.$virt['ltmVirtualServPort'],25)."/".$proto . " - ");
   $mask = hex2ip($virt['ltmVirtualServWildmask']);
 
+  if (OBS_DEBUG) { print_r($virt); }
+
   if (is_array($virts_db[$name]))
   {
     echo("Virtual exists\n");
@@ -210,7 +215,7 @@
   unset($name, $addr, $mask, $proto, $rd, $sep, $tmp);
 }
 
-if ($debug) { print_r($virts_exist); }
+if (OBS_DEBUG) { print_r($virts_exist); }
 
 foreach ($virts_exist as $virt_name => $virt_id)
 {
Index: includes/snmp.inc.php
===================================================================
--- includes/snmp.inc.php	(revision 7398)
+++ includes/snmp.inc.php	(working copy)
@@ -1053,7 +1053,8 @@
   }
   $output = "QUs";
   if (is_flag_set(OBS_SNMP_NUMERIC, $flags)) { $output .= "b"; }
-  if (is_flag_set(OBS_SNMP_ENUM, $flags)) { $output .= "e"; }
+  if (is_flag_set(OBS_SNMP_ENUM, $flags))    { $output .= "e"; }
+  if (is_flag_set(OBS_SNMP_HEX, $flags))     { $output .= "x"; }
 
   $data = snmp_walk($device, $oid, "-O$output", $mib, $mibdir, $flags);
   foreach (explode("\n", $data) as $entry)
Index: includes/definitions.inc.php
===================================================================
--- includes/definitions.inc.php	(revision 7398)
+++ includes/definitions.inc.php	(working copy)
@@ -34,11 +34,12 @@
 define('OBS_SNMP_NUMERIC',  16); // Use numeric index
 define('OBS_SNMP_CONCAT',   32); // Concatinate multiline snmp variable
 define('OBS_SNMP_ENUM',     64); // Don't enumerate SNMP values
+define('OBS_SNMP_HEX',     128); // Force HEX output
 //define('OBS_SNMP_ALL',      OBS_QUOTES_TRIM | OBS_QUOTES_STRIP | OBS_SNMP_CONCAT); // Set of common snmp options
 define('OBS_SNMP_ALL',      OBS_QUOTES_TRIM | OBS_QUOTES_STRIP); // Set of common snmp options
+define('OBS_SNMP_ALL_HEX',  OBS_SNMP_ALL | OBS_SNMP_HEX);        // Set of common snmp options forcing HEX output
 define('OBS_SNMP_ALL_ENUM', OBS_SNMP_ALL | OBS_SNMP_ENUM);       // Set of common snmp options without enumerating values
 define('OBS_SNMP_ALL_NUMERIC', OBS_SNMP_ALL | OBS_SNMP_NUMERIC); // Set of common snmp options with numeric indexes
-#define('OBS_',             128); // Reserved
 
 // Bits 8-11 network flags
 define('OBS_DNS_A',        256); // Use only IPv4 dns queries
@@ -621,7 +622,7 @@
   'ospf_nbrs', 'ospf_ports', 'packages', 'ports', 'ports_stack', 'ports_vlans', 'processors',
   'pseudowires', 'sensors', 'status', 'services', 'slas', 'storage', 'syslog', 'toner',
   'ucd_diskio', 'vlans', 'vlans_fdb', 'vminfo', 'vrfs', 'wifi_accesspoints', 'wifi_sessions',
-  'group_table', 'p2p_radios', 'oids_assoc',
+  'group_table', 'p2p_radios', 'oids_assoc', 'lb_virtuals',
   'devices' // always leave the table devices as last
 );
 
