[NETVIRT-1235] Prefix-To-Interface datastore is not cleaned up incase of Dual stack testcases Created: 30/Apr/18  Updated: 03/Oct/18  Resolved: 03/Oct/18

Status: Resolved
Project: netvirt
Component/s: General
Affects Version/s: Oxygen
Fix Version/s: Fluorine

Type: Bug Priority: Medium
Reporter: Akash Sahu Assignee: Akash Sahu
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Openstack Pike with ODl stable oxygen


Issue Links:
Relates
relates to NETVIRT-1270 Conflicting modification for path... ... Resolved

 Description   

4 Dual-Stack test cases have a bug where, when Dual stack VM is deleted, one of the primary-adj entry remains stale in prefix-to-interface.

Analysis:

 

In oxygen dual-stack coming into picture, I see challenge in managing prefix-to-interface.

The reason being , prefix-to-interface is managed via VpnInterface Op listener like before(Boron).

 

But in Boron , prefix-to-interface always had only one primary adj stored , it was manageable through VpnInterfaceOp listener.

When adj count becomes 1 , we deleted the entire VpnInterface Op entry for the port. It used to trigger  remove() of VpnInterfaceOp listener.

In that ,  we removed prefix-to-interface and updated the vpn-to-dpn-list.

 

But challenge in Oxygen is , we have 2 primary adj  stored in VpnInterfaceOp DS. When VM is deleted , 2 FIB entries are removed.

In cleanupOpDataForFib() , when we remove first primary adj from VpnInterfaceOp DS , it triggers update in VpnInterfaceOp listener.

We ignore update of VpnInterfaceOp. When 2^nd^ / final primary adj is removed , we delete the VpnInterfaceOp entry.

This leads to removal of prefix-to-interface for 2^nd^ primary adj. First primary adj , always remains stale.

 


Generated at Wed Feb 07 20:23:34 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.