From: Donald Sharp Date: Thu, 3 Aug 2017 12:42:29 +0000 (-0400) Subject: lib: Add ETH_ALEN to prefix.h and deprecate ETHER_ADDR_LEN X-Git-Tag: frr-4.0-dev~452^2~4 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=7628d862cac325e47cfd89717299347dee627d14;p=matthieu%2Ffrr.git lib: Add ETH_ALEN to prefix.h and deprecate ETHER_ADDR_LEN 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 --- diff --git a/lib/prefix.c b/lib/prefix.c index 47e16dbf8b..33b6ff1987 100644 --- a/lib/prefix.c +++ b/lib/prefix.c @@ -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; } diff --git a/lib/prefix.h b/lib/prefix.h index 4f1f0b22d7..5f2b57ccce 100644 --- a/lib/prefix.h +++ b/lib/prefix.h @@ -34,21 +34,39 @@ #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));