Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/apv/templates/monitoring/system/monitor/monitor.html
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/apv/templates/monitoring/system/monitor/monitor.html	(revision 40183)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/apv/templates/monitoring/system/monitor/monitor.html	(working copy)
@@ -2159,7 +2159,7 @@
                         monitor_type = [["system", "cpu_usage"], ["system", "mem_usage"]]
                     }
                     if (module == 'network') {
-                        monitor_type = [["system", "net_load"], ["system", "conn_status"]]
+                        monitor_type = [["system", "net_load"], ["system", "conn_status"], ["system", "drop_packets"], ["system", "unicast_packets"]]
                     }
                     $.ajax({
                         headers: {
Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/report.py
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/report.py	(revision 40183)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/report.py	(working copy)
@@ -375,11 +375,16 @@
                             'to': to_time, 'from': from_time, 'format': 'time_series'}
     select_data = query_metric(select_dic)
 
-    select_dic_net = {'rawSql': 'select $__timeGroup(time) as timef, avg(throughput_in_bits), avg(throughput_out_bits) from InterfaceThroughputStatistics where $__timeFilter(time) GROUP BY timef;', 
+    select_dic_net = {'rawSql': 'select $__timeGroup(time) as timef, avg(throughput_in_bits), avg(throughput_out_bits), avg(throughput_out_error), avg(throughput_in_error), avg(throughput_out_ucast_packets), avg(throughput_in_ucast_packets) from InterfaceThroughputStatistics where $__timeFilter(time) GROUP BY timef;', 
             'to': to_time, 'from': from_time, 'format': 'time_series'}
     select_data_net = query_metric(select_dic_net)
     data = select_data['data']
     data_net = select_data_net['data']
+    
+    drop_in_list = []
+    drop_out_list = []
+    unicast_in_list = []
+    unicast_out_list = []
 
     for each in data:
         time_list.append(time.strftime(TIMEFORMAT, time.localtime(int(each[0])/1000)))
@@ -392,6 +397,10 @@
         net_time_list.append(time.strftime(TIMEFORMAT, time.localtime(int(each[0])/1000)))
         net_in_list.append(each[1])
         net_out_list.append(each[2])
+        drop_out_list.append(value_toFixed(each[3], 0) if each[3] is not None else 0)
+        drop_in_list.append(value_toFixed(each[4], 0) if each[4] is not None else 0)
+        unicast_out_list.append(value_toFixed(each[5], 0) if each[5] is not None else 0)
+        unicast_in_list.append(value_toFixed(each[6], 0) if each[6] is not None else 0)
 
     return {
         'time': time_list,
@@ -403,6 +412,12 @@
         'cps': cps_list,
         'net_in': net_in_list,
         'net_out': net_out_list,
+        # Real drop packets data from database
+        'drop_in': drop_in_list,
+        'drop_out': drop_out_list,
+        # Real unicast packets data from database
+        'unicast_in': unicast_in_list,
+        'unicast_out': unicast_out_list,
     }
 
 def get_rs_data_sql(from_time, to_time, rs_name):
@@ -760,6 +775,30 @@
         table_data = zip(system_data_dic['time'], system_data_dic['cps'])
         story = Draw_Line_Chart(unicode(_("Connection Status")), env, styles, story, system_data_dic['time'], graph_item, table_data)
         
+    if "drop_packets" in system_list:
+        if 'drop_in' in system_data_dic and 'drop_out' in system_data_dic:
+            graph_item = [{
+                "item_name" : unicode(_("Inbound Drop Packets")),
+                "item_value" : system_data_dic['drop_in']
+            }, {
+                "item_name" : unicode(_("Outbound Drop Packets")),
+                "item_value" : system_data_dic['drop_out']
+            }]
+            table_data = zip(system_data_dic['time'], system_data_dic['drop_in'], system_data_dic['drop_out'])
+            story = Draw_Line_Chart(unicode(_("Drop Packets")), env, styles, story, system_data_dic['time'], graph_item, table_data)
+
+    if "unicast_packets" in system_list:
+        if 'unicast_in' in system_data_dic and 'unicast_out' in system_data_dic:
+            graph_item = [{
+                "item_name" : unicode(_("Inbound Unicast Packets")),
+                "item_value" : system_data_dic['unicast_in']
+            }, {
+                "item_name" : unicode(_("Outbound Unicast Packets")),
+                "item_value" : system_data_dic['unicast_out']
+            }]
+            table_data = zip(system_data_dic['time'], system_data_dic['unicast_in'], system_data_dic['unicast_out'])
+            story = Draw_Line_Chart(unicode(_("Unicast Packets")), env, styles, story, system_data_dic['time'], graph_item, table_data)
+        
     run_status = get_system_run_status(system_list, system_data_dic)
     intervalStart, intervalEnd = get_time_range(from_time, to_time)
     end_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(intervalEnd))
@@ -1389,6 +1428,16 @@
         cw.writerow([unicode(_('Network Load'))])
         cw.writerow([unicode(_('Time')), unicode(_('Inbound(bps)')), unicode(_('Outbound(bps)'))])
         cw.writerows(zip(system_data_dic['time'], net_in_table, net_out_table))
+    if 'drop_packets' in system_list:
+        cw.writerow([unicode(_('Drop Packets'))])
+        cw.writerow([unicode(_('Time')), unicode(_('Inbound Drop Packets')), unicode(_('Outbound Drop Packets'))])
+        if 'drop_in' in system_data_dic and 'drop_out' in system_data_dic:
+            cw.writerows(zip(system_data_dic['time'], system_data_dic['drop_in'], system_data_dic['drop_out']))
+    if 'unicast_packets' in system_list:
+        cw.writerow([unicode(_('Unicast Packets'))])
+        cw.writerow([unicode(_('Time')), unicode(_('Inbound Unicast Packets')), unicode(_('Outbound Unicast Packets'))])
+        if 'unicast_in' in system_data_dic and 'unicast_out' in system_data_dic:
+            cw.writerows(zip(system_data_dic['time'], system_data_dic['unicast_in'], system_data_dic['unicast_out']))
     run_status = get_system_run_status(system_list, system_data_dic)
     if 'cpu_usage' in system_list or 'mem_usage' in system_list or 'net_load' in system_list:
         cw.writerow([unicode(_("Conclusion"))])
