From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf0-f68.google.com (mail-lf0-f68.google.com [209.85.215.68]) by dpdk.org (Postfix) with ESMTP id 263182C0C for ; Wed, 20 Apr 2016 07:06:46 +0200 (CEST) Received: by mail-lf0-f68.google.com with SMTP id j10so4569342lfg.3 for ; Tue, 19 Apr 2016 22:06:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:content-transfer-encoding:mime-version:subject:message-id:date :references:in-reply-to:to; bh=qYZnlb4d+JQk+2ZOB6C0WnR4xIv7OpIieiofMzBqPhc=; b=Dob5Xg+u74p9JxDpBfFIwOs52bOn5k7F7g3hjjSd79PGHrsUhulER0bBbUCBQTclZB ydRuwHkCLtzgboLIZ4u6EiU15eK8NeAdnYaR/o1VQWc06HyIleJTIUCPmo3l0MnFe5gP bxRGSengezUzWxk25x+AjJ/W8TrC544FyWgyCcqjk40pIKCSx3KtEwm84nww3ewtpmTN ImF2Xc2mufo7OvneBOvhk2ifoA61L9wHLBZ/lVgm8i8uXjvZdpGNw0wdSrmSKqOJc7sj 0UWazqDE9kDvoYY1siqThAyEolfAsfcXZ98vZ8dQRWNlGQdsF76xINX8Csi3xN2swP/3 cyaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:content-transfer-encoding:mime-version :subject:message-id:date:references:in-reply-to:to; bh=qYZnlb4d+JQk+2ZOB6C0WnR4xIv7OpIieiofMzBqPhc=; b=W8Q4OMFQX4e0XkuWzJagYKa4BsCLtx4S56OPIhiAFb4bxNUwl9DGTZ4zbcpYPsRB/8 NnVtf4vva7YJq4GzCDat1FqB45HT6KCT9j3+N59WcZwEmvCMzfI9iHKeiy/kOD2Na8dx T1ceNnKRQamwSaFLAyszPZ2tfrn+oKlWeg51WCEvzOvbxzZmK0rjld2zg149pCd/c8FJ VotW+k1LgF7M0RvvPOh3dHxAoWrXTgoM6EnJYMEf7M+pkeXaQXuuh0P7xGsMRl7/ogP5 GYivBwj3W2oxl9s6ZJMQG7+Alb9E5B3J3U9qOw7C0uKPSwxamotvEV+BuQaGmeqx/t2n xWGA== X-Gm-Message-State: AOPr4FXsY0lRKWC91rFm+hxn4ng9rqR5QsuQnI5CP94MCp17J5yAHG0fzj0KwX2Tcx42gQ== X-Received: by 10.25.154.5 with SMTP id c5mr2876265lfe.85.1461128805878; Tue, 19 Apr 2016 22:06:45 -0700 (PDT) Received: from [10.244.220.199] ([31.173.80.226]) by smtp.gmail.com with ESMTPSA id i204sm707272lfg.47.2016.04.19.22.06.44 for (version=TLSv1/SSLv3 cipher=OTHER); Tue, 19 Apr 2016 22:06:44 -0700 (PDT) From: Alexander Kiselev Mime-Version: 1.0 (1.0) Message-Id: Date: Wed, 20 Apr 2016 08:06:44 +0300 References: <20160419084640.52235b05@xeon-e3> In-Reply-To: <20160419084640.52235b05@xeon-e3> To: dev@dpdk.org X-Mailer: iPad Mail (13E233) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] perfomance of rte_lpm rule subsystem X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Apr 2016 05:06:46 -0000 I just realizied that my patch could be confusing. I want to emphasize that i= t contains two completly different and independent set of changes. One is ne= w rule subsystem and the other is 64 bit next hop. Maybe I should've prepare= d a patch with only rule changes, but I wanted to discuss fist and if there w= ould be interest spend some time and make the final patch containing only ru= le changes.=20 Please ignore the next hop changes. They have nothing to do with rule subsys= tem changes. The rule changes don't need new next hop and I don't want 64 bi= t next hop to be part of dpdk. >> Hi. >>=20 >> Doing some test with rte_lpm (adding/deleting bgp full table rules) I >> noticed that >> rule subsystem is very slow even considering that probably it was never >> designed for using >> in a data forwarding plane. So I want to propose some changes to the "rul= e" >> subsystem. >>=20 >> I reimplemented rule part ot the lib using rte_hash, and perfomance of >> adding/deleted routes have increased dramatically. >> If increasing speed of adding deleting routes makes sence for anybody els= e >> I would like to discuss my patch. >> The patch also include changes that make next_hop 64 bit, so please just >> ignore them. The rule changes are in the following >> functions only: >>=20 >> rte_lpm2_create >>=20 >> rule_find >> rule_add >> rule_delete >> find_previous_rule >> delete_depth_small >> delete_depth_big >>=20 >> rte_lpm2_add >> rte_lpm2_delete >> rte_lpm2_is_rule_present >> rte_lpm2_delete_all