Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Ignore deleted AggregateRoute object while processing IsBestMatch()
Scenario: routing instance is aggregating 1/8 and 1.0.1/24 route. At this point, if contributing route 1.0.1.1/32 is added to routing instance, it will become contributing to 1.0.1/24 and 1.0.1/24 will be contributing route to 1/8. Config update is made to remove 1.0.1/24 aggregate route. In a specific order of delete, 1.0.1.1/32 is notified after it is no longer contributing to 1.0.1/24. During the notification of this route, if the aggregate route object for 1.0.1/24 is not yet removed from aggregate_route_map_ it is not made as contributing to 1/8. Due to this bug, at steady state after the config update, no aggregate route will be published. Fix the issue by ignoring delete marked AggregateRoute object in IsBestMatch() Also added UT to verify the issue and fix Change-Id: Ia107952b876e0ee2a64c817074c677985a74b017 Closes-bug: #1547979
- Loading branch information
Showing
3 changed files
with
121 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<config> | ||
<route-aggregate name='vn_subnet_1'> | ||
<aggregate-route-entries> | ||
<route>9.0.1.0/24</route> | ||
</aggregate-route-entries> | ||
<nexthop>2.2.2.1</nexthop> | ||
</route-aggregate> | ||
|
||
<route-aggregate name='vn_subnet_2'> | ||
<aggregate-route-entries> | ||
<route>9.0.0.0/8</route> | ||
<route>21.1.1.0/24</route> | ||
<route>21.1.0.0/16</route> | ||
<route>21.0.0.0/8</route> | ||
</aggregate-route-entries> | ||
<nexthop>2.2.2.1</nexthop> | ||
</route-aggregate> | ||
|
||
<routing-instance name="test"> | ||
<vrf-target>target:1:103</vrf-target> | ||
</routing-instance> | ||
</config> |