]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/zebra.h
bgpd-nht-import-check-fix.patch
[mirror_frr.git] / lib / zebra.h
index ab072d6e5be4c630a30a06c50a3ca37c5285b4d8..05e7013c568260a41a3884c81c868031ec99b618 100644 (file)
@@ -40,6 +40,7 @@ typedef int socklen_t;
 #include <unistd.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <stddef.h>
 #include <ctype.h>
 #include <errno.h>
 #include <fcntl.h>
@@ -50,7 +51,6 @@ typedef int socklen_t;
 #ifdef HAVE_STROPTS_H
 #include <stropts.h>
 #endif /* HAVE_STROPTS_H */
-#include <sys/fcntl.h>
 #ifdef HAVE_SYS_SELECT_H
 #include <sys/select.h>
 #endif /* HAVE_SYS_SELECT_H */
@@ -142,6 +142,10 @@ typedef int socklen_t;
 #include <sys/sockio.h>
 #endif /* HAVE_SYS_SOCKIO_H */
 
+#ifdef __APPLE__
+#define __APPLE_USE_RFC_3542
+#endif
+
 #ifdef HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif /* HAVE_NETINET_IN_H */
@@ -171,7 +175,6 @@ typedef int socklen_t;
 #include <linux/netlink.h>
 #include <linux/rtnetlink.h>
 #include <linux/filter.h>
-#include <stddef.h>
 #else
 #define RT_TABLE_MAIN          0
 #endif /* HAVE_NETLINK */
@@ -357,6 +360,7 @@ struct in_pktinfo
  */
 #if defined(__NetBSD__) || defined(__FreeBSD__) \
    || (defined(__OpenBSD__) && (OpenBSD < 200311)) \
+   || (defined(__APPLE__)) \
    || (defined(SUNOS_5) && defined(WORDS_BIGENDIAN))
 #define HAVE_IP_HDRINCL_BSD_ORDER
 #endif
@@ -386,6 +390,8 @@ struct in_pktinfo
 #define MIN(a, b) ((a) < (b) ? (a) : (b))
 #endif
 
+#define ZEBRA_NUM_OF(x) (sizeof (x) / sizeof (x[0]))
+
 /* For old definition. */
 #ifndef IN6_ARE_ADDR_EQUAL
 #define IN6_ARE_ADDR_EQUAL IN6_IS_ADDR_EQUAL
@@ -418,7 +424,16 @@ struct in_pktinfo
 #define ZEBRA_ROUTER_ID_DELETE            21
 #define ZEBRA_ROUTER_ID_UPDATE            22
 #define ZEBRA_HELLO                       23
-#define ZEBRA_MESSAGE_MAX                 24
+#define ZEBRA_NEXTHOP_REGISTER            24
+#define ZEBRA_NEXTHOP_UNREGISTER          25
+#define ZEBRA_NEXTHOP_UPDATE              26
+#define ZEBRA_INTERFACE_NBR_ADDRESS_ADD   27
+#define ZEBRA_INTERFACE_NBR_ADDRESS_DELETE 28
+#define ZEBRA_INTERFACE_BFD_DEST_DOWN    29
+#define ZEBRA_IMPORT_ROUTE_REGISTER       30
+#define ZEBRA_IMPORT_ROUTE_UNREGISTER     31
+#define ZEBRA_IMPORT_CHECK_UPDATE         32
+#define ZEBRA_MESSAGE_MAX                 33
 
 /* Marker value used in new Zserv, in the byte location corresponding
  * the command value in the old zserv header. To allow old and new
@@ -470,6 +485,7 @@ extern const char *zserv_command_string (unsigned int command);
 #define ZEBRA_FLAG_CHANGED            0x20
 #define ZEBRA_FLAG_STATIC             0x40
 #define ZEBRA_FLAG_REJECT             0x80
+#define ZEBRA_FLAG_SCOPE_LINK         0x100
 
 /* Zebra nexthop flags. */
 #define ZEBRA_NEXTHOP_IFINDEX            1
@@ -481,6 +497,7 @@ extern const char *zserv_command_string (unsigned int command);
 #define ZEBRA_NEXTHOP_IPV6_IFINDEX       7
 #define ZEBRA_NEXTHOP_IPV6_IFNAME        8
 #define ZEBRA_NEXTHOP_BLACKHOLE          9
+#define ZEBRA_NEXTHOP_IPV4_ONLINK       10
 
 #ifndef INADDR_LOOPBACK
 #define        INADDR_LOOPBACK 0x7f000001      /* Internet address 127.0.0.1.  */
@@ -514,11 +531,13 @@ extern const char *zserv_command_string (unsigned int command);
 #define ZEBRA_ISIS_DISTANCE_DEFAULT      115
 #define ZEBRA_IBGP_DISTANCE_DEFAULT      200
 #define ZEBRA_EBGP_DISTANCE_DEFAULT       20
+#define ZEBRA_TABLE_DISTANCE_DEFAULT     150
 
 /* Flag manipulation macros. */
 #define CHECK_FLAG(V,F)      ((V) & (F))
 #define SET_FLAG(V,F)        (V) |= (F)
 #define UNSET_FLAG(V,F)      (V) &= ~(F)
+#define RESET_FLAG(V)        (V) = 0
 
 /* AFI and SAFI type. */
 typedef u_int16_t afi_t;