FRRouting / topotests

Moved to frrouting/frr
22 stars 26 forks source link

lib: Always allow vrf apps to work right #94

Closed donaldsharp closed 6 years ago

donaldsharp commented 6 years ago

The net.ipv4.tcp_l3mdev_accept and net.ipv4.udp_l3mdev_accept=1 sysctl's allow bgp to work properly within a vrf setup.

Since we know we need this, always turn them on.

Signed-off-by: Donald Sharp sharpd@cumulusnetworks.com

NetDEF-CI commented 6 years ago

Continuous Integration Result: FAILED

See below for issues. CI System Testrun URL: https://ci1.netdef.org/browse/FRR-TOPOPR-234/

This is a comment from an EXPERIMENTAL automated CI system. For questions and feedback in regards to this CI system, please feel free to email Martin Winter - mwinter (at) opensourcerouting.org.

Topotest Checkout: Successful

Topotests: Failed

Topotest 4.0 branch: Successful Topotest master i386: Successful Addresssanitizer: Successful Topotest 2.0 branch: Successful Topotest 3.0 branch: Successful

Topotest master amd64: Failed

Topotest master amd64: Unknown Log URL: https://ci1.netdef.org/browse/FRR-TOPOPR-234/artifact/TMB/TestExecutionLogs/ Topotest master amd64: Unknown Log URL: https://ci1.netdef.org/browse/FRR-TOPOPR-234/artifact/TMB/MemoryLeaks/memleak_bgp_l3vpn_to_bgp_vrf.test_bgp_l3vpn_to_bgp_vrf.txt Topology Test Results are at https://ci1.netdef.org/browse/FRR-TOPOPR-TMB-234/test

Topology Tests failed for Topotest master amd64: 2018-05-16 19:54:38,342 ERROR: ** 2018-05-16 19:54:38,342 ERROR: Test Target Summary Pass Fail 2018-05-16 19:54:38,342 ERROR: ** 2018-05-16 19:54:38,343 ERROR: FILE: scripts/adjacencies.py 2018-05-16 19:54:38,343 ERROR: FILE: scripts/check_routes.py 2018-05-16 19:54:38,344 ERROR: 44 ce1 Cust 1 routes from remote 0 1 2018-05-16 19:54:38,344 ERROR: See /tmp/topotests/bgp_l3vpn_to_bgp_vrf.test_bgp_l3vpn_to_bgp_vrf/output.log for details of errors 2018-05-16 19:54:38,345 ERROR: assert failed at "bgp_l3vpn_to_bgp_vrf.test_bgp_l3vpn_to_bgp_vrf/test_check_routes": 1 tests failed

see full log at https://ci1.netdef.org/browse/FRR-TOPOPR-234/artifact/TMB/ErrorLog/log_topotests.txt

Topotest master arm8: Failed

Topology Test Results are at https://ci1.netdef.org/browse/FRR-TOPOPR-TMARM8-234/test

Topology Tests failed for Topotest master arm8 see full log at https://ci1.netdef.org/browse/FRR-TOPOPR-234/artifact/TMARM8/ErrorLog/log_topotests.txt Topotest master arm8: Unknown Log URL: https://ci1.netdef.org/browse/FRR-TOPOPR-234/artifact/TMARM8/TestExecutionLogs/

Topotest master arm7: Failed

Topology Test Results are at https://ci1.netdef.org/browse/FRR-TOPOPR-TMARM7-234/test

Topology Tests failed for Topotest master arm7 see full log at https://ci1.netdef.org/browse/FRR-TOPOPR-234/artifact/TMARM7/ErrorLog/log_topotests.txt Topotest master arm7: Unknown Log URL: https://ci1.netdef.org/browse/FRR-TOPOPR-234/artifact/TMARM7/TestExecutionLogs/

Topology Tests memory analysis: https://ci1.netdef.org/browse/FRR-TOPOPR-234/artifact/TMARM8/MemoryLeaks/ Topology Tests memory analysis: https://ci1.netdef.org/browse/FRR-TOPOPR-234/artifact/TMARM7/MemoryLeaks/

rzalamena commented 6 years ago

The code looks good, but unfortunately it seems that the ARM* machines do not support this sysctl.

I'd suggest to just run the sysctl and log an error message if it fails.

errmsg = set_sysctl(self, 'net.ipv4.tcp_l3mdev_accept', 1)
if errmsg is not None:
    logger.error('failed to set net.ipv4.tcp_l3mdev_accept: {}'.format(errmsg))

Tests depending on this will probably need to test VRF support somehow. I'd suggest implementing something like it was done for MPLS: https://github.com/FRRouting/topotests/commit/ca448bccb60c0a7dd7200f1d071226a1ab13c17d