From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <jim@netgate.com>
Received: from mail-ob0-f175.google.com (mail-ob0-f175.google.com
 [209.85.214.175]) by dpdk.org (Postfix) with ESMTP id 788501288
 for <dev@dpdk.org>; Tue, 20 Jan 2015 11:48:14 +0100 (CET)
Received: by mail-ob0-f175.google.com with SMTP id wp4so12270272obc.6
 for <dev@dpdk.org>; Tue, 20 Jan 2015 02:48:13 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:content-type:mime-version:subject:from
 :in-reply-to:date:cc:message-id:references:to;
 bh=6mRmvbJaa2KzFxKBCGWlzxzSjserlvCy/8YEm1Z95g4=;
 b=JmpF+Wiv4bGI46dERK1XDYx8clwyDbIzVfumBUfZ2/3TZG4QQKtHYKGk2ukj/gx+fr
 Jmr5hZfcFg35SCkqCj1fE5HRKEhPoFkmnVOv/HyRLnxDUA9NlmNx9HmfChRe5DYUL1Xd
 FiDwKLiywAh3LOubt79PxqUcH4HEMaq61Gxrr2Xpe2ddnuydY9xiEdf7YI7UB6cE6pgV
 BeP3jPvaPOGKdQX8hvCIw3BQRqmSO1znBoJTDwa1W5troLiTLvtHY4DsV6eE4VOe5MHh
 XIWOny+SYLS3FHVC6OGkwQ3lq72Vni8rxhlejroQNnLKY6tO+DVMwDKQTz5evU//ZGV4
 R3SA==
X-Gm-Message-State: ALoCoQm/blYvf+3FbCVBuOSbn5M6CASMTzZZFOHkL3i56WG4dv0CTJBQhAGL/5jCAKn43AWRnRQx
X-Received: by 10.182.131.231 with SMTP id op7mr19806681obb.46.1421750893755; 
 Tue, 20 Jan 2015 02:48:13 -0800 (PST)
Received: from jims-mbp.pfmechanics.com ([208.123.73.30])
 by mx.google.com with ESMTPSA id l200sm1560668oig.26.2015.01.20.02.48.13
 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
 Tue, 20 Jan 2015 02:48:13 -0800 (PST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.1\))
From: Jim Thompson <jim@netgate.com>
In-Reply-To: <2601191342CEEE43887BDE71AB977258213DE05E@irsmsx105.ger.corp.intel.com>
Date: Tue, 20 Jan 2015 04:48:12 -0600
Message-Id: <0A823B6A-D80C-4428-9ED2-7F164ED16D7F@netgate.com>
References: <1421090181-17150-1-git-send-email-konstantin.ananyev@intel.com>
 <1421090181-17150-18-git-send-email-konstantin.ananyev@intel.com>
 <29033074.MP6L2bYt2c@xps13>
 <2601191342CEEE43887BDE71AB977258213DE05E@irsmsx105.ger.corp.intel.com>
To: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>
X-Mailer: Apple Mail (2.2070.1)
Content-Type: text/plain;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Content-Filtered-By: Mailman/MimeDel 2.1.15
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v2 17/17] libte_acl: remove unused macros.
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Tue, 20 Jan 2015 10:48:15 -0000


> On Jan 20, 2015, at 4:09 AM, Ananyev, Konstantin =
<konstantin.ananyev@intel.com> wrote:
>=20
> Hi Thomas,
>=20
>> -----Original Message-----
>> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
>> Sent: Monday, January 19, 2015 5:18 PM
>> To: Ananyev, Konstantin
>> Cc: dev@dpdk.org
>> Subject: Re: [dpdk-dev] [PATCH v2 17/17] libte_acl: remove unused =
macros.
>>=20
>> 2015-01-12 19:16, Konstantin Ananyev:
>>> /*
>>> + * ACL RT structure is a set of multibit tries (with stride =3D=3D =
8)
>>> + * represented by an array of transitions. The next position is =
calculated
>>> + * based on the current position and the input byte.
>>> + * Each transition is 64 bit value with the following format:
>>> + * | node_type_specific : 32 | node_type : 3 | node_addr : 29 |
>>> + * For all node types except RTE_ACL_NODE_MATCH, node_addr is an =
index
>>> + * to the start of the node in the transtions array.
>>> + * Few different node types are used:
>>> + * RTE_ACL_NODE_MATCH:
>>> + * node_addr value is and index into an array that contains the =
return value
>>> + * and its priority for each category.
>>> + * Upper 32 bits of the transtion value are not used for that node =
type.
>>> + * RTE_ACL_NODE_QRANGE:
>>> + * that node consist of up to 5 transitions.
>>> + * Upper 32 bits are interpreted as 4 signed character values which
>>> + * are ordered from smallest(INT8_MIN) to largest (INT8_MAX).
>>> + * These values define 5 ranges:
>>> + * INT8_MIN <=3D range[0]  <=3D ((int8_t *)&transition)[4]
>>> + * ((int8_t *)&transition)[4] < range[1] <=3D ((int8_t =
*)&transition)[5]
>>> + * ((int8_t *)&transition)[5] < range[2] <=3D ((int8_t =
*)&transition)[6]
>>> + * ((int8_t *)&transition)[6] < range[3] <=3D ((int8_t =
*)&transition)[7]
>>> + * ((int8_t *)&transition)[7] < range[4] <=3D INT8_MAX
>>> + * So for input byte value within range[i] i-th transition within =
that node
>>> + * will be used.
>>> + * RTE_ACL_NODE_SINGLE:
>>> + * always transitions to the same node regardless of the input =
value.
>>> + * RTE_ACL_NODE_DFA:
>>> + * that node consits of up to 256 transitions.
>>> + * In attempt to conserve space all transitions are divided into 4 =
consecutive
>>> + * groups, by 64 transitions per group:
>>> + * group64[i] contains transitions[i * 64, .. i * 64 + 63].
>>> + * Upper 32 bits are interpreted as 4 unsigned character values one =
per group,
>>> + * which contain index to the start of the given group within the =
node.
>>> + * So to calculate transition index within the node for given input =
byte value:
>>> + * input_byte - ((uint8_t *)&transition)[4 + input_byte / 64].
>>> + */
>>=20
>> It's maybe an error. You were only supposed to remove some macros in =
this patch.
>=20
> Ah yes, I added some comments about ACL internal layout.
> Thought it might be useful.
> Forgot to add it into patch description.=20
> Are you saying I need to split it into 2 patches, or it is ok like =
that?

it=E2=80=99s great info, but it should probably go in =
doc/guides/prog_guide/packet_classif_access_ctrl.rst.

Jim