[PATCH, RFC 2/3] BGP: Correctly handle changes to c->{check_link, bfd} when reconfiguring.
Lennert Buytenhek
buytenh at wantstofly.org
Thu Mar 9 15:30:24 CET 2017
Since the area between 'struct proto_config c' and 'char *password'
in 'struct bgp_config' is compared using memcmp() in bgp_reconfigure(),
move ->check_link and ->bfd so that they are part of that area. Also
add a note to 'struct bgp_config' to avoid this tripping up people in
the future.
---
proto/bgp/bgp.h | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/proto/bgp/bgp.h b/proto/bgp/bgp.h
index 0b8cb46..0b69333 100644
--- a/proto/bgp/bgp.h
+++ b/proto/bgp/bgp.h
@@ -19,6 +19,8 @@ struct eattr;
struct bgp_config {
struct proto_config c;
+
+ /* start of config vars compared using memcmp() in bgp_reconfigure() */
u32 local_as, remote_as, remote_as2;
ip_addr remote_ip;
ip_addr source_addr; /* Source address to use */
@@ -62,11 +64,12 @@ struct bgp_config {
unsigned error_delay_time_min; /* Time to wait after an error is detected */
unsigned error_delay_time_max;
unsigned disable_after_error; /* Disable the protocol when error is detected */
+ int check_link; /* Use iface link state for liveness detection */
+ int bfd; /* Use BFD for liveness detection */
+ /* end of config vars compared using memcmp() in bgp_reconfigure() */
char *password; /* Password used for MD5 authentication */
struct rtable_config *igp_table; /* Table used for recursive next hop lookups */
- int check_link; /* Use iface link state for liveness detection */
- int bfd; /* Use BFD for liveness detection */
};
#define MLL_SELF 1
--
2.9.3
More information about the Bird-users
mailing list