From owner-svn-src-head@FreeBSD.ORG Tue Oct 2 12:44:47 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 98AE21065674; Tue, 2 Oct 2012 12:44:47 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 83D988FC17; Tue, 2 Oct 2012 12:44:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q92CilN4039039; Tue, 2 Oct 2012 12:44:47 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q92CilaR039036; Tue, 2 Oct 2012 12:44:47 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201210021244.q92CilaR039036@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 2 Oct 2012 12:44:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r241131 - head/sys/netpfil/pf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Oct 2012 12:44:47 -0000 Author: glebius Date: Tue Oct 2 12:44:46 2012 New Revision: 241131 URL: http://svn.freebsd.org/changeset/base/241131 Log: To reduce volume of pfsync traffic: - Scan request update queue to prevent doubles. - Do not push undersized daragram in pfsync_update_request(). Modified: head/sys/netpfil/pf/if_pfsync.c Modified: head/sys/netpfil/pf/if_pfsync.c ============================================================================== --- head/sys/netpfil/pf/if_pfsync.c Tue Oct 2 12:25:30 2012 (r241130) +++ head/sys/netpfil/pf/if_pfsync.c Tue Oct 2 12:44:46 2012 (r241131) @@ -1832,9 +1832,15 @@ pfsync_request_update(u_int32_t creatori PFSYNC_LOCK_ASSERT(sc); /* - * This code does nothing to prevent multiple update requests for the - * same state being generated. + * This code does a bit to prevent multiple update requests for the + * same state being generated. It searches current subheader queue, + * but it doesn't lookup into queue of already packed datagrams. */ + TAILQ_FOREACH(item, &sc->sc_upd_req_list, ur_entry) + if (item->ur_msg.id == id && + item->ur_msg.creatorid == creatorid) + return; + item = malloc(sizeof(*item), M_PFSYNC, M_NOWAIT); if (item == NULL) return; /* XXX stats */ @@ -1854,8 +1860,6 @@ pfsync_request_update(u_int32_t creatori TAILQ_INSERT_TAIL(&sc->sc_upd_req_list, item, ur_entry); sc->sc_len += nlen; - - pfsync_push(sc); } static void