]> git.proxmox.com Git - mirror_frr.git/blobdiff - bgpd/bgp_open.h
Merge pull request #5717 from pguibert6WIND/flowspec_issue_redistribute
[mirror_frr.git] / bgpd / bgp_open.h
index 0b0d9023e06a4560a971ae1bf828cf8e582cd945..5250a68581090d6dc870b20f821bbfa1bad9c6e8 100644 (file)
 #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 */
@@ -63,12 +49,11 @@ struct capability_gr
 #define CAPABILITY_CODE_DYNAMIC_OLD    66 /* Dynamic Capability, deprecated since 2003 */
 #define CAPABILITY_CODE_DYNAMIC        67 /* Dynamic Capability */
 #define CAPABILITY_CODE_ADDPATH        69 /* Addpath Capability */
-#define CAPABILITY_CODE_FQDN           73 /* Advertise hostname capabilty */
+#define CAPABILITY_CODE_FQDN           73 /* Advertise hostname capability */
 #define CAPABILITY_CODE_ENHE            5 /* Extended Next Hop Encoding */
 #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
@@ -83,13 +68,13 @@ struct capability_gr
 /* Cooperative Route Filtering Capability.  */
 
 /* ORF Type */
-#define ORF_TYPE_PREFIX                64 
+#define ORF_TYPE_PREFIX                64
 #define ORF_TYPE_PREFIX_OLD           128
 
 /* ORF Mode */
-#define ORF_MODE_RECEIVE                1 
-#define ORF_MODE_SEND                   2 
-#define ORF_MODE_BOTH                   3 
+#define ORF_MODE_RECEIVE                1
+#define ORF_MODE_SEND                   2
+#define ORF_MODE_BOTH                   3
 
 /* Capability Message Action.  */
 #define CAPABILITY_ACTION_SET           0
@@ -99,9 +84,10 @@ struct capability_gr
 #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 */