On Sat, Sep 30, 2017 at 04:25:12PM +0800, Hangbin Liu wrote:
> +static int rtnl_linkinfo_parse(struct rtattr *rta)
> +{
> +     int index = -1;
> +     const char *kind;
> +     struct rtattr *linkinfo[IFLA_INFO_MAX];
> +     struct rtattr *bond[IFLA_BOND_MAX];
> +
> +     if (rtnl_nested_rtattr_parse(linkinfo, IFLA_INFO_MAX, rta) < 0)
> +             return -1;
> +
> +     if (linkinfo[IFLA_INFO_KIND]) {
> +             kind = rta_getattr_str(linkinfo[IFLA_INFO_KIND]);
> +
> +             if (kind && !strncmp(kind, "bond", 4) &&
> +                 linkinfo[IFLA_INFO_DATA]) {
> +                     if (rtnl_nested_rtattr_parse(bond, IFLA_BOND_MAX,
> +                                              linkinfo[IFLA_INFO_DATA]) < 0)
> +                             return -1;
> +
> +                     if (bond[IFLA_BOND_ACTIVE_SLAVE]) {
> +                             index = 
> rta_getattr_u32(bond[IFLA_BOND_ACTIVE_SLAVE]);

The IFLA_BOND_ macros first appeared in v3.13-rc1, and we need to
allow compiling linuxptp with older kernel headers.  How about adding
something like this?

Thanks,
Richard

---
diff --git a/missing.h b/missing.h
index 7bc1776..cf989b5 100644
--- a/missing.h
+++ b/missing.h
@@ -69,6 +69,42 @@ static inline int clock_adjtime(clockid_t id, struct timex 
*tx)
 }
 #endif
 
+#ifndef IFLA_BOND_MAX
+enum {
+       IFLA_BOND_UNSPEC,
+       IFLA_BOND_MODE,
+       IFLA_BOND_ACTIVE_SLAVE,
+       IFLA_BOND_MIIMON,
+       IFLA_BOND_UPDELAY,
+       IFLA_BOND_DOWNDELAY,
+       IFLA_BOND_USE_CARRIER,
+       IFLA_BOND_ARP_INTERVAL,
+       IFLA_BOND_ARP_IP_TARGET,
+       IFLA_BOND_ARP_VALIDATE,
+       IFLA_BOND_ARP_ALL_TARGETS,
+       IFLA_BOND_PRIMARY,
+       IFLA_BOND_PRIMARY_RESELECT,
+       IFLA_BOND_FAIL_OVER_MAC,
+       IFLA_BOND_XMIT_HASH_POLICY,
+       IFLA_BOND_RESEND_IGMP,
+       IFLA_BOND_NUM_PEER_NOTIF,
+       IFLA_BOND_ALL_SLAVES_ACTIVE,
+       IFLA_BOND_MIN_LINKS,
+       IFLA_BOND_LP_INTERVAL,
+       IFLA_BOND_PACKETS_PER_SLAVE,
+       IFLA_BOND_AD_LACP_RATE,
+       IFLA_BOND_AD_SELECT,
+       IFLA_BOND_AD_INFO,
+       IFLA_BOND_AD_ACTOR_SYS_PRIO,
+       IFLA_BOND_AD_USER_PORT_KEY,
+       IFLA_BOND_AD_ACTOR_SYSTEM,
+       IFLA_BOND_TLB_DYNAMIC_LB,
+       __IFLA_BOND_MAX,
+};
+
+#define IFLA_BOND_MAX  (__IFLA_BOND_MAX - 1)
+#endif /*IFLA_BOND_MAX*/
+
 #ifdef __UCLIBC__
 
 #if (_XOPEN_SOURCE >= 600 || _POSIX_C_SOURCE >= 200112L) && \
diff --git a/rtnl.c b/rtnl.c
index 2ac0b96..0d3bef9 100644
--- a/rtnl.c
+++ b/rtnl.c
@@ -26,6 +26,7 @@
 #include <string.h>
 #include <unistd.h>
 
+#include "missing.h"
 #include "print.h"
 #include "rtnl.h"
 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linuxptp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to