[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