From 7628d862cac325e47cfd89717299347dee627d14 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Thu, 3 Aug 2017 08:42:29 -0400 Subject: [PATCH] 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 --- lib/prefix.c | 2 +- lib/prefix.h | 30 ++++++++++++++++++++++++------ 2 files changed, 25 insertions(+), 7 deletions(-) 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)); -- 2.39.5