Topotest PR7489

Build: #3 failed Manual run by Martin Winter

Stages & jobs

  1. Get Sourcecode

  2. Building Stage

  3. Basic Tests

  4. Final

    Final

Build result summary

Details

Completed
Duration
184 minutes
Labels
version=frr-7_4-dev-3871-g06aa91246git=https_//github_com/frrouting/frr_gitbuildurl=https_//ci1_netdef_org/browse/testing-ttpr7489-3branch=master
Revision
1facc03e6198c8f6b950b714ac8b8d48ebf0ff3e 1facc03e6198c8f6b950b714ac8b8d48ebf0ff3e
Total tests
6558
Failing since
#1 (Manual run by Martin Winter)

Responsible

This build has been failing since #1
No one has taken responsibility

Code commits

Author Commit Message Commit date
Donatas Abraitis <donatas.abraitis@gmail.com> Donatas Abraitis <donatas.abraitis@gmail.com> 1facc03e6198c8f6b950b714ac8b8d48ebf0ff3e 1facc03e6198c8f6b950b714ac8b8d48ebf0ff3e Merge pull request #7768 from donaldsharp/route_map_opt
Route map dependency fix
Donald Sharp Donald Sharp 1a161d809328835834b0e2771f61d05fc7c1b528 1a161d809328835834b0e2771f61d05fc7c1b528 Merge pull request #7766 from deastoe/dplane-fpm-nl_optimisations
dplane_fpm_nl optimisations
Donald Sharp <sharpd@nvidia.com> Donald Sharp <sharpd@nvidia.com> 9149c63517c41681a6cf07e11e6b85f8458dffdb 9149c63517c41681a6cf07e11e6b85f8458dffdb lib: Add a warning for when we are not operating correctly
There exists a possibilty that route map dependencies
have gotten wrong.  Prevent the crash and warn the user
that we may be in trouble.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Olivier Dugeon <olivier.dugeon@orange.com> Olivier Dugeon <olivier.dugeon@orange.com> 065f7c7cc066b4c909daa5d79d6fee3eeed43a2e 065f7c7cc066b4c909daa5d79d6fee3eeed43a2e Merge pull request #7351 from opensourcerouting/feature/pathd
Add a new SR-TE policy management daemon and an optional PCEP module
Donald Sharp <sharpd@nvidia.com> Donald Sharp <sharpd@nvidia.com> 02e7a369b8356e79160d26c18798308c88b4d29d 02e7a369b8356e79160d26c18798308c88b4d29d lib: Fix dependency of match types in route-map code
Route-maps contain a hash of hash's that contain the
container type name ( say community or access list or whatever )
and then it has a hash of route-maps that this maps too

Suppose you have this:

!
frr version 7.3.1
frr defaults traditional
hostname eva
log stdout
!
debug route-map
!
router bgp 239
 neighbor 192.168.161.2 remote-as external
 !
 address-family ipv4 unicast
  neighbor 192.168.161.2 route-map foo in
 exit-address-family
!
bgp community-list standard 7000:40002 permit 7000:40002
bgp community-list standard 7000:40002 permit 7000:40003
!
route-map foo deny 20
 match community 7000:40002
!
route-map foo permit 10
!
line vty
!
end

You have a community hash which has an

7000:40002 entry

This entry has a hash of routemaps that are referencing it.  In this above
example it would have `foo` as the single entry.

Given the above config if you do this:

eva# conf
eva(config)# route-map foo deny 20
eva(config-route-map)# match community 7000:4003
eva(config-route-map)#

We would expect the `7000:40002` community hash to no longer have
a reference to the `foo` routemap.  Instead we see the code doing this:

2020/12/18 13:47:12 BGP: bgpd 7.3.1 starting: vty@2605, bgp@<all>:179
2020/12/18 13:47:47 BGP: Add route-map foo
2020/12/18 13:47:47 BGP: Route-map foo add sequence 10, type: permit
2020/12/18 13:47:57 BGP: Route-map foo add sequence 20, type: deny
2020/12/18 13:48:05 BGP: Adding dependency for filter 7000:40002 in route-map foo
2020/12/18 13:48:05 BGP: route_map_print_dependency: Dependency for 7000:40002: foo
2020/12/18 13:48:41 BGP: bgp_update_receive: rcvd End-of-RIB for IPv4 Unicast from 192.168.161.2 in vrf default
2020/12/18 13:49:19 BGP: Deleting dependency for filter 7000:4003 in route-map foo
2020/12/18 13:49:19 BGP: Adding dependency for filter 7000:4003 in route-map foo
2020/12/18 13:49:19 BGP: route_map_print_dependency: Dependency for 7000:4003: foo

Note how the code attempts to remove the dependency for `7000:4003` instead of the
dependency for `7000:40002`.  Then we create a new hash for `7000:4003` and then
install the routemap name in it.

This is wrong.  We should remove the `7000:40002` dependency and then install
a dependency for `7000:4003`.

Fix the code to do the right thing.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>

Tests

Existing test failures 2
Status Test Failing since View job Duration
AssertionError: Testcase test_BGP_GR_TC_5_1_2_p1 : Failed     Error [DUT: r1]: remoteGrMode is not correct Expected: Restart, Found: NotApplicable assert '[DUT: r1]: remoteGrMode is not correct Expected: Restart, Found: NotApplicable' is True
E   AssertionError: Testcase test_BGP_GR_TC_5_1_2_p1 : Failed 
       Error [DUT: r1]: remoteGrMode is not correct Expected: Restart, Found: NotApplicable
    assert '[DUT: r1]: remoteGrMode is not correct Expected: Restart, Found: NotApplicable' is True
AssertionError: Testcase test_BGP_GR_TC_5_1_2_p1 : Failed     Error [DUT: r1]: remoteGrMode is not correct Expected: Restart, Found: NotApplicable assert '[DUT: r1]: remoteGrMode is not correct Expected: Restart, Found: NotApplicable' is True
E   AssertionError: Testcase test_BGP_GR_TC_5_1_2_p1 : Failed 
       Error [DUT: r1]: remoteGrMode is not correct Expected: Restart, Found: NotApplicable
    assert '[DUT: r1]: remoteGrMode is not correct Expected: Restart, Found: NotApplicable' is True