summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_evpn.c1
-rw-r--r--bgpd/bgp_main.c3
-rw-r--r--bgpd/bgpd.c1
-rw-r--r--bgpd/rfp-example/librfp/rfp_example.c4
-rw-r--r--staticd/static_vty.c8
-rw-r--r--tests/topotests/Dockerfile1
-rwxr-xr-xtests/topotests/docker/frr-topotests.sh3
-rwxr-xr-xtests/topotests/docker/inner/entrypoint.sh3
8 files changed, 14 insertions, 10 deletions
diff --git a/bgpd/bgp_evpn.c b/bgpd/bgp_evpn.c
index 7be7937786..ac5880938f 100644
--- a/bgpd/bgp_evpn.c
+++ b/bgpd/bgp_evpn.c
@@ -2498,6 +2498,7 @@ static int install_evpn_route_entry_in_vrf(struct bgp *bgp_vrf,
&attr_new->mp_nexthop_global)))
SET_FLAG(pi->flags, BGP_PATH_IGP_CHANGED);
+ bgp_path_info_set_flag(rn, pi, BGP_PATH_ATTR_CHANGED);
/* Unintern existing, set to new. */
bgp_attr_unintern(&pi->attr);
pi->attr = attr_new;
diff --git a/bgpd/bgp_main.c b/bgpd/bgp_main.c
index f8ff4f2f07..47e7c1686f 100644
--- a/bgpd/bgp_main.c
+++ b/bgpd/bgp_main.c
@@ -235,6 +235,9 @@ static __attribute__((__noreturn__)) void bgp_exit(int status)
bf_free(bm->rd_idspace);
list_delete(&bm->bgp);
+
+ bgp_lp_finish();
+
memset(bm, 0, sizeof(*bm));
frr_fini();
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index 94cb285a03..d6be3228fe 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -7963,5 +7963,4 @@ void bgp_terminate(void)
if (bm->t_rmap_update)
BGP_TIMER_OFF(bm->t_rmap_update);
- bgp_lp_finish();
}
diff --git a/bgpd/rfp-example/librfp/rfp_example.c b/bgpd/rfp-example/librfp/rfp_example.c
index af3092232c..e8f670cf12 100644
--- a/bgpd/rfp-example/librfp/rfp_example.c
+++ b/bgpd/rfp-example/librfp/rfp_example.c
@@ -255,8 +255,8 @@ static int rfp_cfg_write_cb(struct vty *vty, void *rfp_start_val)
rfi->rfapi_config.holddown_factor);
write++;
}
- if (rfi->rfapi_config.download_type != RFAPI_RFP_DOWNLOAD_FULL) {
- vty_out(vty, " rfp full-table-download off\n");
+ if (rfi->rfapi_config.download_type == RFAPI_RFP_DOWNLOAD_FULL) {
+ vty_out(vty, " rfp full-table-download on\n");
write++;
}
return write;
diff --git a/staticd/static_vty.c b/staticd/static_vty.c
index 59d4ae924b..ae0026cc97 100644
--- a/staticd/static_vty.c
+++ b/staticd/static_vty.c
@@ -1211,7 +1211,7 @@ DEFPY(ipv6_route_address_interface,
{
struct static_vrf *svrf;
struct static_vrf *nh_svrf;
- const char *flag;
+ const char *flag = NULL;
if (table_str && vrf && !vrf_is_mapped_on_netns(vrf_lookup_by_name(vrf))) {
vty_out(vty,
@@ -1280,7 +1280,7 @@ DEFPY(ipv6_route_address_interface_vrf,
VTY_DECLVAR_CONTEXT(vrf, vrf);
struct static_vrf *svrf = vrf->info;
struct static_vrf *nh_svrf;
- const char *flag;
+ const char *flag = NULL;
if (table_str && !vrf_is_mapped_on_netns(vrf)) {
vty_out(vty,
@@ -1341,7 +1341,7 @@ DEFPY(ipv6_route,
{
struct static_vrf *svrf;
struct static_vrf *nh_svrf;
- const char *flag;
+ const char *flag = NULL;
if (table_str && vrf && !vrf_is_mapped_on_netns(vrf_lookup_by_name(vrf))) {
vty_out(vty,
@@ -1407,7 +1407,7 @@ DEFPY(ipv6_route_vrf,
VTY_DECLVAR_CONTEXT(vrf, vrf);
struct static_vrf *svrf = vrf->info;
struct static_vrf *nh_svrf;
- const char *flag;
+ const char *flag = NULL;
if (table_str && !vrf_is_mapped_on_netns(vrf)) {
vty_out(vty,
diff --git a/tests/topotests/Dockerfile b/tests/topotests/Dockerfile
index 72a876ed83..ea6fa4b9e0 100644
--- a/tests/topotests/Dockerfile
+++ b/tests/topotests/Dockerfile
@@ -72,7 +72,6 @@ RUN echo "" >> /etc/security/limits.conf; \
# Copy run scripts to facilitate users wanting to run the tests
COPY docker/inner /opt/topotests
-WORKDIR /root/topotests
ENV PATH "$PATH:/opt/topotests"
RUN echo "cat /opt/topotests/motd.txt" >> /root/.profile && \
diff --git a/tests/topotests/docker/frr-topotests.sh b/tests/topotests/docker/frr-topotests.sh
index 673354f5da..8e93ed31ff 100755
--- a/tests/topotests/docker/frr-topotests.sh
+++ b/tests/topotests/docker/frr-topotests.sh
@@ -80,6 +80,8 @@ fi
# them from the host however, they can be used just fine.
#
+export PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin"
+
for module in mpls-router mpls-iptunnel; do
if modprobe -n $module 2> /dev/null; then
:
@@ -133,7 +135,6 @@ fi
set -- --rm -i \
-v "$TOPOTEST_LOGS:/tmp" \
-v "$TOPOTEST_FRR:/root/host-frr:ro" \
- -v "$TOPOTEST_FRR/tests/topotests:/root/topotests:ro" \
-v "$TOPOTEST_BUILDCACHE:/root/persist" \
-e "TOPOTEST_CLEAN=$TOPOTEST_CLEAN" \
-e "TOPOTEST_VERBOSE=$TOPOTEST_VERBOSE" \
diff --git a/tests/topotests/docker/inner/entrypoint.sh b/tests/topotests/docker/inner/entrypoint.sh
index 3050ec86d0..451d0a27d9 100755
--- a/tests/topotests/docker/inner/entrypoint.sh
+++ b/tests/topotests/docker/inner/entrypoint.sh
@@ -34,6 +34,8 @@ set -e
"${CDIR}/compile_frr.sh"
"${CDIR}/openvswitch.sh"
+cd "${FRR_BUILD_DIR}/tests/topotests"
+
log_info "Setting permissions on /tmp so we can generate logs"
chmod 1777 /tmp
@@ -42,7 +44,6 @@ if [ $# -eq 0 ] || ([[ "$1" != /* ]] && [[ "$1" != ./* ]]); then
export TOPOTESTS_CHECK_STDERR=Yes
set -- pytest \
--junitxml /tmp/topotests.xml \
- -o cache_dir=/tmp \
"$@"
fi