From nobody@FreeBSD.org  Tue Nov 22 13:48:37 2005
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 7ED0516A41F
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 22 Nov 2005 13:48:37 +0000 (GMT)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [216.136.204.117])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 4C5EA43D45
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 22 Nov 2005 13:48:37 +0000 (GMT)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.13.1/8.13.1) with ESMTP id jAMDmaWd060282
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 22 Nov 2005 13:48:36 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.13.1/8.13.1/Submit) id jAMDmaBK060281;
	Tue, 22 Nov 2005 13:48:36 GMT
	(envelope-from nobody)
Message-Id: <200511221348.jAMDmaBK060281@www.freebsd.org>
Date: Tue, 22 Nov 2005 13:48:36 GMT
From: Daniil Kharoun <kdl@chelcom.ru>
To: freebsd-gnats-submit@FreeBSD.org
Subject: ng_netflow: flow sequence error
X-Send-Pr-Version: www-2.3

>Number:         89417
>Category:       kern
>Synopsis:       [netgraph] ng_netflow: flow sequence error
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    glebius
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Nov 22 13:50:23 GMT 2005
>Closed-Date:    Tue Dec 06 09:51:46 GMT 2005
>Last-Modified:  Tue Dec 06 09:51:46 GMT 2005
>Originator:     Daniil Kharoun
>Release:        6.0-RELEASE
>Organization:
JSC Intersvyaz
>Environment:
FreeBSD vpn3 6.0-RELEASE FreeBSD 6.0-RELEASE #0: Tue Nov 22 18:05:15 YEKT 2005 root@vpn3:/usr/src/sys/i386/compile/VPN  i386
>Description:
After updating system from version 5.4 up to version 6.0 my collector began
to inform on losses of flows. Probably, a problem in discrepancy of sequence
number (flow_seq in netflow_v5_header).

myflowcollector: lost 7650 flow records for router vpn3 !
>How-To-Repeat:
Use ng_netflow and use a netflow collector with the control of a sequence
number.
>Fix:
              
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->glebius 
Responsible-Changed-By: glebius 
Responsible-Changed-When: Sun Nov 27 01:20:12 GMT 2005 
Responsible-Changed-Why:  
Mine. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=89417 

From: Gleb Smirnoff <glebius@FreeBSD.org>
To: Daniil Kharoun <kdl@chelcom.ru>
Cc: freebsd-gnats-submit@FreeBSD.org
Subject: Re: kern/89417: ng_netflow: flow sequence error
Date: Sun, 27 Nov 2005 04:52:27 +0300

 --+jhVVhN62yS6hEJ8
 Content-Type: text/plain; charset=koi8-r
 Content-Disposition: inline
 
   Daniil,
 
   can you please try out the attached patch?
 
 -- 
 Totus tuus, Glebius.
 GLEBIUS-RIPN GLEB-RIPE
 
 --+jhVVhN62yS6hEJ8
 Content-Type: text/plain; charset=koi8-r
 Content-Disposition: attachment; filename="netflow.seq.1.diff"
 
 Index: netflow.c
 ===================================================================
 RCS file: /home/ncvs/src/sys/netgraph/netflow/netflow.c,v
 retrieving revision 1.15
 diff -u -r1.15 netflow.c
 --- netflow.c	16 May 2005 17:10:08 -0000	1.15
 +++ netflow.c	27 Nov 2005 01:50:18 -0000
 @@ -621,12 +621,9 @@
  	getnanotime(&ts);
  	header->unix_secs  = htonl(ts.tv_sec);
  	header->unix_nsecs = htonl(ts.tv_nsec);
 +	header->flow_seq = htonl(atomic_fetchadd_32(&priv->flow_seq,
 +	    header->count));
  	header->count = htons(header->count);
 -	header->flow_seq = htonl(atomic_load_acq_32(&priv->flow_seq));
 -
 -	/* Flow sequence contains number of first record, so it
 -	   is updated after being put in header. */
 -	atomic_add_32(&priv->flow_seq, header->count);
  
  	if (priv->export != NULL)
  		/* Should also NET_LOCK_GIANT(). */
 
 --+jhVVhN62yS6hEJ8--

From: "Daniil L. Kharoun" <kdl@chelcom.ru>
To: Gleb Smirnoff <glebius@FreeBSD.org>
Cc: freebsd-gnats-submit@FreeBSD.org
Subject: Re: kern/89417: ng_netflow: flow sequence error
Date: Mon, 28 Nov 2005 13:58:32 +0500

 Gleb, the problem is solved.
 
 Thank you!
 
State-Changed-From-To: open->patched 
State-Changed-By: glebius 
State-Changed-When: Mon Nov 28 09:43:24 GMT 2005 
State-Changed-Why:  
Fixed in HEAD. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=89417 
State-Changed-From-To: patched->closed 
State-Changed-By: glebius 
State-Changed-When: Tue Dec 6 09:51:25 GMT 2005 
State-Changed-Why:  
Merged to RELENG_6, not applicable to RELENG_5. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=89417 
>Unformatted:
