From owner-freebsd-net@FreeBSD.ORG Mon Nov 28 19:20:57 2005 Return-Path: X-Original-To: net@FreeBSD.org Delivered-To: freebsd-net@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E58C016A41F; Mon, 28 Nov 2005 19:20:57 +0000 (GMT) (envelope-from glebius@FreeBSD.org) Received: from cell.sick.ru (cell.sick.ru [217.72.144.68]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8A19043D46; Mon, 28 Nov 2005 19:20:55 +0000 (GMT) (envelope-from glebius@FreeBSD.org) Received: from cell.sick.ru (glebius@localhost [127.0.0.1]) by cell.sick.ru (8.13.3/8.13.3) with ESMTP id jASJKqsq007351 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 28 Nov 2005 22:20:53 +0300 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.sick.ru (8.13.3/8.13.1/Submit) id jASJKquj007350; Mon, 28 Nov 2005 22:20:52 +0300 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.sick.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Mon, 28 Nov 2005 22:20:52 +0300 From: Gleb Smirnoff To: Luigi Rizzo Message-ID: <20051128192052.GA25711@cell.sick.ru> References: <20051127005943.GR25711@cell.sick.ru> <20051127135529.GF25711@cell.sick.ru> <20051127194545.GA76200@ip.net.ua> <20051127195914.GI25711@cell.sick.ru> <20051128062732.GA58778@ip.net.ua> <20051128161934.GY25711@cell.sick.ru> <20051128083236.A65831@xorpc.icir.org> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline In-Reply-To: <20051128083236.A65831@xorpc.icir.org> User-Agent: Mutt/1.5.6i Cc: Vsevolod Lobko , rwatson@FreeBSD.org, Ruslan Ermilov , net@FreeBSD.org Subject: Re: parallelizing ipfw table X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Nov 2005 19:20:58 -0000 On Mon, Nov 28, 2005 at 08:32:36AM -0800, Luigi Rizzo wrote: L> Given that you (Gleb) are putting in some new features, I would L> suggest a variant to your tablearg thing, i.e. L> L> + a 'setvar index value' which can be put as an always-true L> option within a rule e.g. to store partial evaluation results. L> 'index' could be a small integer e.g. 0-9, value a 32-bit L> value which is either a constant or a packet field (src-ip...) L> or your tablearg. L> + allow a 'varN' arguments everywhere you can have a rule or pipe or L> queue number. L> L> This way you can easily implement your proposal, and a lot more. L> One should remember that variables are not meant to be staved L> with the packet's state (e.g. when a packet goes back and forth to L> dummynet) but other than that i think it is a useful feature and L> a simple one to implement. I agree. The introduction of local variable "tablearg" is the most unpleasant place of my patch. I will implement your proposal as soon as we have a second think that needs to be stored during one rule evaluation. -- Totus tuus, Glebius. GLEBIUS-RIPN GLEB-RIPE