]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
5 years agolib: fix NETCONF network-wide transactions for confd and sysrepo
Renato Westphal [Fri, 7 Dec 2018 17:27:34 +0000 (15:27 -0200)]
lib: fix NETCONF network-wide transactions for confd and sysrepo

ConfD and Sysrepo implement configuration transactions using a
two-phase commit protocol (prepare + abort/apply). For network-wide
transactions to work, ConfD and Sysrepo move to the second phase of
the commit protocol only after receiving the results of the first
phase from all devices involved in the transaction. If all devices
succeed in the 'prepare' phase, then all of them move to the 'apply'
phase and the transaction is committed. On the other hand, if any
device fails in the 'prepare' phase, all of them move to 'abort'
phase and the transaction is aborted.

The confd and sysrepo plugins were implementing the full
two-phase commit protocol upon receiving a request to validate
the configuration changes and allocate all resources required to
apply them (first phase). The notifications to abort or apply the
changes (second phase) were being ignored since everything was being
done in the first phase for simplicity. This wasn't a problem for
single-device transactions, but it is for transactions involving
multiple devices.  Rework the code a bit to do things properly and
fix this problem.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
5 years agoMerge pull request #3438 from opensourcerouting/bgp-rfapi-default-value
Donald Sharp [Fri, 7 Dec 2018 00:32:07 +0000 (19:32 -0500)]
Merge pull request #3438 from opensourcerouting/bgp-rfapi-default-value

bgpd: don't show default value in configuration

5 years agoMerge pull request #3437 from opensourcerouting/bugfix/topotests-use-copy
Donald Sharp [Fri, 7 Dec 2018 00:31:26 +0000 (19:31 -0500)]
Merge pull request #3437 from opensourcerouting/bugfix/topotests-use-copy

tests/topotests: Use copied tests in Docker

5 years agoMerge pull request #3436 from opensourcerouting/bugfix/topotest-sbin-dir
Donald Sharp [Fri, 7 Dec 2018 00:30:55 +0000 (19:30 -0500)]
Merge pull request #3436 from opensourcerouting/bugfix/topotest-sbin-dir

tests/topotests: Also search sbin for modprobe

5 years agoMerge pull request #3421 from pguibert6WIND/bgp_lp_finish_called_too_early
Donald Sharp [Fri, 7 Dec 2018 00:30:18 +0000 (19:30 -0500)]
Merge pull request #3421 from pguibert6WIND/bgp_lp_finish_called_too_early

bgpd: delay destruction of label pool

5 years agoMerge pull request #3425 from chiragshah6/evpn_dev1
Russ White [Thu, 6 Dec 2018 23:43:03 +0000 (18:43 -0500)]
Merge pull request #3425 from chiragshah6/evpn_dev1

bgpd: set attribute change flag to evpn imported route

5 years agobgpd: don't show default value in configuration
Rafael Zalamena [Thu, 6 Dec 2018 19:26:10 +0000 (17:26 -0200)]
bgpd: don't show default value in configuration

Don't show the configuration line `rfp full-table-download off` by
default as it is not the default value, instead only show
`rfp full-table-download on` (the non-default value) when it is
configured.

This standardizes this knob to the FRR default behavior.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agotests/topotests: Also search sbin for modprobe
Christian Franke [Thu, 6 Dec 2018 17:31:34 +0000 (18:31 +0100)]
tests/topotests: Also search sbin for modprobe

We call `modprobe -n` to check if mpls modules are available to be
loaded. We do this as normal user, to only ask for root permissions
if we are actually loading the module.

This breaks if `modprobe` is in `/sbin` and normal users don't have
sbin in path.

So add `/sbin` to the search path to work around this.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agotests/topotests: Use copied tests in Docker
Christian Franke [Thu, 6 Dec 2018 14:26:57 +0000 (15:26 +0100)]
tests/topotests: Use copied tests in Docker

If we mount the tests into the container from the host, we also
mount any `*.pyc` files with them, which will lead to issues
as the mount is done read-only to avoid any changes to the host.

Since the tests are now integrated and we already create a writeable
copy of the FRR tree, just use the tests from the FRR tree to avoid
this issue.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoMerge pull request #3419 from opensourcerouting/freebsd-route-warning-fix
Donald Sharp [Thu, 6 Dec 2018 12:53:30 +0000 (07:53 -0500)]
Merge pull request #3419 from opensourcerouting/freebsd-route-warning-fix

