<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <meta name="generator" content="pandoc" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
  <style>
html {
  line-height: 1.2;
  font-family: serif;
  font-size: 0.9em;
  color: black; 
  background-color: white;
}
body {
  margin: 0;
  margin-right: auto;
  max-width: 36em;
  padding: 1em;
  hyphens: auto;
  overflow-wrap: break-word;
  text-rendering: optimizeLegibility;
  font-kerning: normal;
}
@media print {
  body {
    background-color: transparent;
    color: black;
    font-size: 11pt;
  }
  p, h2, h3 {
    orphans: 3;
    widows: 3;
  }
  h2, h3, h4 {
    page-break-after: avoid;
  }
}
p {
  margin: 1em 0;
}
a {
  color: black;
}
a:visited {
  color: black;
}
img {
  max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
  margin-top: 1.4em;
}
h5, h6 {
  font-size: 1em;
  font-style: italic;
}
h6 {
  font-weight: normal;
}
ol, ul {
  padding-left: 1.7em;
  margin-top: 1em;
}
li > ol, li > ul {
  margin-top: 0;
}
blockquote {
  margin: 0.5em;
  padding-left: 0.5em;
  border-left: 2px solid #e6e6e6;
  color: #444;
}
code {
  font-family: 'Lucida Console', monospace;
  font-size: 95%;
  margin: 0;
}
pre {
  margin: 1em 0;
  overflow: auto;
}
pre code {
  padding: 0;
  overflow: visible;
  overflow-wrap: normal;
}
.sourceCode {
 background-color: transparent;
 overflow: visible;
}
hr {
  background-color: black;
  border: none;
  height: 1px;
  margin: 1em 0;
}
table {
  margin: 1em 0;
  border-collapse: collapse;
  width: 100%;
  overflow-x: auto;
  display: block;
  font-variant-numeric: lining-nums tabular-nums;
}
table caption {
  margin-bottom: 0.75em;
}
tbody {
  margin-top: 0.5em;
  border-top: 1px solid black;
  border-bottom: 1px solid black;
}
th {
  border-top: 1px solid black;
  padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
  padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
  margin-bottom: 4em;
  text-align: center;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
q { quotes: "„" "”" "»" "«"; }
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
  </style>
</head>
<body>
<p>Hello,</p>
<p>On Thu, Oct 10, 2024 at 07:30:10PM +0300, Mikhail Mayorov wrote:</p>
<blockquote>
<p>I was try configure dynamic peers . But I can’t known context of
which the filter is executed. I need to identify the neighbor with whom
I have a session.</p>
<p>To do this, I was forced to abandon dynamic neighbors and create a
separate config for each neighbor. This is certainly not difficult, but
very inconvenient. Moreover, the filtering process is also very
important for marking routes by different communities. I didn’t find any
mechanisms to do this with dynamic neighbors. Probably this option is
not very popular with the community and it is rarely used. Or maybe I’m
just being stupid. :)</p>
</blockquote>
<p>Neither of the proposed reasons. It’s quite hard to include this
feature in the filters properly to not make BIRD slower for the largest
IXPs like DE-CIX, or ix.br just by implementing that.</p>
<p>Also, it’s easy to include <em>something</em> to resolve among
different protocols, and there is known demand for such a feature. Yet,
implementing it the easy way now induces painful years of maintaining
the dirty hack afterwards because people start using it. And I love my
future self enough to not do this intentionally. It’s enough with all
the compromise solutions we have to come up with in the regular
development.</p>
<p>Considering all of that, there are basically two major options how to
get this feature into BIRD:</p>
<ul>
<li>put a substantial amount of your time into developing it yourself
the proper way, while consulting it on the way with the core team</li>
<li>getting enough companies to pay for BIRD Support to let the team
grow and as a consequence do this faster</li>
</ul>
<p>Last but not least, we may implement this anyway quite soon, as the
MRT+BMP in BIRD 3 (not yet merged into thread-next) now passes basic
tests and there is some code review in progress. This, and several bugs
reported earlier (thank you all for testing!) is what blocks us from
releasing BIRD 3, and nothing in the queue looks like imposing another
year of work on us.</p>
<p>As soon as BIRD 3 gets released as stable, a substantial part of the
team is probably going to switch attention to new features, also made
easier by the refactored and reconstructed BIRD’s Nest. And you may be
completely sure that we are very very tired now from doing all of the
invisible stuff on optimizations and performance improvements, so we’ll
happily pick any opportunity to do something nice, new and shiny.</p>
<p>Happy routing!<br />
Maria</p>
<p>–<br />
Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.</p>
</body>
</html>