diff --git a/html/pages/device/ports.inc.php b/html/pages/device/ports.inc.php
index 9a009bec00..c038120292 100644
--- a/html/pages/device/ports.inc.php
+++ b/html/pages/device/ports.inc.php
@@ -123,8 +123,19 @@ else {
if ($vars['view'] == 'details') {
$port_details = 1;
}
+?>
+
+
+ ">Port |
+ |
+ ">Traffic |
+ Speed |
+ Media |
+ Mac Address |
+ |
+
+";
$i = '1';
global $port_cache, $port_index_cache;
@@ -132,9 +143,20 @@ else {
$ports = dbFetchRows("SELECT * FROM `ports` WHERE `device_id` = ? AND `deleted` = '0' ORDER BY `ifIndex` ASC", array($device['device_id']));
// As we've dragged the whole database, lets pre-populate our caches :)
// FIXME - we should probably split the fetching of link/stack/etc into functions and cache them here too to cut down on single row queries.
- foreach ($ports as $port) {
+
+ foreach ($ports as $key => $port) {
$port_cache[$port['port_id']] = $port;
$port_index_cache[$port['device_id']][$port['ifIndex']] = $port;
+ $ports[$key]["ifOctets_rate"] = $port["ifInOctets_rate"] + $port["ifOutOctets_rate"];
+ }
+
+ switch ($vars["sort"]) {
+ case 'traffic':
+ $ports = array_sort($ports, 'ifOctets_rate', SORT_DESC);
+ break;
+ default:
+ $ports = array_sort($ports, 'ifIndex', SORT_ASC);
+ break;
}
foreach ($ports as $port) {