The iproute package keeps its own headers so there is no need
of polluting code with #ifdef's
fprintf(fp, "mtu %u ", *(int*)RTA_DATA(tb[IFLA_MTU]));
if (tb[IFLA_QDISC])
fprintf(fp, "qdisc %s ", (char*)RTA_DATA(tb[IFLA_QDISC]));
fprintf(fp, "mtu %u ", *(int*)RTA_DATA(tb[IFLA_MTU]));
if (tb[IFLA_QDISC])
fprintf(fp, "qdisc %s ", (char*)RTA_DATA(tb[IFLA_QDISC]));
if (tb[IFLA_MASTER]) {
SPRINT_BUF(b1);
fprintf(fp, "master %s ", ll_idx_n2a(*(int*)RTA_DATA(tb[IFLA_MASTER]), b1));
}
if (tb[IFLA_MASTER]) {
SPRINT_BUF(b1);
fprintf(fp, "master %s ", ll_idx_n2a(*(int*)RTA_DATA(tb[IFLA_MASTER]), b1));
}
if (tb[IFLA_OPERSTATE])
print_operstate(fp, *(__u8 *)RTA_DATA(tb[IFLA_OPERSTATE]));
if (tb[IFLA_OPERSTATE])
print_operstate(fp, *(__u8 *)RTA_DATA(tb[IFLA_OPERSTATE]));
if (len < 0)
return -1;
addattr_nest_end(&req->n, vflist);
if (len < 0)
return -1;
addattr_nest_end(&req->n, vflist);
} else if (matches(*argv, "master") == 0) {
int ifindex;
NEXT_ARG();
} else if (matches(*argv, "master") == 0) {
int ifindex;
NEXT_ARG();
int ifindex = 0;
addattr_l(&req->n, sizeof(*req), IFLA_MASTER,
&ifindex, 4);
int ifindex = 0;
addattr_l(&req->n, sizeof(*req), IFLA_MASTER,
&ifindex, 4);
-#endif
-#ifdef IFF_DYNAMIC
} else if (matches(*argv, "dynamic") == 0) {
NEXT_ARG();
req->i.ifi_change |= IFF_DYNAMIC;
} else if (matches(*argv, "dynamic") == 0) {
NEXT_ARG();
req->i.ifi_change |= IFF_DYNAMIC;
req->i.ifi_flags &= ~IFF_DYNAMIC;
} else
return on_off("dynamic");
req->i.ifi_flags &= ~IFF_DYNAMIC;
} else
return on_off("dynamic");
} else if (matches(*argv, "type") == 0) {
NEXT_ARG();
*type = *argv;
} else if (matches(*argv, "type") == 0) {
NEXT_ARG();
*type = *argv;
flags |= IFF_NOARP;
} else
return on_off("noarp");
flags |= IFF_NOARP;
} else
return on_off("noarp");
} else if (matches(*argv, "dynamic") == 0) {
NEXT_ARG();
mask |= IFF_DYNAMIC;
} else if (matches(*argv, "dynamic") == 0) {
NEXT_ARG();
mask |= IFF_DYNAMIC;
flags &= ~IFF_DYNAMIC;
} else
return on_off("dynamic");
flags &= ~IFF_DYNAMIC;
} else
return on_off("dynamic");
} else {
if (strcmp(*argv, "dev") == 0) {
NEXT_ARG();
} else {
if (strcmp(*argv, "dev") == 0) {
NEXT_ARG();
ci->ndm_confirmed/hz, ci->ndm_updated/hz);
}
ci->ndm_confirmed/hz, ci->ndm_updated/hz);
}
if (tb[NDA_PROBES] && show_stats) {
__u32 p = *(__u32 *) RTA_DATA(tb[NDA_PROBES]);
fprintf(fp, " probes %u", p);
}
if (tb[NDA_PROBES] && show_stats) {
__u32 p = *(__u32 *) RTA_DATA(tb[NDA_PROBES]);
fprintf(fp, " probes %u", p);
}
if (r->ndm_state) {
int nud = r->ndm_state;
if (r->ndm_state) {
int nud = r->ndm_state;
if (ci->rta_lastuse != 0)
fprintf(fp, " age %dsec", ci->rta_lastuse/hz);
}
if (ci->rta_lastuse != 0)
fprintf(fp, " age %dsec", ci->rta_lastuse/hz);
}
-#ifdef RTNETLINK_HAVE_PEERINFO
if (ci->rta_id)
fprintf(fp, " ipid 0x%04x", ci->rta_id);
if (ci->rta_ts || ci->rta_tsage)
if (ci->rta_id)
fprintf(fp, " ipid 0x%04x", ci->rta_id);
if (ci->rta_ts || ci->rta_tsage)
- fprintf(fp, " ts 0x%x tsage %dsec", ci->rta_ts, ci->rta_tsage);
-#endif
+ fprintf(fp, " ts 0x%x tsage %dsec",
+ ci->rta_ts, ci->rta_tsage);
}
} else if (r->rtm_family == AF_INET6) {
struct rta_cacheinfo *ci = NULL;
}
} else if (r->rtm_family == AF_INET6) {
struct rta_cacheinfo *ci = NULL;
if (get_unsigned(&mtu, *argv, 0))
invarg("\"mtu\" value is invalid\n", *argv);
rta_addattr32(mxrta, sizeof(mxbuf), RTAX_MTU, mtu);
if (get_unsigned(&mtu, *argv, 0))
invarg("\"mtu\" value is invalid\n", *argv);
rta_addattr32(mxrta, sizeof(mxbuf), RTAX_MTU, mtu);
} else if (strcmp(*argv, "hoplimit") == 0) {
unsigned hoplimit;
NEXT_ARG();
} else if (strcmp(*argv, "hoplimit") == 0) {
unsigned hoplimit;
NEXT_ARG();
if (get_unsigned(&hoplimit, *argv, 0))
invarg("\"hoplimit\" value is invalid\n", *argv);
rta_addattr32(mxrta, sizeof(mxbuf), RTAX_HOPLIMIT, hoplimit);
if (get_unsigned(&hoplimit, *argv, 0))
invarg("\"hoplimit\" value is invalid\n", *argv);
rta_addattr32(mxrta, sizeof(mxbuf), RTAX_HOPLIMIT, hoplimit);
-#endif
-#ifdef RTAX_ADVMSS
} else if (strcmp(*argv, "advmss") == 0) {
unsigned mss;
NEXT_ARG();
} else if (strcmp(*argv, "advmss") == 0) {
unsigned mss;
NEXT_ARG();
if (get_unsigned(&mss, *argv, 0))
invarg("\"mss\" value is invalid\n", *argv);
rta_addattr32(mxrta, sizeof(mxbuf), RTAX_ADVMSS, mss);
if (get_unsigned(&mss, *argv, 0))
invarg("\"mss\" value is invalid\n", *argv);
rta_addattr32(mxrta, sizeof(mxbuf), RTAX_ADVMSS, mss);
-#endif
-#ifdef RTAX_REORDERING
} else if (matches(*argv, "reordering") == 0) {
unsigned reord;
NEXT_ARG();
} else if (matches(*argv, "reordering") == 0) {
unsigned reord;
NEXT_ARG();
if (get_unsigned(&reord, *argv, 0))
invarg("\"reordering\" value is invalid\n", *argv);
rta_addattr32(mxrta, sizeof(mxbuf), RTAX_REORDERING, reord);
if (get_unsigned(&reord, *argv, 0))
invarg("\"reordering\" value is invalid\n", *argv);
rta_addattr32(mxrta, sizeof(mxbuf), RTAX_REORDERING, reord);
} else if (strcmp(*argv, "rtt") == 0) {
unsigned rtt;
NEXT_ARG();
} else if (strcmp(*argv, "rtt") == 0) {
unsigned rtt;
NEXT_ARG();
} llproto_names[] = {
__PF(LOOP,loop)
__PF(PUP,pup)
} llproto_names[] = {
__PF(LOOP,loop)
__PF(PUP,pup)
__PF(IP,ip)
__PF(X25,x25)
__PF(ARP,arp)
__PF(BPQ,bpq)
__PF(IP,ip)
__PF(X25,x25)
__PF(ARP,arp)
__PF(BPQ,bpq)
-#endif
-#ifdef ETH_P_IEEEPUPAT
__PF(IEEEPUPAT,ieeepupat)
__PF(IEEEPUPAT,ieeepupat)
__PF(DEC,dec)
__PF(DNA_DL,dna_dl)
__PF(DNA_RC,dna_rc)
__PF(DEC,dec)
__PF(DNA_DL,dna_dl)
__PF(DNA_RC,dna_rc)
__PF(AARP,aarp)
__PF(IPX,ipx)
__PF(IPV6,ipv6)
__PF(AARP,aarp)
__PF(IPX,ipx)
__PF(IPV6,ipv6)
-#endif
-#ifdef ETH_P_PPP_SES
-#endif
-#ifdef ETH_P_ATMMPOA
-#endif
-#ifdef ETH_P_ATMFATE
__PF(802_3,802_3)
__PF(AX25,ax25)
__PF(ALL,all)
__PF(802_3,802_3)
__PF(AX25,ax25)
__PF(ALL,all)
__PF(MOBITEX,mobitex)
__PF(CONTROL,control)
__PF(IRDA,irda)
__PF(MOBITEX,mobitex)
__PF(CONTROL,control)
__PF(IRDA,irda)
__PF(TIPC,tipc)
__PF(AOE,aoe)
__PF(TIPC,tipc)
__PF(AOE,aoe)