]> git.puffer.fish Git - mirror/frr.git/commitdiff
lib: Add ETH_ALEN to prefix.h and deprecate ETHER_ADDR_LEN
authorDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 3 Aug 2017 12:42:29 +0000 (08:42 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 4 Aug 2017 13:06:14 +0000 (09:06 -0400)
From discussion we decided that we should use ETH_ALEN instead
of ETHER_ADDR_LEN.  Add ETH_ALEN to prefix.h and make
ETHER_ADDR_LEN generate a warning when used( but still work ).

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
lib/prefix.c
lib/prefix.h

index 47e16dbf8b23470589d8a37d25b74fe89e1089c3..33b6ff198776f0b39a4b7ffce6d12b9d4f0f1171 100644 (file)
@@ -1062,7 +1062,7 @@ int prefix_blen(const struct prefix *p)
                return IPV6_MAX_BYTELEN;
                break;
        case AF_ETHERNET:
-               return ETHER_ADDR_LEN;
+               return ETH_ALEN;
        }
        return 0;
 }
index 4f1f0b22d78dc8eef33eff37baa8b5e58e084de8..5f2b57ccce2613aba71ec00bb360c894bc036931 100644 (file)
 #include "sockunion.h"
 #include "ipaddr.h"
 
-#ifndef ETHER_ADDR_LEN
-#ifdef ETHERADDRL
-#define ETHER_ADDR_LEN  ETHERADDRL
+#ifndef ETH_ALEN
+#define ETH_ALEN 6
+#endif
+
+/* for compatibility */
+#if defined(__ICC)
+#define CPP_WARN_STR(X) #X
+#define CPP_WARN(text) _Pragma(CPP_WARN_STR(message __FILE__ ": " text))
+
+#elif (defined(__GNUC__)                                                       \
+       && (__GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)))           \
+       || (defined(__clang__)                                                 \
+           && (__clang_major__ >= 4                                           \
+               || (__clang_major__ == 3 && __clang_minor__ >= 5)))
+#define CPP_WARN_STR(X) #X
+#define CPP_WARN(text) _Pragma(CPP_WARN_STR(GCC warning text))
+
 #else
-#define ETHER_ADDR_LEN 6
+#define CPP_WARN(text)
 #endif
+
+#ifdef ETHER_ADDR_LEN
+#undef ETHER_ADDR_LEN
 #endif
+#define ETHER_ADDR_LEN 6 CPP_WARN("ETHER_ADDR_LEN is being replaced by ETH_ALEN.\\n")
 
-#define ETHER_ADDR_STRLEN (3*ETHER_ADDR_LEN)
+#define ETHER_ADDR_STRLEN (3*ETH_ALEN)
 /*
  * there isn't a portable ethernet address type. We define our
  * own to simplify internal handling
  */
 struct ethaddr {
-       u_char octet[ETHER_ADDR_LEN];
+       u_char octet[ETH_ALEN];
 } __attribute__((packed));