zebra: fix some boot up warnings on FreeBSD

5 years agobgpd: set attribute change flag to evpn imported
Chirag Shah [Wed, 5 Dec 2018 01:08:47 +0000 (17:08 -0800)]
bgpd: set attribute change flag to evpn imported

EVPN route's attribute changes,
mark attribute change flag to imported unicast route.

A scenario where AS_PATH attribute have changed for an EVPN type-5
route, set attribute change
to imported route.

Ticket:CM-23008
Reviewed By:
Testing Done:
Validated via marking EVPN route with AS_PATH prepand.
At the receiving VTEP, ensure attribute change flag is set to
imported unicast route and bgp update sent to VTEPs subsequent
bgp peers with AS_PATH prepend update.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agozebra: don't log errors on unsupported medias
Rafael Zalamena [Wed, 5 Dec 2018 19:22:56 +0000 (17:22 -0200)]
zebra: don't log errors on unsupported medias

When using `SIOCGIFMEDIA` check for `EINVAL`, otherwise we might print
an error message on an unsupported interface.

FreeBSD source code reference:
https://github.com/freebsd/freebsd/blob/master/sys/net/if_media.c#L300

And:
https://github.com/freebsd/freebsd/blob/8cb4b0c0181bd45318ee8977f77aea90c53bb224/usr.sbin/rtsold/if.c#L211

  /*
   * EINVAL simply means that the interface does not support
   * the SIOCGIFMEDIA ioctl. We regard it alive.
   */

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agobgpd: delay destruction of label pool
Philippe Guibert [Wed, 5 Dec 2018 16:54:57 +0000 (17:54 +0100)]
bgpd: delay destruction of label pool

label pool finalisation must be delayed after route deletion on bgp.
otherwise a crash will happen, while labels will be released.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
5 years agoMerge pull request #3418 from pguibert6WIND/bgp_rfapi_path_info_extra_free
Lou Berger [Wed, 5 Dec 2018 15:24:33 +0000 (10:24 -0500)]
Merge pull request #3418 from pguibert6WIND/bgp_rfapi_path_info_extra_free

bgpd: reuse bgp_path_info_extra_free() routing in rfapi

5 years agozebra: refactor route socket message handling
Rafael Zalamena [Wed, 5 Dec 2018 13:51:25 +0000 (11:51 -0200)]
zebra: refactor route socket message handling

Some address types were not being skipped triggering a warning log
message, so lets refactor this code to properly handle known and unknown
types.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agobgpd: reuse bgp_path_info_extra_free() routing in rfapi
Philippe Guibert [Wed, 5 Dec 2018 14:09:35 +0000 (15:09 +0100)]
bgpd: reuse bgp_path_info_extra_free() routing in rfapi

rfapi code should use bgp_path_info_extra_free() routine.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
5 years agozebra: always define ROUNDUP and ROUND_TYPE
Rafael Zalamena [Wed, 5 Dec 2018 13:50:25 +0000 (11:50 -0200)]
zebra: always define ROUNDUP and ROUND_TYPE

Move the declaration of ROUNDUP and ROUND_TYPE to outside of
`ifdef SA_SIZE`. We'll use these definitions in the next commit.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agoMerge pull request #3372 from nitinsoniism/show_evpn_mac_vni_all_detail
Sri Mohana Singamsetty [Tue, 4 Dec 2018 18:19:18 +0000 (10:19 -0800)]
Merge pull request #3372 from nitinsoniism/show_evpn_mac_vni_all_detail

zebra: Add "show evpn mac vni all detail" command

5 years agoMerge pull request #3174 from opensourcerouting/feature/isis-triggered-hello
Olivier Dugeon [Tue, 4 Dec 2018 17:33:36 +0000 (18:33 +0100)]
Merge pull request #3174 from opensourcerouting/feature/isis-triggered-hello

Feature: IS-IS triggered hello

5 years agoMerge pull request #3410 from opensourcerouting/bugfix/topotest-docker-build-context
Quentin Young [Tue, 4 Dec 2018 16:36:11 +0000 (11:36 -0500)]
Merge pull request #3410 from opensourcerouting/bugfix/topotest-docker-build-context

Revert "tests/topotests: Change docker build context"

5 years agoMerge pull request #3340 from nitinsoniism/show_evpn_vni_detail
David Lamparter [Tue, 4 Dec 2018 16:29:50 +0000 (17:29 +0100)]
Merge pull request #3340 from nitinsoniism/show_evpn_vni_detail

