From: Maria Matejka Date: Thu, 18 Dec 2025 11:39:42 +0000 (+0100) Subject: IGP metric: Split out local_metric again X-Git-Tag: v3.2.0~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fb6987a671549dff303470302404a77a7351044e;p=thirdparty%2Fbird.git IGP metric: Split out local_metric again When removing BIRD 2 RTA, I joined rta->igp_metric with ea_gen_igp_metric, while these two attributes actually have different semantics. Reintroducing the distinction but with the first one named local_metric. This join caused quite some confusion as the igp_metric attribute set in import filters gets rewritten by recursive nexthop resolution in BIRD 3 up to 3.1.x. Now the igp_metric stays intact and the local_metric is the original rta->igp_metric which always meant "cost of the local part of the whole route". The local_metric attribute also represents the "interior cost" as used in RFC 4271. When using BGP as an underlay / IGP, one should explicitly set the igp_metric in the import filter, while the local_metric will be updated by next hop resolver independently. Fixes: #154 --- diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e91047452..4a1b2708e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1467,6 +1467,7 @@ build-netlab: - cd $TOOLS_DIR - sudo git clean -fx - git pull --ff-only + - git checkout -f origin/data-v3.2 - "mv $DIR/build-netlab/* netlab/common/" - ln -s $STAYRTR_BINARY netlab/common/stayrtr - cd netlab @@ -1480,6 +1481,7 @@ build-netlab: - "mkdir $DIR/netlab-failure" - git status --porcelain > $DIR/netlab-failure.log - for f in $(git status --porcelain | sed -rn 's#^.[^DRT] netlab/##p'); do mkdir -p $DIR/netlab-failure/$(dirname $f); sudo chmod a+rw $f; sudo mv $f $DIR/netlab-failure/$(dirname $f); done + - git checkout -f master artifacts: when: on_failure untracked: true diff --git a/doc/bird.sgml b/doc/bird.sgml index b0ac094ae..0023e2dd8 100644 --- a/doc/bird.sgml +++ b/doc/bird.sgml @@ -2277,8 +2277,21 @@ Common route attributes are: