Adapt flow table to generic hash table

Bug #1497833 reported by Divakar Dharanalakota
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
R2.20
Fix Committed
Medium
Divakar Dharanalakota
Trunk
Fix Committed
Medium
Divakar Dharanalakota

Bug Description

Currently the flow table uses its own hash tables and does not use generic hash table of Vrouter. Also the over flow table of flow table, is another table which is searched completely (starting from hash of the packet) to do a find. This needs to be modified in such a way that the over flow table is a linked list from main bucket. This ensures that the over flow table is never completely searched, giving a better performance.
-Divakar

Tags: vrouter
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R2.22-dev

Review in progress for https://review.opencontrail.org/13933
Submitter: Divakar Dharanalakota (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R2.20

Review in progress for https://review.opencontrail.org/14315
Submitter: Divakar Dharanalakota (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/14315
Committed: http://github.org/Juniper/contrail-vrouter/commit/9737c778e7d56f271d1f3480861b39e8a193c91b
Submitter: Zuul
Branch: R2.20

commit 9737c778e7d56f271d1f3480861b39e8a193c91b
Author: Divakar <email address hidden>
Date: Thu Oct 8 16:05:48 2015 +0530

Adapting flow table to generic hash table

Currently the over flow table of flow table is a different table and is
searched if lookup does not succed in main table. The over flow table is
searched completely starting from a hash till the entry is found. This
leads to performance drop if entry does not exists in the table as such.

As a fix, the flow table is adapted to generic hash table, which
maintains a linked list of entries from the last bucket entry of main
table. So the search always looks into only these entries rather the
complete table.

Change-Id: Icc4bd90a194696708b6ac847ee67a4b1b4256c8b
closes-bug: #1497833

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] master

Review in progress for https://review.opencontrail.org/14358
Submitter: Divakar Dharanalakota (<email address hidden>)

Sachin Bansal (sbansal)
information type: Proprietary → Public
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R2.20

Review in progress for https://review.opencontrail.org/14730
Submitter: Divakar Dharanalakota (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/14730
Committed: http://github.org/Juniper/contrail-vrouter/commit/04cadf78d6651580b8b007d979255087259b8112
Submitter: Zuul
Branch: R2.20

commit 04cadf78d6651580b8b007d979255087259b8112
Author: Divakar <email address hidden>
Date: Fri Oct 30 21:37:25 2015 +0530

Maintaining free overflow entries as linked list

As of now the over flow entries are represented using bitmap. To
allocate a free entry this bitmap is searched for free bit. This can
lead to performance issues if most of the entries are used and very few
entries are empty, as there will be search of complete bitmap.

To overcome this, the free overflow entries are maintained as a linked
list, and entry from head of the list is used to allocate one. To
release it, the entry is added back at head.

Change-Id: I20343a0be290c540a935adac4ef2614bf5f955e4
closes-bug: #1497833

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] master

Review in progress for https://review.opencontrail.org/16368
Submitter: Divakar Dharanalakota (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/16368
Committed: http://github.org/Juniper/contrail-vrouter/commit/790d0dcf1404b05e9681795b63b7c9137de7a587
Submitter: Zuul
Branch: master

commit 790d0dcf1404b05e9681795b63b7c9137de7a587
Author: Divakar <email address hidden>
Date: Thu Oct 8 16:05:48 2015 +0530

Adapting flow table to generic hash table

Currently the over flow table of flow table is a different table and is
searched if lookup does not succed in main table. The over flow table is
searched completely starting from a hash till the entry is found. This
leads to performance drop if entry does not exists in the table as such.

As a fix, the flow table is adapted to generic hash table, which
maintains a linked list of entries from the last bucket entry of main
table. So the search always looks into only these entries rather the
complete table.

Change-Id: I1525d882466c897a8b3b5ed39a4c44ce62601685
closes-bug: #1497833
closes-bug: #1511318
closes-bug: #1497833
closes-bug: #1517749
closes-bug: #1520614
closes-bug: #1522765

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.