zebra: Add "show evpn vni detail" command

5 years agotopotests: Update json_cmp_result to return readable result
Christian Franke [Tue, 4 Dec 2018 15:11:41 +0000 (16:11 +0100)]
topotests: Update json_cmp_result to return readable result

Before this update, json_cmp_results which were formatted as strings
would not show the error mesage but just an object reference.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agotopotests/isis-topo1: Set useful IS-IS debugs
Christian Franke [Tue, 4 Dec 2018 15:11:08 +0000 (16:11 +0100)]
topotests/isis-topo1: Set useful IS-IS debugs

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoisisd: trigger hellos on adjacency state change
Christian Franke [Wed, 10 Oct 2018 14:00:16 +0000 (16:00 +0200)]
isisd: trigger hellos on adjacency state change

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoisisd: add send_hello_sched function
Christian Franke [Wed, 10 Oct 2018 13:43:01 +0000 (15:43 +0200)]
isisd: add send_hello_sched function

Add a function send_hello_sched so that the logic for scheduling a
hello is not replicated inconsistently into different locations.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoMerge pull request #3413 from chiragshah6/evpn_dev1
David Lamparter [Tue, 4 Dec 2018 14:43:15 +0000 (15:43 +0100)]
Merge pull request #3413 from chiragshah6/evpn_dev1

zebra: dup addr detect clear cmd non-zero return

5 years agoMerge pull request #3357 from ton31337/fix/optional_args_for_extcommunity-lists
David Lamparter [Tue, 4 Dec 2018 14:34:59 +0000 (15:34 +0100)]
Merge pull request #3357 from ton31337/fix/optional_args_for_extcommunity-lists

bgpd: Remove extcommunity-list by name without typing full rule

5 years agolib: add thread_timer_remain_msec function
Christian Franke [Wed, 10 Oct 2018 13:06:17 +0000 (15:06 +0200)]
lib: add thread_timer_remain_msec function

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoisisd: Move dr election timer to the end of isis_dr_commence
Christian Franke [Tue, 6 Nov 2018 19:37:24 +0000 (20:37 +0100)]
isisd: Move dr election timer to the end of isis_dr_commence

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoisisd: reduce code duplication for levels
Christian Franke [Wed, 10 Oct 2018 09:16:39 +0000 (11:16 +0200)]
isisd: reduce code duplication for levels

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoisisd: Add level&circuit thread argument to circuit
Christian Franke [Mon, 5 Nov 2018 19:07:11 +0000 (20:07 +0100)]
isisd: Add level&circuit thread argument to circuit

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agozebra: dup addr detect clear cmd non-zero return
Chirag Shah [Mon, 3 Dec 2018 03:08:22 +0000 (19:08 -0800)]
zebra: dup addr detect clear cmd non-zero return

Clear dup address vni needs to return non-zero value
in case of command is not successful.

Ticket:CM-23122
Testing Done:
run clear command and check upon failure return code is non-zero.

root@TORS1:~# vtysh -c "clear evpn dup-addr vni 1000 ip 45.0.1.26"
% Requested IP's associated MAC 00:01:02:03:04:05 is still in duplicate
% state
root@TORS1:~# echo $?
1

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agoMerge pull request #3370 from pguibert6WIND/default_vrf_initialization
Renato Westphal [Mon, 3 Dec 2018 23:30:00 +0000 (21:30 -0200)]
Merge pull request #3370 from pguibert6WIND/default_vrf_initialization

Default vrf initialization

5 years agoMerge pull request #3404 from donaldsharp/nexthop_cleanup
Renato Westphal [Mon, 3 Dec 2018 20:20:27 +0000 (18:20 -0200)]
Merge pull request #3404 from donaldsharp/nexthop_cleanup

lib: Cleanup nexthop2str code to be consistent

5 years agoMerge pull request #3402 from pacovn/Coverity_1475198_1475199
Renato Westphal [Mon, 3 Dec 2018 20:17:59 +0000 (18:17 -0200)]
Merge pull request #3402 from pacovn/Coverity_1475198_1475199

pbrd sharpd: return check fixes (Coverity 1475198 1475199)

5 years agopbrd: return check (Coverity 1475199)
F. Aragon [Fri, 30 Nov 2018 17:09:05 +0000 (18:09 +0100)]
pbrd: return check (Coverity 1475199)

