Skip to content

zebra: remove kernel routes that are suppressed#3165

Merged
eqvinox merged 1 commit intoFRRouting:masterfrom
pguibert6WIND:issue_3152
Oct 23, 2018
Merged

zebra: remove kernel routes that are suppressed#3165
eqvinox merged 1 commit intoFRRouting:masterfrom
pguibert6WIND:issue_3152

Conversation

@pguibert6WIND
Copy link
Copy Markdown
Member

on some cases, kernel routes are not selected, because the kernel
suppressed it without informing the netlink layer that the route has
been suppressed ( for instance, when an interface goes down, the route
never goes back when interface goes up again). This commit intends to
suppress that entry from zebra.

Signed-off-by: Philippe Guibert philippe.guibert@6wind.com

Summary

[fill here]

Related Issue

[fill here if applicable]

Components

[bgpd, build, doc, ripd, ospfd, eigrpd, isisd, etc. etc.]

Always remember to follow proper coding style etc. as
described in the FRRouting Dev Guide.
http://docs.frrouting.org/projects/dev-guide/en/latest/workflow.html

Copy link
Copy Markdown
Contributor

@mjstapp mjstapp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Had a couple of questions in-line

redistribute_delete(p, src_p, re);
UNSET_FLAG(re->flags, ZEBRA_FLAG_SELECTED);
if (RIB_KERNEL_ROUTE(re))
SET_FLAG(re->flags, ROUTE_ENTRY_REMOVED);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand what effect this will have - no one looks for ROUTE_ENTRY_REMOVED in the flags field?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

actually, this flag is looked up for route reap entries process

UNSET_FLAG(re->flags, ZEBRA_FLAG_SELECTED);
if (RIB_KERNEL_ROUTE(re))
SET_FLAG(re->flags, ROUTE_ENTRY_REMOVED);
if (CHECK_FLAG(re->status, ROUTE_ENTRY_REMOVED)) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

was this meant to use the REMOVED flag set above? if so ... why - won't the normal reaping of route_entries later in the processing flow do what's needed?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will do the test with just the set of the REMOVE flag
if the reap process is called, then I will just keep the set of the remove flag in the code.
if this does not work, I will directly remove the route if it is a kernel route.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

test done, and pr updated.
please review

