#define _QUAGGA_BGP_OPEN_H
/* Standard header for capability TLV */
-struct capability_header
-{
- u_char code;
- u_char length;
+struct capability_header {
+ uint8_t code;
+ uint8_t length;
};
/* Generic MP capability data */
-struct capability_mp_data
-{
- iana_afi_t afi;
- u_char reserved;
- safi_t safi;
+struct capability_mp_data {
+ uint16_t afi; /* iana_afi_t */
+ uint8_t reserved;
+ uint8_t safi; /* iana_safi_t */
};
-struct capability_as4
-{
- uint32_t as4;
-};
-
-struct graceful_restart_af
-{
- afi_t afi;
- safi_t safi;
- u_char flag;
-};
-
-struct capability_gr
-{
- u_int16_t restart_flag_time;
- struct graceful_restart_af gr[];
+struct graceful_restart_af {
+ afi_t afi;
+ safi_t safi;
+ uint8_t flag;
};
/* Capability Code */
#define CAPABILITY_CODE_REFRESH_OLD 128 /* Route Refresh Capability(cisco) */
#define CAPABILITY_CODE_ORF_OLD 130 /* Cooperative Route Filtering Capability(cisco) */
-
/* Capability Length */
#define CAPABILITY_CODE_MP_LEN 4
#define CAPABILITY_CODE_REFRESH_LEN 0
#define RESTART_R_BIT 0x8000
#define RESTART_F_BIT 0x80
-extern int bgp_open_option_parse (struct peer *, u_char, int *);
-extern void bgp_open_capability (struct stream *, struct peer *);
-extern void bgp_capability_vty_out (struct vty *, struct peer *, u_char, json_object *);
-extern as_t peek_for_as4_capability (struct peer *, u_char);
+extern int bgp_open_option_parse(struct peer *, uint8_t, int *);
+extern void bgp_open_capability(struct stream *, struct peer *);
+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);
#endif /* _QUAGGA_BGP_OPEN_H */