Signed-off-by: F. Aragon <paco@voltanet.io>
5 years agosharpd: return check (Coverity 1475198)
F. Aragon [Fri, 30 Nov 2018 17:02:09 +0000 (18:02 +0100)]
sharpd: return check (Coverity 1475198)

Signed-off-by: F. Aragon <paco@voltanet.io>
5 years agoRevert "tests/topotests: Change docker build context"
Christian Franke [Sat, 1 Dec 2018 18:40:38 +0000 (19:40 +0100)]
Revert "tests/topotests: Change docker build context"

This reverts commit 659782730bffea2d21e2fa22550db3166017061e.

Apparently, the build context is inferred from the Dockerfile path.
Yay for sensible documentation. :/

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoMerge pull request #3409 from opensourcerouting/feature/cleanup-topotest-docker-docs
Donald Sharp [Sat, 1 Dec 2018 17:46:13 +0000 (12:46 -0500)]
Merge pull request #3409 from opensourcerouting/feature/cleanup-topotest-docker-docs

Feature/cleanup topotest docker docs

5 years agoMerge pull request #3408 from opensourcerouting/revert-empty-init
Donald Sharp [Sat, 1 Dec 2018 16:55:43 +0000 (11:55 -0500)]
Merge pull request #3408 from opensourcerouting/revert-empty-init

Revert "isisd lib ospfd pbrd python: fix empty init"

5 years agotests/topotests: Set -o cache_dir=/tmp
Christian Franke [Sat, 1 Dec 2018 16:16:01 +0000 (17:16 +0100)]
tests/topotests: Set -o cache_dir=/tmp

We are mounting the topotests from the host into the container
and mark them as read-only to avoid any modifications to the host.

Pytest tries to create a .pytest_chache directory in that location
which fails because of the read-only mount.

Configure a different cache dir which is writable to resolve this.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agotests/topotests: Change docker build context
Christian Franke [Sat, 1 Dec 2018 15:54:58 +0000 (16:54 +0100)]
tests/topotests: Change docker build context

In order to support automated builds, the build context needs to be
the repository root.

So adapt our dockerfile and buildscript for this. Also, add files which
should not be included into the build context in .dockerignore to limit
the size of the build context to something sensible.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoRevert "isisd lib ospfd pbrd python: fix empty init"
David Lamparter [Sat, 1 Dec 2018 15:49:45 +0000 (16:49 +0100)]
Revert "isisd lib ospfd pbrd python: fix empty init"

This reverts commit 48944eb65e1d1ced03d46121d923d9d613a480d5.

We're using GNU C, not ISO C - and this commit triggers new (real)
warnings about {0} instead of bogus ones about {}.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agoMerge pull request #3405 from LabNConsulting/working/master/fix-vrf
Donald Sharp [Sat, 1 Dec 2018 15:45:23 +0000 (10:45 -0500)]
Merge pull request #3405 from LabNConsulting/working/master/fix-vrf

bgpd: partially revert e23b9ef6d271223d29c7f91a10d98aa6dcd252b3

5 years agotests/topotests: Update documentation
Christian Franke [Sat, 1 Dec 2018 15:33:34 +0000 (16:33 +0100)]
tests/topotests: Update documentation

The documentation needs an update to match the integrated version.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoMerge pull request #3378 from opensourcerouting/remove-config-lock
Donald Sharp [Fri, 30 Nov 2018 23:50:49 +0000 (18:50 -0500)]
Merge pull request #3378 from opensourcerouting/remove-config-lock

*: remove the configuration lock from all daemons

5 years agoMerge pull request #3386 from pguibert6WIND/bgp_fs_pbr_ignores_null_ip
Donald Sharp [Fri, 30 Nov 2018 23:50:25 +0000 (18:50 -0500)]
Merge pull request #3386 from pguibert6WIND/bgp_fs_pbr_ignores_null_ip

bgpd: bgp pbr ignores bgp fs entries with 0.0.0.0 ips written.

5 years agoMerge pull request #3390 from pguibert6WIND/bgp_flowspec_new_redirect_ip_draft
Donald Sharp [Fri, 30 Nov 2018 23:36:25 +0000 (18:36 -0500)]
Merge pull request #3390 from pguibert6WIND/bgp_flowspec_new_redirect_ip_draft

bgpd: add new draft for redirect ip for flowspec