SET_FLAG(re->flags, ROUTE_ENTRY_REMOVED);
if (CHECK_FLAG(re->status, ROUTE_ENTRY_REMOVED)) {
if (IS_ZEBRA_DEBUG_RIB) {
rnode_debug(rn, re->vrf_id, "rn %p, removing kernel entry re %p",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this clause will affect all route types, but the comment suggests you meant it as a special case just for KERNEL routes?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, I just want to flush the kernel routes that becomes unselected.

@NetDEF-CI
Copy link
Copy Markdown
Collaborator

Continuous Integration Result: SUCCESSFUL

Congratulations, this patch passed basic tests

Tested-by: NetDEF / OpenSourceRouting.org CI System

CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-5617/

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.


CLANG Static Analyzer Summary

  • Github Pull Request 3165, comparing to Git base SHA b3c8d34

No Changes in Static Analysis warnings compared to base

@LabN-CI
Copy link
Copy Markdown
Collaborator

LabN-CI commented Oct 11, 2018

💚 Basic BGPD CI results: SUCCESS, 0 tests failed

Results table
_ _
Result SUCCESS git merge/3165 e7dbc54
Date 10/11/2018
Start 14:11:28
Finish 14:34:29
Run-Time 23:01
Total 1816
Pass 1816
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2018-10-11-14:11:28.txt
Log autoscript-2018-10-11-14:12:06.log.bz2

For details, please contact louberger

@LabN-CI
Copy link
Copy Markdown
Collaborator

LabN-CI commented Oct 12, 2018

💚 Basic BGPD CI results: SUCCESS, 0 tests failed

Results table
_ _
Result SUCCESS git merge/3165 000baf2
Date 10/12/2018
Start 03:10:23
Finish 03:33:30
Run-Time 23:07
Total 1816
Pass 1816
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2018-10-12-03:10:23.txt
Log autoscript-2018-10-12-03:11:00.log.bz2

For details, please contact louberger

@NetDEF-CI
Copy link
Copy Markdown
Collaborator

Continuous Integration Result: SUCCESSFUL

Congratulations, this patch passed basic tests

Tested-by: NetDEF / OpenSourceRouting.org CI System

CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-5624/

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.


CLANG Static Analyzer Summary

  • Github Pull Request 3165, comparing to Git base SHA eaae620

No Changes in Static Analysis warnings compared to base

@pguibert6WIND
Copy link
Copy Markdown
Member Author

after simplification of algorithm, the result is still satisfying, ie the route is suppressed from Zebra RIB, after interface goes down.

root@ubuntu1604es:~/ENV/frr.base# ./vtysh/vtysh 

Hello, this is FRRouting (version 6.1-dev-my-manual-build).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

ubuntu1604es# show ip rou
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR, f - OpenFabric,
       > - selected route, * - FIB route

K>* 0.0.0.0/0 [0/0] via 10.0.2.2, mgmt0, 00:00:09
C>* 4.4.4.0/24 is directly connected, dummy0, 00:00:09
C>* 10.0.2.0/24 is directly connected, mgmt0, 00:00:09
K>* 20.1.1.0/24 [0/0] via 4.4.4.66, dummy0, 00:00:09
ubuntu1604es# exit
root@ubuntu1604es:~/ENV/frr.base# ip li set dummy0 down 
root@ubuntu1604es:~/ENV/frr.base# ./vtysh/vtysh 

Hello, this is FRRouting (version 6.1-dev-my-manual-build).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

ubuntu1604es# show ip rou
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR, f - OpenFabric,
       > - selected route, * - FIB route

K>* 0.0.0.0/0 [0/0] via 10.0.2.2, mgmt0, 00:00:20
C>* 10.0.2.0/24 is directly connected, mgmt0, 00:00:20
ubuntu1604es# 
root@ubuntu1604es:~/ENV/frr.base# ip li set dummy0 up
root@ubuntu1604es:~/ENV/frr.base# ./vtysh/vtysh 

Hello, this is FRRouting (version 6.1-dev-my-manual-build).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

ubuntu1604es# show ip rou
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR, f - OpenFabric,
       > - selected route, * - FIB route

K>* 0.0.0.0/0 [0/0] via 10.0.2.2, mgmt0, 00:00:36
C>* 4.4.4.0/24 is directly connected, dummy0, 00:00:03
C>* 10.0.2.0/24 is directly connected, mgmt0, 00:00:36
ubuntu1604es# 
root@ubuntu1604es:~/ENV/frr.base# i

@NetDEF-CI
Copy link
Copy Markdown
Collaborator

Continuous Integration Result: FAILED

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

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.

Get source and apply patch from patchwork: Successful

Building Stage: Failed

Ubuntu1404 amd64 build: Successful
Ubuntu1604 amd64 build: Successful
Ubuntu 18.04 amd64 build: Successful
Ubuntu 16.04 i386: Successful
FreeBSD11 amd64 build: Successful
Debian8 amd64 build: Successful
OmniOS amd64 build: Successful
CentOS7 amd64 build: Successful
CentOS6 amd64 build: Successful
OpenBSD60 amd64 build: Successful
FreeBSD10 amd64 build: Successful
Debian9 amd64 build: Successful
FreeBSD9 amd64 build: Successful
Fedora24 amd64 build: Successful
Ubuntu1204 amd64 build: Successful

NetBSD6 amd64 build: Failed

DejaGNU Unittests (make check) failed for NetBSD6 amd64 build: (see full PyTest log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-5637/artifact/CI007BUILD/ErrorLog/log_pytests.txt)

=================================== FAILURES ===================================
______ TestFlag.test_peer_ipv4_multicast_remove_private_AS_all_replace_AS ______
self = <test_peer_attr.TestFlag object at 0x7f7ff09e5ad0>
    def testfunction(self):
        self._run_tests()
        result = self.testresults[matchfunction]
        if result is not None:
>           frrsix.reraise(*result)
helpers/python/frrtest.py:101: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
helpers/python/frrtest.py:76: in _run_tests
    test(self)
helpers/python/frrtest.py:94: in matchfunction
    method(self, *args, **kwargs)
helpers/python/frrtest.py:143: in _okfail
    self._onesimple(line)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <test_peer_attr.TestFlag object at 0x7f7ff09e5ad0>
line = 'peer\\ipv4-multicast\\remove-private-AS all replace-AS'
    def _onesimple(self, line):
        if type(line) is str:
            line = line.encode('utf8')
        idx = self.output.find(line)
        if idx != -1:
            self.output = self.output[idx+len(line):]
        else:
>           raise MultiTestFailure("%r could not be found" % line)
E           MultiTestFailure: 'peer\\ipv4-multicast\\remove-private-AS all replace-AS' could not be found
helpers/python/frrtest.py:140: MultiTestFailure
_______ TestFlag.test_peer_ipv4_unicast_capability_orf_prefix_list_both ________
self = <test_peer_attr.TestFlag object at 0x7f7ff0138650>
    def testfunction(self):
        self._run_tests()
        result = self.testresults[matchfunction]
        if result is not None:
>           frrsix.reraise(*result)
helpers/python/frrtest.py:101: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
helpers/python/frrtest.py:76: in _run_tests
    test(self)
helpers/python/frrtest.py:94: in matchfunction
    method(self, *args, **kwargs)
helpers/python/frrtest.py:143: in _okfail
    self._onesimple(line)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <test_peer_attr.TestFlag object at 0x7f7ff09e5ad0>
line = 'peer\\ipv4-unicast\\capability orf prefix-list both'
    def _onesimple(self, line):
        if type(line) is str:
            line = line.encode('utf8')
        idx = self.output.find(line)
        if idx != -1:
            self.output = self.output[idx+len(line):]
        else:
>           raise MultiTestFailure("%r could not be found" % line)
E           MultiTestFailure: 'peer\\ipv4-unicast\\capability orf prefix-list both' could not be found
helpers/python/frrtest.py:140: MultiTestFailure
______________ TestFlag.test_peer_ipv6_multicast_maximum_prefix_4 ______________
self = <test_peer_attr.TestFlag object at 0x7f7ff017a090>
    def testfunction(self):
        self._run_tests()
        result = self.testresults[matchfunction]
        if result is not None:
>           frrsix.reraise(*result)
helpers/python/frrtest.py:101: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
helpers/python/frrtest.py:76: in _run_tests
    test(self)
helpers/python/frrtest.py:94: in matchfunction
    method(self, *args, **kwargs)
helpers/python/frrtest.py:143: in _okfail
    self._onesimple(line)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <test_peer_attr.TestFlag object at 0x7f7ff09e5ad0>
line = 'peer\\ipv6-multicast\\maximum-prefix'
    def _onesimple(self, line):
        if type(line) is str:
            line = line.encode('utf8')
        idx = self.output.find(line)
        if idx != -1:
            self.output = self.output[idx+len(line):]
        else:
>           raise MultiTestFailure("%r could not be found" % line)
E           MultiTestFailure: 'peer\\ipv6-multicast\\maximum-prefix' could not be found
helpers/python/frrtest.py:140: MultiTestFailure
______________ TestFlag.test_peer_ipv6_multicast_maximum_prefix_5 ______________
self = <test_peer_attr.TestFlag object at 0x7f7ff01384d0>
    def testfunction(self):
        self._run_tests()
        result = self.testresults[matchfunction]
        if result is not None:
>           frrsix.reraise(*result)
helpers/python/frrtest.py:101: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
helpers/python/frrtest.py:76: in _run_tests
    test(self)
helpers/python/frrtest.py:94: in matchfunction
    method(self, *args, **kwargs)
helpers/python/frrtest.py:143: in _okfail
    self._onesimple(line)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

NetBSD6 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-5637/artifact/CI007BUILD/config.status/config.status

NetBSD7 amd64 build: Failed

DejaGNU Unittests (make check) failed for NetBSD7 amd64 build
Pytest output suppressed for verbosity. See failure on other Distro above
see PyTest log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-5637/artifact/CI012BUILD/ErrorLog/log_pytests.txt
NetBSD7 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-5637/artifact/CI012BUILD/config.status/config.status

@LabN-CI
Copy link
Copy Markdown
Collaborator

LabN-CI commented Oct 15, 2018

💚 Basic BGPD CI results: SUCCESS, 0 tests failed

Results table
_ _
Result SUCCESS git merge/3165 48e022a
Date 10/15/2018
Start 06:00:20
Finish 06:23:21
Run-Time 23:01
Total 1816
Pass 1816
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2018-10-15-06:00:20.txt
Log autoscript-2018-10-15-06:00:57.log.bz2

For details, please contact louberger

/* Update nexthop for route, reset changed flag. */
nexthop_active_update(rn, old, 1);
UNSET_FLAG(old->status, ROUTE_ENTRY_CHANGED);
if (!nexthop_active_update(rn, old, 1) &&
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

my understanding of the problem is that the kernel route has a nexthop who's interface is down now and we are not getting a callback about it. What happens when that interface comes back up, is the kernel route restored?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

when interface comes back up, the kernel route did not restore the route, because the route was flushed.
in the kernel I tested ( ubuntu 16.04), the route is flushed when nexthop is unreachable.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm really confused about what we are trying to fix then. If the route is flushed are we not getting a RTM_DELROUTE for it?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes. we are not getting RTM_DELROUTE
we received the interface down event.
but we did not receive the RTM_DELROUTE event

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as remind, we are trying to fix #3152

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirmed that when an interface goes down, there is no DELROUTE for IPv4 routes, they're silently deleted from the kernel.

But I'm not sure the fix is correct?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not really sure where the fix should go either, have been tossing it around in my mind for a while now and not really coming up with something better. Let me spend a few minutes here thinking about it.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so I like the fix because it's targeted to just kernel routes, in my mind it's not a lot different than the here be dragons bit of code. I think I'm ok with this.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm going to add a comment above this and merge

@NetDEF-CI
Copy link
Copy Markdown
Collaborator

Continuous Integration Result: FAILED

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

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.

Get source and apply patch from patchwork: Successful

Building Stage: Failed

Ubuntu1404 amd64 build: Successful
Ubuntu1604 amd64 build: Successful
Ubuntu 18.04 amd64 build: Successful
Ubuntu 16.04 i386: Successful
FreeBSD11 amd64 build: Successful
Debian8 amd64 build: Successful
OmniOS amd64 build: Successful
CentOS7 amd64 build: Successful
CentOS6 amd64 build: Successful
OpenBSD60 amd64 build: Successful
FreeBSD10 amd64 build: Successful
Debian9 amd64 build: Successful
FreeBSD9 amd64 build: Successful
Fedora24 amd64 build: Successful
Ubuntu1204 amd64 build: Successful

NetBSD6 amd64 build: Failed

DejaGNU Unittests (make check) failed for NetBSD6 amd64 build: (see full PyTest log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-5637/artifact/CI007BUILD/ErrorLog/log_pytests.txt)

=================================== FAILURES ===================================
______ TestFlag.test_peer_ipv4_multicast_remove_private_AS_all_replace_AS ______
self = <test_peer_attr.TestFlag object at 0x7f7ff09e6ad0>
    def testfunction(self):
        self._run_tests()
        result = self.testresults[matchfunction]
        if result is not None:
>           frrsix.reraise(*result)
helpers/python/frrtest.py:101: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
helpers/python/frrtest.py:76: in _run_tests
    test(self)
helpers/python/frrtest.py:94: in matchfunction
    method(self, *args, **kwargs)
helpers/python/frrtest.py:143: in _okfail
    self._onesimple(line)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <test_peer_attr.TestFlag object at 0x7f7ff09e6ad0>
line = 'peer\\ipv4-multicast\\remove-private-AS all replace-AS'
    def _onesimple(self, line):
        if type(line) is str:
            line = line.encode('utf8')
        idx = self.output.find(line)
        if idx != -1:
            self.output = self.output[idx+len(line):]
        else:
>           raise MultiTestFailure("%r could not be found" % line)
E           MultiTestFailure: 'peer\\ipv4-multicast\\remove-private-AS all replace-AS' could not be found
helpers/python/frrtest.py:140: MultiTestFailure
_______ TestFlag.test_peer_ipv4_unicast_capability_orf_prefix_list_both ________
self = <test_peer_attr.TestFlag object at 0x7f7ff0139650>
    def testfunction(self):
        self._run_tests()
        result = self.testresults[matchfunction]
        if result is not None:
>           frrsix.reraise(*result)
helpers/python/frrtest.py:101: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
helpers/python/frrtest.py:76: in _run_tests
    test(self)
helpers/python/frrtest.py:94: in matchfunction
    method(self, *args, **kwargs)
helpers/python/frrtest.py:143: in _okfail
    self._onesimple(line)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <test_peer_attr.TestFlag object at 0x7f7ff09e6ad0>
line = 'peer\\ipv4-unicast\\capability orf prefix-list both'
    def _onesimple(self, line):
        if type(line) is str:
            line = line.encode('utf8')
        idx = self.output.find(line)
        if idx != -1:
            self.output = self.output[idx+len(line):]
        else:
>           raise MultiTestFailure("%r could not be found" % line)
E           MultiTestFailure: 'peer\\ipv4-unicast\\capability orf prefix-list both' could not be found
helpers/python/frrtest.py:140: MultiTestFailure
______________ TestFlag.test_peer_ipv6_multicast_maximum_prefix_4 ______________
self = <test_peer_attr.TestFlag object at 0x7f7ff017b090>
    def testfunction(self):
        self._run_tests()
        result = self.testresults[matchfunction]
        if result is not None:
>           frrsix.reraise(*result)
helpers/python/frrtest.py:101: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
helpers/python/frrtest.py:76: in _run_tests
    test(self)
helpers/python/frrtest.py:94: in matchfunction
    method(self, *args, **kwargs)
helpers/python/frrtest.py:143: in _okfail
    self._onesimple(line)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <test_peer_attr.TestFlag object at 0x7f7ff09e6ad0>
line = 'peer\\ipv6-multicast\\maximum-prefix'
    def _onesimple(self, line):
        if type(line) is str:
            line = line.encode('utf8')
        idx = self.output.find(line)
        if idx != -1:
            self.output = self.output[idx+len(line):]
        else:
>           raise MultiTestFailure("%r could not be found" % line)
E           MultiTestFailure: 'peer\\ipv6-multicast\\maximum-prefix' could not be found
helpers/python/frrtest.py:140: MultiTestFailure
______________ TestFlag.test_peer_ipv6_multicast_maximum_prefix_5 ______________
self = <test_peer_attr.TestFlag object at 0x7f7ff01394d0>
    def testfunction(self):
        self._run_tests()
        result = self.testresults[matchfunction]
        if result is not None:
>           frrsix.reraise(*result)
helpers/python/frrtest.py:101: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
helpers/python/frrtest.py:76: in _run_tests
    test(self)
helpers/python/frrtest.py:94: in matchfunction
    method(self, *args, **kwargs)
helpers/python/frrtest.py:143: in _okfail
    self._onesimple(line)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

NetBSD6 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-5637/artifact/CI007BUILD/config.status/config.status

NetBSD7 amd64 build: Failed

DejaGNU Unittests (make check) failed for NetBSD7 amd64 build
Pytest output suppressed for verbosity. See failure on other Distro above
see PyTest log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-5637/artifact/CI012BUILD/ErrorLog/log_pytests.txt
NetBSD7 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-5637/artifact/CI012BUILD/config.status/config.status

@NetDEF-CI
Copy link
Copy Markdown
Collaborator

Continuous Integration Result: SUCCESSFUL

Congratulations, this patch passed basic tests

Tested-by: NetDEF / OpenSourceRouting.org CI System

CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-5637/

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.


CLANG Static Analyzer Summary

  • Github Pull Request 3165, comparing to Git base SHA c9e3c7b

No Changes in Static Analysis warnings compared to base

@pguibert6WIND
Copy link
Copy Markdown
Member Author

as remind, we are trying to fix #3152

on some cases, kernel routes are not selected, because the kernel
suppressed it without informing the netlink layer that the route has
been suppressed ( for instance, when an interface goes down, the route
never goes back when interface goes up again). This commit intends to
suppress that entry from zebra.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
@pguibert6WIND
Copy link
Copy Markdown
Member Author

just rebased

@LabN-CI
Copy link
Copy Markdown
Collaborator

LabN-CI commented Oct 17, 2018

💚 Basic BGPD CI results: SUCCESS, 0 tests failed

Results table
_ _
Result SUCCESS git merge/3165 212df1d
Date 10/17/2018
Start 17:11:21
Finish 17:34:31
Run-Time 23:10
Total 1816
Pass 1816
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2018-10-17-17:11:21.txt
Log autoscript-2018-10-17-17:12:04.log.bz2

For details, please contact louberger

@NetDEF-CI
Copy link
Copy Markdown
Collaborator

Continuous Integration Result: SUCCESSFUL

Congratulations, this patch passed basic tests

Tested-by: NetDEF / OpenSourceRouting.org CI System

CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-5671/

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.


CLANG Static Analyzer Summary

  • Github Pull Request 3165, comparing to Git base SHA b9ea408

No Changes in Static Analysis warnings compared to base

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants