Hello!
Do you mean route withdrawals for routes received from that removed protocol? Send to other peers? This should not be an issue - when a protocol is removed or disabled, all its routes are removed and withdrawals should be sent to other protocols.
Yes, I mean withdrawals for routes received by the router from the peer running bird. The peer is directly connected with the router with a bgp session.
I am removing some static protocols and doing "birdc configure soft" but no route withdrawals are being sent for the removed prefixes. Even if I try to run "birdc reload out all", the withdrawals are still not sent since bird forgot about the prefixes already when I did the "configure soft":
bird[28196]: Removing protocol e_010_cidrs bird[28196]: Reconfigured
If I disable the protocol with "birdc disable e_010_cidrs" without removing it from the config files, I see the esame "Remoing protocol e_010_cidrs" message in the logs and the withdrawals are sent as expected, but I expect bird to also send withdrawals when a protocol is removed from the configs without being explicitly disabled.
Do you also think this is a bug?
I don't know whether I correctly understand what you are trying to do. Anyway, please look at the attached script (for Linux). It creates two virtual routers CA and CB, a BGP link between them and sends a route defined in protocol static {} on CA. Then it reconfigures CA to remove the static protocol and it correctly shows that the route is withdrawn, at least for me at v1.6.4. Note that the script creates temporarily two network namespaces (ca and cb) and leaves behind two configs and two log files. Could you please try the attached script or try to create some reproducer for me to see the bug clearly? Thanks! Maria