5 years agoMerge pull request #3403 from opensourcerouting/bfd-fix-mhop-bsd
Donald Sharp [Fri, 30 Nov 2018 23:26:31 +0000 (18:26 -0500)]
Merge pull request #3403 from opensourcerouting/bfd-fix-mhop-bsd

bfdd: fix multihop on FreeBSD

5 years agolib: Cleanup nexthop2str code to be consistent
Donald Sharp [Fri, 30 Nov 2018 21:07:34 +0000 (16:07 -0500)]
lib: Cleanup nexthop2str code to be consistent

We sometimes store ifindex information in the NEXTHOP_TYPE_IPV[4|6]
so let's let us display that information as well when dumping
a nexthop.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoMerge pull request #3396 from opensourcerouting/feature/topotests-docker
Donald Sharp [Fri, 30 Nov 2018 20:39:50 +0000 (15:39 -0500)]
Merge pull request #3396 from opensourcerouting/feature/topotests-docker

feature: docker image for topotests

5 years agobgpd: partially revert e23b9ef6d271223d29c7f91a10d98aa6dcd252b3
Lou Berger [Fri, 30 Nov 2018 19:35:25 +0000 (19:35 +0000)]
bgpd: partially revert e23b9ef6d271223d29c7f91a10d98aa6dcd252b3
      previous change was to fix rnh module in Zebra for leaked routes
      this reverts that fix, so probably reintroduces the problem.

Signed-off-by: Lou Berger <lberger@labn.net>
5 years agobfdd: fix multihop on FreeBSD
Rafael Zalamena [Fri, 30 Nov 2018 17:02:23 +0000 (15:02 -0200)]
bfdd: fix multihop on FreeBSD

Some systems have a extra `struct sockaddr*` field (`_len`) which must
be filled in order for the peer lookup to work.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agobgpd: bgp pbr ignores bgp fs entries with 0.0.0.0 ips written.
Philippe Guibert [Tue, 27 Nov 2018 12:35:28 +0000 (13:35 +0100)]
bgpd: bgp pbr ignores bgp fs entries with 0.0.0.0 ips written.

when converting bgp fs entries to bgp pbr entries, the fields of the
flowspec are analysed. In the case src ip or dst ip is set to 0.0.0.0,
that field is ignored, thus preventing from injecting a rule that can
not be injected into the pbr. This can be done by avoiding mentioning
the field in the bitmask structure used to convert data to pbr entries.

PR=61620
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Acked-by: Emmanuel Vize <emmanuel.vize@6wind.com>
5 years agobgpd: add new draft for redirect ip for flowspec
Philippe Guibert [Tue, 27 Nov 2018 15:32:45 +0000 (16:32 +0100)]
bgpd: add new draft for redirect ip for flowspec

that new option will overwrite simpson draft. There is a new ecommunity
option whose type is 0x1 and subtype is 0xc. That option is defined
here on iana.org/assignments/bgp-extended-communities page:
- bgp-extended-communities.xhtml#trans-ipv4
It contains the IP address to redirect traffic to. The understanding of
the draft is the following one:
- if that community is only present, then the ip contained inside will
be chosen as nexthop.
- if that community is provided along with simpson extended community,
then only the new redirect ip draft will be used. however, both will be
displayed.
- in other cases, if there is only the simpson extended community, then
the nexthop IP of the NLRI will be chosen.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
5 years agozebra: handle neighbor delete from kernel for ipv4 link-local
Don Slice [Wed, 28 Nov 2018 15:57:01 +0000 (15:57 +0000)]
zebra: handle neighbor delete from kernel for ipv4 link-local

Problem reported that kernel neighbor entries could end up in "FAILED"
state when the neighbor entry was deleted.  This fix handles the
notification of the event from netlink messages and re-inserts the
deleted entry.

Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
5 years agoMerge pull request #3391 from pguibert6WIND/doc_ldp_prefered_connection
Russ White [Thu, 29 Nov 2018 20:27:58 +0000 (15:27 -0500)]
Merge pull request #3391 from pguibert6WIND/doc_ldp_prefered_connection

doc: add ldp information over transport connection

5 years agoMerge pull request #3394 from karamalla0406/frr3360
Russ White [Thu, 29 Nov 2018 20:26:14 +0000 (15:26 -0500)]
Merge pull request #3394 from karamalla0406/frr3360

bgpd: The default IP route not advertised with configured RD

5 years agoMerge pull request #3383 from qlyoung/fix-static-routes-again
Russ White [Thu, 29 Nov 2018 20:24:03 +0000 (15:24 -0500)]
Merge pull request #3383 from qlyoung/fix-static-routes-again

staticd: fix null0 routes (again)

5 years agoMerge pull request #3342 from opensourcerouting/nb-operational-data
Russ White [Thu, 29 Nov 2018 20:19:38 +0000 (15:19 -0500)]
Merge pull request #3342 from opensourcerouting/nb-operational-data

Northbound: improved support for YANG-modeled operational data

5 years agoMerge pull request #3397 from mjstapp/fix_stream_macros
Donald Sharp [Thu, 29 Nov 2018 18:10:02 +0000 (13:10 -0500)]
Merge pull request #3397 from mjstapp/fix_stream_macros

libs,bgpd: remove deprecated stream lib macros

5 years agolib,bgpd: remove deprecated stream lib macros
Mark Stapp [Thu, 29 Nov 2018 16:13:15 +0000 (11:13 -0500)]
lib,bgpd: remove deprecated stream lib macros

A couple of deprecated lib/stream macros have aged out; remove
them, and replace the one remaining use.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agotopotests: Only set -t when input is a terminal
Christian Franke [Thu, 29 Nov 2018 15:05:44 +0000 (16:05 +0100)]
topotests: Only set -t when input is a terminal

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agotopotests: Adapt docker changes for integrated tests
Christian Franke [Thu, 29 Nov 2018 14:22:23 +0000 (15:22 +0100)]
topotests: Adapt docker changes for integrated tests

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agodocker/frr-topotests: Fix missing $ in if check
Christian Franke [Tue, 20 Nov 2018 15:32:09 +0000 (16:32 +0100)]
docker/frr-topotests: Fix missing $ in if check

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agodocker/compile_frr: Don't build with disable shared
Christian Franke [Fri, 9 Nov 2018 14:42:10 +0000 (15:42 +0100)]
docker/compile_frr: Don't build with disable shared

With libyang, we need to build the frr_user_types.so libyang
plugin for FRR to work.

This means we cannot build with disable shared.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agodocker: Improve README and frr-topotests usage
Christian Franke [Mon, 5 Nov 2018 16:44:18 +0000 (17:44 +0100)]
docker: Improve README and frr-topotests usage

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoDockerfile: Install libyang
Christian Franke [Mon, 5 Nov 2018 16:23:37 +0000 (17:23 +0100)]
Dockerfile: Install libyang

Recent versions of FRR require libyang to build. So install it from
the FRR CI servers.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoDocker: Fail if compilation is unsucessful
Christian Franke [Thu, 1 Nov 2018 17:14:23 +0000 (18:14 +0100)]
Docker: Fail if compilation is unsucessful

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoDocker: Document additional environment variables
Christian Franke [Tue, 30 Oct 2018 17:26:38 +0000 (18:26 +0100)]
Docker: Document additional environment variables

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoDocker: Use pytest as default command
Christian Franke [Thu, 18 Oct 2018 11:48:55 +0000 (13:48 +0200)]
Docker: Use pytest as default command

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoDocker: move openvswitch setup to separate script
Christian Franke [Thu, 18 Oct 2018 11:04:01 +0000 (13:04 +0200)]
Docker: move openvswitch setup to separate script

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoDocker: Allow executing topotests while in subdir of FRR repo
Christian Franke [Thu, 18 Oct 2018 10:27:37 +0000 (12:27 +0200)]
Docker: Allow executing topotests while in subdir of FRR repo

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoDocker: really cleanup when TOPOTEST_CLEAN is specified
Christian Franke [Thu, 18 Oct 2018 10:27:16 +0000 (12:27 +0200)]
Docker: really cleanup when TOPOTEST_CLEAN is specified

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoDocker: Update buildscript not to delete old images
Christian Franke [Thu, 18 Oct 2018 10:07:24 +0000 (12:07 +0200)]
Docker: Update buildscript not to delete old images

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoDocker: Call the run script frr-topotests.sh
Christian Franke [Thu, 18 Oct 2018 09:56:20 +0000 (11:56 +0200)]
Docker: Call the run script frr-topotests.sh

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoDockerfile: Use iputils-ping instead of inetutils-ping, install strace
Christian Franke [Thu, 18 Oct 2018 09:32:00 +0000 (11:32 +0200)]
Dockerfile: Use iputils-ping instead of inetutils-ping, install strace

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoDocker: Update buildscripts to be more efficient
Christian Franke [Thu, 18 Oct 2018 09:31:20 +0000 (11:31 +0200)]
Docker: Update buildscripts to be more efficient

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agodocker: Install topotests into image
Christian Franke [Wed, 17 Oct 2018 18:31:52 +0000 (20:31 +0200)]
docker: Install topotests into image

