/* BGP-EVPN VRF ID. Defaults to default VRF (if any) */
struct bgp* bgp_evpn;
+ /* How big should we set the socket buffer size */
+ uint32_t socket_buffer;
+
bool terminating; /* global flag that sigint terminate seen */
QOBJ_FIELDS
};
#define RMAP_OUT 1
#define RMAP_MAX 2
+#define BGP_DEFAULT_TTL 1
+
#include "filter.h"
/* BGP filter structure. */
int rcvd_attr_printed;
/* Prefix count. */
- unsigned long pcount[AFI_MAX][SAFI_MAX];
+ uint32_t pcount[AFI_MAX][SAFI_MAX];
/* Max prefix count. */
- unsigned long pmax[AFI_MAX][SAFI_MAX];
+ uint32_t pmax[AFI_MAX][SAFI_MAX];
uint8_t pmax_threshold[AFI_MAX][SAFI_MAX];
uint16_t pmax_restart[AFI_MAX][SAFI_MAX];
#define MAXIMUM_PREFIX_THRESHOLD_DEFAULT 75
#define PEER_DOWN_BFD_DOWN 24 /* BFD down */
#define PEER_DOWN_IF_DOWN 25 /* Interface down */
#define PEER_DOWN_NBR_ADDR_DEL 26 /* Peer address lost */
+#define PEER_DOWN_WAITING_NHT 27 /* Waiting for NHT to resolve */
+#define PEER_DOWN_NBR_ADDR 28 /* Waiting for peer IPv6 IP Addr */
+#define PEER_DOWN_VRF_UNINIT 29 /* Associated VRF is not init yet */
+#define PEER_DOWN_NOAFI_ACTIVATED 30 /* No AFI/SAFI activated for peer */
size_t last_reset_cause_size;
uint8_t last_reset_cause[BGP_MAX_PACKET_SIZE];
/* The kind of route-map Flags.*/
- uint8_t rmap_type;
+ uint16_t rmap_type;
#define PEER_RMAP_TYPE_IN (1 << 0) /* neighbor route-map in */
#define PEER_RMAP_TYPE_OUT (1 << 1) /* neighbor route-map out */
#define PEER_RMAP_TYPE_NETWORK (1 << 2) /* network route-map */
#define PEER_RMAP_TYPE_NOSET (1 << 5) /* not allow to set commands */
#define PEER_RMAP_TYPE_IMPORT (1 << 6) /* neighbor route-map import */
#define PEER_RMAP_TYPE_EXPORT (1 << 7) /* neighbor route-map export */
+#define PEER_RMAP_TYPE_AGGREGATE (1 << 8) /* aggregate-address route-map */
/* peer specific BFD information */
struct bfd_info *bfd_info;
char *hostname;
char *domainname;
+ /* Sender side AS path loop detection. */
+ bool as_path_loop_detection;
+
QOBJ_FIELDS
};
DECLARE_QOBJ_TYPE(peer)
#define BGP_VTY_PORT 2605
#define BGP_DEFAULT_CONFIG "bgpd.conf"
-/* Check AS path loop when we send NLRI. */
-/* #define BGP_SEND_ASPATH_CHECK */
-
/* BGP Dynamic Neighbors feature */
#define BGP_DYNAMIC_NEIGHBORS_LIMIT_DEFAULT 100
#define BGP_DYNAMIC_NEIGHBORS_LIMIT_MIN 1
extern int bgp_config_write(struct vty *);
-extern void bgp_master_init(struct thread_master *master);
+extern void bgp_master_init(struct thread_master *master,
+ const int buffer_size);
extern void bgp_init(unsigned short instance);
extern void bgp_pthreads_run(void);
extern struct peer *peer_lookup_in_view(struct vty *vty, struct bgp *bgp,
const char *ip_str, bool use_json);
+/* Hooks */
+DECLARE_HOOK(peer_status_changed, (struct peer * peer), (peer))
+
#endif /* _QUAGGA_BGPD_H */