Status: Traffic Graph not displaying IPs



  • I believe this issue is related to having IPv6 codeset (2.1) and I don't think anyone has reported this. The Traffic Graph doesn't display any IPs. It does display the line graph, even for the IPv6 interface, just no host IPs. Can someone else confirm this? As it does work on 2.0.


  • Rebel Alliance Developer Netgate

    I see some IPs pop up on my traffic graph on 2.1



  • Any ideas on how I can troubleshoot this? Nothing in the logs, once in the while when I'm switching interfaces i get a pop-up that says "Error 0 – error"

    I did a firmware update using the last ipv6 that was created a couple of weeks ago from your ftp folder.

    OS's I've tried:
    Win7 32-bit FF 6.0.2
    Win7 64-bit FF 7.0.1
    WHS 2011(64-bit) 7.0.1



  • I checked out the status_graph.php page and noticed that it calls bandwidth_by_ip.php. So i ran that page in my browser, https://192.168.0.1:xxx/bandwidth_by_ip.php?if=lan and it displayed data:

    192.168.0.100;835.24k;147.90k|192.168.0.122;9.70k;0.00|192.168.0.127;4.46k;4.62k|
    

    So its not a IPv6 thing, it just doesn't display IPv6 data because of the Rate program.

    I noticed the date on status_graph.php was 10/25/2011 so I thought I would grab the latest release and extract the file and give that a try. I upload status_graph.php with a 9/13/2011 date and now my box is showing IPs again.

    Deleted the git repo and downloaded a fresh copy. Same results, where I don't see the IPs real-time bw usage. I copied over the original file from 2.0 release and the IPs showed up.

    I did a compare in notepad++ and there are differences between the files. I have a workaround for now at least :-)

    Could you upload the this status_graph.php on your test box and see if you can reproduce my issue?

    
    /* $Id$ */
    /*
    	status_graph.php
    	Part of pfSense
    	Copyright (C) 2004 Scott Ullrich
    	All rights reserved.
    
    	Originally part of m0n0wall (http://m0n0.ch/wall)
    	Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
    	All rights reserved.
    
    	Redistribution and use in source and binary forms, with or without
    	modification, are permitted provided that the following conditions are met:
    
    	1\. Redistributions of source code must retain the above copyright notice,
    	   this list of conditions and the following disclaimer.
    
    	2\. Redistributions in binary form must reproduce the above copyright
    	   notice, this list of conditions and the following disclaimer in the
    	   documentation and/or other materials provided with the distribution.
    
    	THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
    	INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
    	AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
    	AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
    	OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    	SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    	INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    	CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    	ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    	POSSIBILITY OF SUCH DAMAGE.
    */
    /*	
    	pfSense_MODULE:	routing
    */
    
    ##|+PRIV
    ##|*IDENT=page-status-trafficgraph
    ##|*NAME=Status: Traffic Graph page
    ##|*DESCR=Allow access to the 'Status: Traffic Graph' page.
    ##|*MATCH=status_graph.php*
    ##|*MATCH=bandwidth_by_ip.php*
    ##|-PRIV
    
    require("guiconfig.inc");
    
    if ($_POST['width'])
    	$width = $_POST['width'];
    else
    	$width = "100%";
    
    if ($_POST['height'])
    	$height = $_POST['height'];
    else
    	$height = "200";
    
    // Get configured interface list
    $ifdescrs = get_configured_interface_with_descr();
    if (isset($config['ipsec']['enable']))
    	$ifdescrs['enc0'] = "IPsec";
    foreach (array('server', 'client') as $mode) {
    	if (is_array($config['openvpn']["openvpn-{$mode}"])) {
    		foreach ($config['openvpn']["openvpn-{$mode}"] as $id => $setting) {
    			if (!isset($setting['disable'])) {
    				$ifdescrs['ovpn' . substr($mode, 0, 1) . $setting['vpnid']] = gettext("OpenVPN") . " ".$mode.": ".htmlspecialchars($setting['description']);
    			}
    		}
    	}
    }
    
    if ($_GET['if']) {
    	$curif = $_GET['if'];
    	$found = false;
    	foreach($ifdescrs as $descr => $ifdescr) 
    		if($descr == $curif) $found = true;
    	if(!$found) {
    		Header("Location: status_graph.php");
    		exit;
    	}
    } else {
    	$curif = "wan";
    }
    
    $pgtitle = array(gettext("Status"),gettext("Traffic Graph"));
    
    include("head.inc");
    
    ?>
    
    /* link the ipsec interface magically */
    if (isset($config['ipsec']['enable']) || isset($config['ipsec']['client']['enable'])) 
    	$ifdescrs['enc0'] = "IPsec";
    
    ?>
    
    <form name="form1" action="status_graph.php" method="get" style="padding-bottom: 10px; margin-bottom: 14px; border-bottom: 1px solid #999999">
    :
    <select name="if" class="formselect" style="z-index: -10;" onchange="document.form1.submit()">foreach ($ifdescrs as $ifn => $ifd) {	echo " <option value="\&quot;$ifn\&quot;&quot;;<br">if ($ifn == $curif) echo " selected";	echo ">" . htmlspecialchars($ifd) . "</option>\n";}?></select>
    </form>
    
            <object data="graph.php?ifnum=<?=htmlspecialchars($curif);?>&amp;ifname=<?=rawurlencode($ifdescrs[htmlspecialchars($curif)]);?>" type="image/svg+xml" width="<?=$width;?>" height="<?=$height;?>"><param name="src" value="graph.php?ifnum=<?=htmlspecialchars($curif);?>&amp;ifname=<?=rawurlencode($ifdescrs[htmlspecialchars($curif)]);?>">
                .</object> 
    
    |  |  |  |
    | 
                     | 
                     | 
                     |
    | 
                     | 
                     | 
                     |
    | 
                     | 
                     | 
                     |
    | 
                     | 
                     | 
                     |
    | 
                     | 
                     | 
                     |
    | 
                     | 
                     | 
                     |
    | 
                     | 
                     | 
                     |
    | 
                     | 
                     | 
                     |
    | 
                     | 
                     | 
                     |
    | 
                     | 
                     | 
                     |
    
    **:**  [](http://www.adobe.com/svg/viewer/install/), .</mk@neon1.net> 
    

  • Rebel Alliance Developer Netgate

    That could be the jquery changes that were made.

    The older copies wouldn't have jquery, and indeed the only difference there is commit e03ef9a02cb3b3e328be1eab5230114483082853

    The 2.1 box I checked apparently was last synced just before that commit.



  • Were you able to recreate the issue after updating to the latest code? If so, i'll open a ticket if you like


  • Rebel Alliance Developer Netgate

    I haven't had a chance to update my firewall to test, as it's my main firewall at home and I don't want to touch it during work hours for syncing code and the like.

    But if it works with one and not the other, it stands to reason that the jquery bits may be to blame.


  • Rebel Alliance Developer Netgate

    I'd suggest a simple test:

    1. Using the "before" file, flush your browser cache and close/reopen, then see if the rate table works.
    2. Using the "after" file, repeat the above.

    If it works before, and not after, it's a repeatable bug and opening a ticket in redmine is fine (reference this thread in the ticket)



  • i already thought of that over the weekend. thanks again

    ticket: http://redmine.pfsense.org/issues/1996


Locked