Also: Change directory layout so we can do an indempotent sync from host
later.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agodocker: reindent shell scripts
Christian Franke [Wed, 17 Oct 2018 17:56:26 +0000 (19:56 +0200)]
docker: reindent shell scripts

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agodocker: Run container with its own network namespace
Christian Franke [Wed, 17 Oct 2018 17:35:15 +0000 (19:35 +0200)]
docker: Run container with its own network namespace

For normal operation, there is no need for the container to run
in the host network environment or to have access to the users
X Session.

To accomodate usecases which need this, there is now a `TOPOTEST_OPTIONS`
environment variable to provide additional options to the docker run
command.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoDockerfile: Move to project root and combine RUNs
Christian Franke [Wed, 17 Oct 2018 16:27:35 +0000 (18:27 +0200)]
Dockerfile: Move to project root and combine RUNs

According to https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run
`apt-get update` should always be combined with `apt-get install` in
the same `RUN` statement, to avoid installation of outdated packages.

Also, combine some more `RUN`s together as to avoid fewer layers.

Finally, remove some comments which are superflous. Comments shouldn't
describe what is done, especially when it's obvious. They should
explain why something is done.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agodocker: add support for running inside container
Rafael Zalamena [Mon, 16 Apr 2018 20:53:25 +0000 (17:53 -0300)]
docker: add support for running inside container

Based on the original @cfra idea of running topotest on docker.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agoMerge pull request #3384 from donaldsharp/topotests
Christian Franke [Thu, 29 Nov 2018 14:29:08 +0000 (15:29 +0100)]
Merge pull request #3384 from donaldsharp/topotests

Topotests

5 years agobgpd: The default IP route not advertised with configured RD
Kishore Aramalla [Thu, 29 Nov 2018 03:18:08 +0000 (19:18 -0800)]
bgpd: The default IP route not advertised with configured RD

When "default-originate ipv4" is configured, a type-5 route is installed in
the local node and advertised to the peer with auto-rd.

When the above was followed by configuring an RD in IP VRF, Type-5 are
generated for only the non-default routes.

Fixed this issue by withdrawing the default route with auto-rd and advertising
 the route with confiured RD.

Signed-off-by: Kishore Aramalla karamalla@vmware.com
5 years agoMerge pull request #3393 from donaldsharp/rnh_resend
Renato Westphal [Wed, 28 Nov 2018 22:30:15 +0000 (20:30 -0200)]
Merge pull request #3393 from donaldsharp/rnh_resend

zebra: Always resend nexthop information when registered

5 years agoMerge pull request #3389 from pguibert6WIND/ip_prefixes_do_not_look_integer
Renato Westphal [Wed, 28 Nov 2018 17:49:50 +0000 (15:49 -0200)]
Merge pull request #3389 from pguibert6WIND/ip_prefixes_do_not_look_integer

lib: do not convert ip prefixes without '.' or ':'

5 years agoMerge pull request #3377 from opensourcerouting/northbound-improvements
Donald Sharp [Wed, 28 Nov 2018 16:52:47 +0000 (11:52 -0500)]
Merge pull request #3377 from opensourcerouting/northbound-improvements

northbound: API improvements + minor fixes

5 years agozebra: Always resend nexthop information when registered
Donald Sharp [Wed, 28 Nov 2018 16:43:26 +0000 (11:43 -0500)]
zebra: Always resend nexthop information when registered

Always resend the nexthop information when we get a registration
event.  Multiple daemons expect this information.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com.
5 years agolib: do not convert ip prefixes without '.'
Philippe Guibert [Wed, 28 Nov 2018 11:15:09 +0000 (12:15 +0100)]
lib: do not convert ip prefixes without '.'

