]> git.proxmox.com Git - mirror_frr.git/blobdiff - bgpd/bgp_open.h
bgpd: Implement rfc9072
[mirror_frr.git] / bgpd / bgp_open.h
index 0d616926a2e0702e530e4ad5f0ef4f962827cd56..c04816c00600503dfad60bf386bb0587d67a0f5b 100644 (file)
@@ -93,10 +93,19 @@ struct graceful_restart_af {
 /* Long-lived Graceful Restart */
 #define LLGR_F_BIT 0x80
 
-extern int bgp_open_option_parse(struct peer *, uint8_t, int *);
-extern void bgp_open_capability(struct stream *, struct peer *);
+/* Optional Parameters */
+#define BGP_OPEN_NON_EXT_OPT_LEN 255                 /* Non-Ext OP Len. */
+#define BGP_OPEN_NON_EXT_OPT_TYPE_EXTENDED_LENGTH 255 /* Non-Ext OP Type */
+#define BGP_OPEN_EXT_OPT_PARAMS_CAPABLE(peer)                                  \
+       (CHECK_FLAG(peer->flags, PEER_FLAG_EXTENDED_OPT_PARAMS)                \
+        || CHECK_FLAG(peer->sflags, PEER_STATUS_EXT_OPT_PARAMS_LENGTH))
+
+extern int bgp_open_option_parse(struct peer *peer, uint16_t length,
+                                int *mp_capability);
+extern uint16_t bgp_open_capability(struct stream *s, struct peer *peer,
+                                   bool ext_opt_params);
 extern void bgp_capability_vty_out(struct vty *vty, struct peer *peer,
                                   bool use_json, json_object *json_neigh);
-extern as_t peek_for_as4_capability(struct peer *, uint8_t);
+extern as_t peek_for_as4_capability(struct peer *peer, uint16_t length);
 
 #endif /* _QUAGGA_BGP_OPEN_H */