[dpdk-dev] ACL Issue with single field rule and rest with wild card entry

Ananyev, Konstantin konstantin.ananyev at intel.com
Fri Feb 6 12:44:59 CET 2015


Hi Varun,

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Rapelly, Varun
> Sent: Friday, February 06, 2015 7:25 AM
> To: dev at dpdk.org
> Subject: [dpdk-dev] ACL Issue with single field rule and rest with wild card entry
> 
> Hi,
> 
> struct ipv6_5tuple {
>    uint8_t proto;         /* Protocol, next header. */
>    uint32_t src_addr0;  /* IP address of source host. */
>    uint32_t src_addr1;  /* IP address of source host. */
>    uint32_t src_addr2;  /* IP address of source host. */
>    uint32_t src_addr3;  /* IP address of source host. */
> };
> 
> enum {
>    PROTO_FIELD_IPV6,
>    SRC_FIELD0_IPV6,
>    SRC_FIELD1_IPV6,
>    SRC_FIELD2_IPV6,
>    SRC_FIELD3_IPV6,
>    NUM_FIELDS_IPV6
> };
> 
> 
> I'm using the above data to insert in to ACL trie.
> 
> If I'm inserting rules with only different proto fields, [I'm expecting others fields as wild card entries]  then the rules are not matching.
> 
> But if I insert one rule with dummy entries [in the attached file line num 118-125], then the above issue is resolved.

Hmm, it is strange...
I took your source code compiled it, then commented out lines 118-125 and recompiled it.
Both binaries produce valid result for me:

1. original code:
ACL: Gen phase for ACL "ACL_example":
runtime memory footprint on socket -1:
single nodes/bytes used: 0/0
quad nodes/vectors/bytes used: 0/0/0
DFA nodes/group64/bytes used: 1/4/4104
match nodes/bytes used: 4/512
total: 6816 bytes
max limit: 18446744073709551615 bytes
ACL: Build phase for ACL "ACL_example":
node limit for tree split: 2048
nodes created: 5
memory consumed: 8388615
ACL: trie 0: number of rules: 4, indexes: 1
rte_acl_classify() returns 0
, res[0]=11


2. code with lines 118-125 commented out:
ACL: Gen phase for ACL "ACL_example":
runtime memory footprint on socket -1:
single nodes/bytes used: 0/0
quad nodes/vectors/bytes used: 0/0/0
DFA nodes/group64/bytes used: 1/4/4104
match nodes/bytes used: 3/384
total: 6688 bytes
max limit: 18446744073709551615 bytes
ACL: Build phase for ACL "ACL_example":
node limit for tree split: 2048
nodes created: 4
memory consumed: 8388615
ACL: trie 0: number of rules: 3, indexes: 1
rte_acl_classify() returns 0
, res[0]=11

Wonder what results are you getting for both cases?

Konstantin

> 
> Please let me know:
> 
> 
> 1.       Can we have rules with only one entry and others as wild card entries?
> 
> 2.       Is there any other way to match wild card entries in a rule?
> 
> Regards,
> Varun



More information about the dev mailing list