There are cases where the passed parameter for a vty command is either
an interface name or an ip address. Because the interface name can be a
number, and because the user may want to use a number to define an IP (
for instance 'ping 0' is valid from shell purpose), there is a choice
that needs to be done at frr level. either from the application point of
view, the interface name will be priorized, or each number will be
considered as an ip address. In that commit, the inet_aton procedure is
replaced with the inet_pton procedure that ignores ips with just a
number.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
5 years agodoc: add ldp information over transport connection
Philippe Guibert [Wed, 28 Nov 2018 13:26:15 +0000 (14:26 +0100)]
doc: add ldp information over transport connection

transport connection prefers ipv6, unless ipv4 is explicitly configured
on ldp.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
5 years agotopotests: Add ospf-sr-topo1 back in
Donald Sharp [Tue, 27 Nov 2018 19:12:40 +0000 (14:12 -0500)]
topotests: Add ospf-sr-topo1 back in

Due to weird merge issues ospf-sr-topo1 was not pulled in.
This gets this back into the tree.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com.
5 years agoAdd a tiny breadcrumb to hopefully help end user
Donald Sharp [Mon, 26 Nov 2018 15:56:56 +0000 (10:56 -0500)]
Add a tiny breadcrumb to hopefully help end user

Add a breadcrumb for people testing to hopefully allow
them to figure out what is going wrong when they
are testing different versions of FRR using
topotests and staticd is not running because
this version of staticd needs to be cleaned up

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agobgp-ecmp-topo1: fix some pylint warnings
Rafael Zalamena [Tue, 6 Nov 2018 15:48:46 +0000 (13:48 -0200)]
bgp-ecmp-topo1: fix some pylint warnings

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agobgp-ecmp-topo1: fix vrf default change
Rafael Zalamena [Tue, 6 Nov 2018 15:45:55 +0000 (13:45 -0200)]
bgp-ecmp-topo1: fix vrf default change

Python's `string' method 'replace' doesn't actually modify the string,
instead it returns a new string with the modified content.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agobgp-ecmp-topo1: change default vrf name
Philippe Guibert [Tue, 23 Oct 2018 16:22:50 +0000 (18:22 +0200)]
bgp-ecmp-topo1: change default vrf name

By default, default vrf name is default, whereas BGP default vrf was
hardcoded to Default. Because this will be fixes, do not care about the
vrf name field and apply a regexp to move Default to default.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
5 years agoospf6-topo1: Don't compare link-local routes
Christian Franke [Thu, 18 Oct 2018 12:16:16 +0000 (14:16 +0200)]
ospf6-topo1: Don't compare link-local routes

Topotests would fail with errors like these:

    AssertionError: Linux Kernel IPv6 Routing Table verification failed for router r1:
      --- actual OSPFv3 IPv6 routing table
      +++ expected OSPFv3 IPv6 routing table
      @@ -8,6 +8,6 @@
       fc00:4:4:4::/64 via fe80::__(r3-sw5)__ dev r1-sw5 proto XXXX metric 20 pref medium
       fc00:a:a:a::/64 dev r1-sw5 proto XXXX metric 256 pref medium
       fc00:b:b:b::/64 via fe80::__(r3-sw5)__ dev r1-sw5 proto XXXX metric 20 pref medium
      -fe80::/64 dev lo proto XXXX metric 256 pref medium
       fe80::/64 dev r1-stubnet proto XXXX metric 256 pref medium
      -fe80::/64 dev r1-sw5 proto XXXX metric 256 pref medium
      +fe80::/64 dev r1-sw5 proto XXXX metric 256 pref medium
      +unreachable fe80::/64 dev lo proto XXXX metric 256 error -101 pref medium

Resolve this by not comparing link-local routes.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agolib, lm-proxy-topo1: label manager proxy test
paco [Mon, 4 Jun 2018 14:06:37 +0000 (16:06 +0200)]
lib, lm-proxy-topo1: label manager proxy test

Label proxy manager test covering both LDP and BGP label requests.

lib/topotest.py:restartRouter() function has been fixed in order to
allow propagating options to deamons other than zebra.

Signed-off-by: F. Aragon <paco@voltanet.io>
5 years agopick ospf6 router-id syntax based on version
Martin Winter [Fri, 7 Sep 2018 00:15:19 +0000 (17:15 -0700)]
pick ospf6 router-id syntax based on version

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
5 years agolib: checkRouterVersion to determine version
Martin Winter [Thu, 6 Sep 2018 22:52:43 +0000 (15:52 -0700)]
lib: checkRouterVersion to determine version

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>