The v2 of the patch changes the following: - The peer route type now contains information on the interface on which the peer was discovered. - The change above allowed to remove the need to configure the "from" option on the BGP peers channel, so it was removed. - pxlen of net_add_peer has been set to 0, since the field is unused. - RAdv neighbor discovery option has been renamed to router discovery. - The peers channel in BGP has been made a regular channel (instead of a bgp_channel). - The new BGP channel persist option has been made a protocol-wide option and it now also dictates the behavior of spawed dynamic BGP sessions. - Documentation on changes on both RAdv and BGP has been added. - Added testcase for the bird-tools testing suite. Thank you Ondrej for the review, your insights (especially the advice on changing the channel type) allowed me to refactor how the implementation works a bit and make it tidier (I think). My response was delayed by a few day so I could also provide some added documentation work and finish implementing automated testing for the bird-tools project. Let me know if you have any other suggestion on changes needed. Best Regards, Matteo Matteo Perin (4): Nest: Add net_peer route type to track discovered peers RAdv: Add neighbor discovery based on incoming RAs to RAdv proto BGP: Move postponed socket reloop logic from start to start_locked to achieve locking requirements BGP: Add peers channel and sessions spawn on export to achieve automatic peering doc/bird.sgml | 65 +++++++++++++ lib/net.c | 16 ++++ lib/net.h | 32 ++++++- nest/config.Y | 3 +- nest/proto.c | 2 +- nest/protocol.h | 3 + proto/bgp/attrs.c | 51 ++++++++++ proto/bgp/bgp.c | 216 +++++++++++++++++++++++++++++++++++++++---- proto/bgp/bgp.h | 27 +++++- proto/bgp/config.Y | 12 ++- proto/bgp/packets.c | 11 +++ proto/radv/config.Y | 3 +- proto/radv/packets.c | 41 +++++++- proto/radv/radv.c | 165 ++++++++++++++++++++++++++++++++- proto/radv/radv.h | 4 + 15 files changed, 622 insertions(+), 29 deletions(-) -- 2.43.0