<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" dir="ltr">
<p style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, Helvetica, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 12pt;">
Hello everyone!</p>
<p style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, Helvetica, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 12pt;">
<br>
</p>
<div style="margin-top: 0px; margin-bottom: 0px;"><font size="3"><font color="#000000" face="Calibri, Helvetica, sans-serif, serif, EmojiFont" size="3"><font color="#202122">Currently I'm writing my bachelor thesis that also contains an implementation of an
 extension in BIRD and BGP. One building block is deleting a single route in BGP without triggering an Update message (with route withdraws) and the route must be deleted </font>programmatically</font><font face="Calibri, Helvetica, sans-serif, serif, EmojiFont" size="3"><font color="#202122">,
 so without receiving an Update message. The problem is, that I see no support for that. I can't call rte_update2 with
<i>new == NULL</i>, because this would delete all routes that lead to the specified network. But I want to delete only one specific route! The problem description and what I have done so far:</font></font></font></div>
<div style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 12pt; margin: 0px 0px 0px 40px; padding: 0px; border-style: none;">
<div></div>
<div style="margin-top: 0px; margin-bottom: 0px;"> </div>
</div>
<p style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, Helvetica, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 12pt;">
<font style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont;">Delete a specific route without triggering a BGP Update Message:</font><span style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont;"></span></p>
<div style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 12pt; margin: 0px 0px 0px 40px; padding: 0px; border-style: none;">
<div><font size="3">Since BGP has no use case where only a specific route should be deleted, this problem is difficult (at least for me). </font>Normally we receive a Route Withdraw Message and can call rte_update2() with the not reachable network and when<i> rte
 * new == NULL</i> all routes that lead to the target network are deleted. But in my use case I only want to remove one specific route. At the moment I add specific <i>pflags</i> to the <i>rte</i> I want to delete and in rte_update2 I check if <i>new->pflags </i>has
 the specific value. If so, I jump to <i>drop</i> in rte_update2, where the route is deleted. The route is deleted but no recalculation is done, therefore I set <i>new</i> to the best route of the reachable network (<i>net->routes</i>) and jump to recalc in rte<i>_update2</i>().
 I add my specific <i>pflags</i> and when <i>bgp_rt_notify</i> in attrs.c is called I return. Unbelievable but this works -- almost! My problem is that the route is deleted in the BIRD BGP Routingtable, so when I call <i>birdc show </i><i>route all </i>it shows
 me all routes without the deleted one (so far so good), BUT the kernel routing table is not changed. And this is the point where I have to change my approach.</div>
<div><br>
</div>
</div>
<p style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, Helvetica, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 12pt;">
<font style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont;">To summarize my problem in one sentence: How can I delete a single route in BIRD without declaring a network as unreachable and calling rte_update2() with new == NULL, because this approach
 would lead to the deletion of all routes that lead to a network.</font><span style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont;"></span></p>
<div style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 12pt;">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 12pt;">
I hope someone can help me and maybe explain where I can look, what functions could be useful and what things I have to consider.</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 12pt;">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 12pt;">
Many thanks in advance!</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 12pt;">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 12pt;">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 12pt;">
Johannes Ludwig</div>
</div>
</body>
</html>