Also, use it, and nd_ipv4, in sizeof() operations.
nd_uint8_t rreq_zero0; /* reserved, set to zero */
nd_uint8_t rreq_hops; /* number of hops from originator */
nd_uint32_t rreq_id; /* request ID */
- struct in6_addr rreq_da; /* destination IPv6 address */
+ nd_ipv6 rreq_da; /* destination IPv6 address */
nd_uint32_t rreq_ds; /* destination sequence number */
- struct in6_addr rreq_oa; /* originator IPv6 address */
+ nd_ipv6 rreq_oa; /* originator IPv6 address */
nd_uint32_t rreq_os; /* originator sequence number */
};
struct aodv_rreq6_draft_01 {
nd_uint32_t rreq_id; /* request ID */
nd_uint32_t rreq_ds; /* destination sequence number */
nd_uint32_t rreq_os; /* originator sequence number */
- struct in6_addr rreq_da; /* destination IPv6 address */
- struct in6_addr rreq_oa; /* originator IPv6 address */
+ nd_ipv6 rreq_da; /* destination IPv6 address */
+ nd_ipv6 rreq_oa; /* originator IPv6 address */
};
#define RREQ_JOIN 0x80 /* join (reserved for multicast */
nd_uint8_t rrep_flags; /* various flags */
nd_uint8_t rrep_ps; /* prefix size */
nd_uint8_t rrep_hops; /* number of hops from o to d */
- struct in6_addr rrep_da; /* destination IPv6 address */
+ nd_ipv6 rrep_da; /* destination IPv6 address */
nd_uint32_t rrep_ds; /* destination sequence number */
- struct in6_addr rrep_oa; /* originator IPv6 address */
+ nd_ipv6 rrep_oa; /* originator IPv6 address */
nd_uint32_t rrep_life; /* lifetime of this route */
};
struct aodv_rrep6_draft_01 {
nd_uint8_t rrep_ps; /* prefix size */
nd_uint8_t rrep_hops; /* number of hops from o to d */
nd_uint32_t rrep_ds; /* destination sequence number */
- struct in6_addr rrep_da; /* destination IPv6 address */
- struct in6_addr rrep_oa; /* originator IPv6 address */
+ nd_ipv6 rrep_da; /* destination IPv6 address */
+ nd_ipv6 rrep_oa; /* originator IPv6 address */
nd_uint32_t rrep_life; /* lifetime of this route */
};
nd_uint32_t u_ds; /* sequence number */
};
struct rerr_unreach6 {
- struct in6_addr u_da; /* IPv6 address */
+ nd_ipv6 u_da; /* IPv6 address */
nd_uint32_t u_ds; /* sequence number */
};
struct rerr_unreach6_draft_01 {
- struct in6_addr u_da; /* IPv6 address */
+ nd_ipv6 u_da; /* IPv6 address */
nd_uint32_t u_ds; /* sequence number */
};
char *pos = addr;
switch(addr_length) {
- case (sizeof(struct in_addr) << 3): /* 32 */
- ND_TCHECK_LEN(pptr, sizeof(struct in_addr));
+ case (sizeof(nd_ipv4) << 3): /* 32 */
+ ND_TCHECK_LEN(pptr, sizeof(nd_ipv4));
nd_snprintf(pos, sizeof(addr), "%s", ipaddr_string(ndo, pptr));
break;
- case (sizeof(struct in6_addr) << 3): /* 128 */
- ND_TCHECK_LEN(pptr, sizeof(struct in6_addr));
+ case (sizeof(nd_ipv6) << 3): /* 128 */
+ ND_TCHECK_LEN(pptr, sizeof(nd_ipv6));
nd_snprintf(pos, sizeof(addr), "%s", ip6addr_string(ndo, pptr));
break;
default:
pptr += 8;
/* IPv4 address */
- ND_TCHECK_LEN(pptr, sizeof(struct in_addr));
+ ND_TCHECK_LEN(pptr, sizeof(nd_ipv4));
vpn_ip = pptr;
- pptr += sizeof(struct in_addr);
+ pptr += sizeof(nd_ipv4);
/* MDT Group Address */
- ND_TCHECK_LEN(pptr, sizeof(struct in_addr));
+ ND_TCHECK_LEN(pptr, sizeof(nd_ipv4));
nd_snprintf(buf, buflen, "RD: %s, VPN IP Address: %s, MC Group Address: %s",
bgp_vpn_rd_print(ndo, rd), ipaddr_string(ndo, vpn_ip), ipaddr_string(ndo, pptr));
case (AFNUM_INET<<8 | SAFNUM_RT_ROUTING_INFO):
case (AFNUM_INET<<8 | SAFNUM_MULTICAST_VPN):
case (AFNUM_INET<<8 | SAFNUM_MDT):
- if (tlen < sizeof(struct in_addr)) {
+ if (tlen < sizeof(nd_ipv4)) {
ND_PRINT("invalid len");
tlen = 0;
} else {
- ND_TCHECK_LEN(tptr, sizeof(struct in_addr));
+ ND_TCHECK_LEN(tptr, sizeof(nd_ipv4));
ND_PRINT("%s",ipaddr_string(ndo, tptr));
- tlen -= sizeof(struct in_addr);
- tptr += sizeof(struct in_addr);
+ tlen -= sizeof(nd_ipv4);
+ tptr += sizeof(nd_ipv4);
}
break;
case (AFNUM_INET<<8 | SAFNUM_VPNUNICAST):
case (AFNUM_INET<<8 | SAFNUM_VPNMULTICAST):
case (AFNUM_INET<<8 | SAFNUM_VPNUNIMULTICAST):
- if (tlen < sizeof(struct in_addr)+BGP_VPN_RD_LEN) {
+ if (tlen < sizeof(nd_ipv4)+BGP_VPN_RD_LEN) {
ND_PRINT("invalid len");
tlen = 0;
} else {
ND_TCHECK_LEN(tptr,
- sizeof(struct in_addr) + BGP_VPN_RD_LEN);
+ sizeof(nd_ipv4) + BGP_VPN_RD_LEN);
ND_PRINT("RD: %s, %s",
bgp_vpn_rd_print(ndo, tptr),
ipaddr_string(ndo, tptr+BGP_VPN_RD_LEN));
- tlen -= (sizeof(struct in_addr)+BGP_VPN_RD_LEN);
- tptr += (sizeof(struct in_addr)+BGP_VPN_RD_LEN);
+ tlen -= (sizeof(nd_ipv4)+BGP_VPN_RD_LEN);
+ tptr += (sizeof(nd_ipv4)+BGP_VPN_RD_LEN);
}
break;
case (AFNUM_INET6<<8 | SAFNUM_UNICAST):
case (AFNUM_INET6<<8 | SAFNUM_MULTICAST):
case (AFNUM_INET6<<8 | SAFNUM_UNIMULTICAST):
case (AFNUM_INET6<<8 | SAFNUM_LABUNICAST):
- if (tlen < sizeof(struct in6_addr)) {
+ if (tlen < sizeof(nd_ipv6)) {
ND_PRINT("invalid len");
tlen = 0;
} else {
- ND_TCHECK_LEN(tptr, sizeof(struct in6_addr));
+ ND_TCHECK_LEN(tptr, sizeof(nd_ipv6));
ND_PRINT("%s", ip6addr_string(ndo, tptr));
- tlen -= sizeof(struct in6_addr);
- tptr += sizeof(struct in6_addr);
+ tlen -= sizeof(nd_ipv6);
+ tptr += sizeof(nd_ipv6);
}
break;
case (AFNUM_INET6<<8 | SAFNUM_VPNUNICAST):
case (AFNUM_INET6<<8 | SAFNUM_VPNMULTICAST):
case (AFNUM_INET6<<8 | SAFNUM_VPNUNIMULTICAST):
- if (tlen < sizeof(struct in6_addr)+BGP_VPN_RD_LEN) {
+ if (tlen < sizeof(nd_ipv6)+BGP_VPN_RD_LEN) {
ND_PRINT("invalid len");
tlen = 0;
} else {
ND_TCHECK_LEN(tptr,
- sizeof(struct in6_addr) + BGP_VPN_RD_LEN);
+ sizeof(nd_ipv6) + BGP_VPN_RD_LEN);
ND_PRINT("RD: %s, %s",
bgp_vpn_rd_print(ndo, tptr),
ip6addr_string(ndo, tptr+BGP_VPN_RD_LEN));
- tlen -= (sizeof(struct in6_addr)+BGP_VPN_RD_LEN);
- tptr += (sizeof(struct in6_addr)+BGP_VPN_RD_LEN);
+ tlen -= (sizeof(nd_ipv6)+BGP_VPN_RD_LEN);
+ tptr += (sizeof(nd_ipv6)+BGP_VPN_RD_LEN);
}
break;
case (AFNUM_VPLS<<8 | SAFNUM_VPLS):
case (AFNUM_L2VPN<<8 | SAFNUM_VPNUNICAST):
case (AFNUM_L2VPN<<8 | SAFNUM_VPNMULTICAST):
case (AFNUM_L2VPN<<8 | SAFNUM_VPNUNIMULTICAST):
- if (tlen < sizeof(struct in_addr)) {
+ if (tlen < sizeof(nd_ipv4)) {
ND_PRINT("invalid len");
tlen = 0;
} else {
- ND_TCHECK_LEN(tptr, sizeof(struct in_addr));
+ ND_TCHECK_LEN(tptr, sizeof(nd_ipv4));
ND_PRINT("%s", ipaddr_string(ndo, tptr));
- tlen -= (sizeof(struct in_addr));
- tptr += (sizeof(struct in_addr));
+ tlen -= (sizeof(nd_ipv4));
+ tptr += (sizeof(nd_ipv4));
}
break;
case (AFNUM_NSAP<<8 | SAFNUM_UNICAST):
switch (typ) {
case T_A:
- if (!ND_TTEST_LEN(cp, sizeof(struct in_addr)))
+ if (!ND_TTEST_LEN(cp, sizeof(nd_ipv4)))
return(NULL);
ND_PRINT(" %s", intoa(EXTRACT_IPV4_TO_NETWORK_ORDER(cp)));
break;
{
char ntop_buf[INET6_ADDRSTRLEN];
- if (!ND_TTEST_LEN(cp, sizeof(struct in6_addr)))
+ if (!ND_TTEST_LEN(cp, sizeof(nd_ipv6)))
return(NULL);
ND_PRINT(" %s",
addrtostr6(cp, ntop_buf, sizeof(ntop_buf)));
if (sa->spi == EXTRACT_BE_U_4(esp->esp_spi) &&
sa->daddr_version == 6 &&
UNALIGNED_MEMCMP(&sa->daddr.in6, &ip6->ip6_dst,
- sizeof(struct in6_addr)) == 0) {
+ sizeof(nd_ipv6)) == 0) {
break;
}
}
if (sa->spi == EXTRACT_BE_U_4(esp->esp_spi) &&
sa->daddr_version == 4 &&
UNALIGNED_MEMCMP(&sa->daddr.in4, &ip->ip_dst,
- sizeof(struct in_addr)) == 0) {
+ sizeof(nd_ipv4)) == 0) {
break;
}
}
*/
struct mld6_hdr {
struct icmp6_hdr mld6_hdr;
- struct in6_addr mld6_addr; /* multicast address */
+ nd_ipv6 mld6_addr; /* multicast address */
};
#define mld6_type mld6_hdr.icmp6_type
struct nd_neighbor_solicit { /* neighbor solicitation */
struct icmp6_hdr nd_ns_hdr;
- struct in6_addr nd_ns_target; /*target address */
+ nd_ipv6 nd_ns_target; /*target address */
/* could be followed by options */
};
struct nd_neighbor_advert { /* neighbor advertisement */
struct icmp6_hdr nd_na_hdr;
- struct in6_addr nd_na_target; /* target address */
+ nd_ipv6 nd_na_target; /* target address */
/* could be followed by options */
};
struct nd_redirect { /* redirect */
struct icmp6_hdr nd_rd_hdr;
- struct in6_addr nd_rd_target; /* target address */
- struct in6_addr nd_rd_dst; /* destination address */
+ nd_ipv6 nd_rd_target; /* target address */
+ nd_ipv6 nd_rd_dst; /* destination address */
/* could be followed by options */
};
#define ND_OPT_DNSSL 31
struct nd_opt_prefix_info { /* prefix information */
- nd_uint8_t nd_opt_pi_type;
- nd_uint8_t nd_opt_pi_len;
- nd_uint8_t nd_opt_pi_prefix_len;
- nd_uint8_t nd_opt_pi_flags_reserved;
- nd_uint32_t nd_opt_pi_valid_time;
- nd_uint32_t nd_opt_pi_preferred_time;
- nd_uint32_t nd_opt_pi_reserved2;
- struct in6_addr nd_opt_pi_prefix;
+ nd_uint8_t nd_opt_pi_type;
+ nd_uint8_t nd_opt_pi_len;
+ nd_uint8_t nd_opt_pi_prefix_len;
+ nd_uint8_t nd_opt_pi_flags_reserved;
+ nd_uint32_t nd_opt_pi_valid_time;
+ nd_uint32_t nd_opt_pi_preferred_time;
+ nd_uint32_t nd_opt_pi_reserved2;
+ nd_ipv6 nd_opt_pi_prefix;
};
#define ND_OPT_PI_FLAG_ONLINK 0x80
nd_uint8_t nd_opt_rdnss_len;
nd_uint16_t nd_opt_rdnss_reserved;
nd_uint32_t nd_opt_rdnss_lifetime;
- struct in6_addr nd_opt_rdnss_addr[1]; /* variable-length */
+ nd_ipv6 nd_opt_rdnss_addr[1]; /* variable-length */
};
struct nd_opt_dnssl { /* DNSSL RFC 6106 5.2 */
break;
case ICMP6_HADISCOV_REPLY:
if (ndo->ndo_vflag) {
- const struct in6_addr *in6;
+ const nd_ipv6 *in6;
const u_char *cp;
ND_TCHECK_2(dp->icmp6_data16[0]);
ND_PRINT(", id 0x%04x", EXTRACT_BE_U_2(dp->icmp6_data16[0]));
cp = (const u_char *)dp + length;
- in6 = (const struct in6_addr *)(dp + 1);
+ in6 = (const nd_ipv6 *)(dp + 1);
for (; (const u_char *)in6 < cp; in6++) {
ND_TCHECK_SIZE(in6);
ND_PRINT(", %s", ip6addr_string(ndo, in6));
opri = (const struct nd_opt_route_info *)op;
ND_TCHECK_4(opri->nd_opt_rti_lifetime);
memset(&in6, 0, sizeof(in6));
- in6p = (const struct in6_addr *)(opri + 1);
+ in6p = (const nd_ipv6 *)(opri + 1);
switch (opt_len) {
case 1:
break;
ND_PRINT(" [invalid number of groups]");
return;
}
- ND_TCHECK_LEN(bp + 4 + group, sizeof(struct in6_addr));
+ ND_TCHECK_LEN(bp + 4 + group, sizeof(nd_ipv6));
ND_PRINT(" [gaddr %s", ip6addr_string(ndo, bp + group + 4));
ND_PRINT(" %s", tok2str(mldv2report2str, " [v2-report-#%u]",
EXTRACT_U_1(bp + group)));
nsrcs = EXTRACT_BE_U_2(bp + group + 2);
/* Check the number of sources and print them */
- if (len < group + 20 + (nsrcs * sizeof(struct in6_addr))) {
+ if (len < group + 20 + (nsrcs * sizeof(nd_ipv6))) {
ND_PRINT(" [invalid number of sources %u]", nsrcs);
return;
}
/* Print the sources */
ND_PRINT(" {");
for (j = 0; j < nsrcs; j++) {
- ND_TCHECK_LEN(bp + group + 20 + (j * sizeof(struct in6_addr)),
- sizeof(struct in6_addr));
- ND_PRINT(" %s", ip6addr_string(ndo, bp + group + 20 + (j * sizeof(struct in6_addr))));
+ ND_TCHECK_LEN(bp + group + 20 + (j * sizeof(nd_ipv6)),
+ sizeof(nd_ipv6));
+ ND_PRINT(" %s", ip6addr_string(ndo, bp + group + 20 + (j * sizeof(nd_ipv6))));
}
ND_PRINT(" }");
}
/* Next group record */
- group += 20 + nsrcs * sizeof(struct in6_addr);
+ group += 20 + nsrcs * sizeof(nd_ipv6);
ND_PRINT("]");
}
}
if (ndo->ndo_vflag) {
ND_PRINT(" [max resp delay=%u]", mrt);
}
- ND_TCHECK_LEN(bp + 8, sizeof(struct in6_addr));
+ ND_TCHECK_LEN(bp + 8, sizeof(nd_ipv6));
ND_PRINT(" [gaddr %s", ip6addr_string(ndo, bp + 8));
if (ndo->ndo_vflag) {
ND_TCHECK_2(bp + 26);
nsrcs = EXTRACT_BE_U_2(bp + 26);
if (nsrcs > 0) {
- if (len < 28 + nsrcs * sizeof(struct in6_addr))
+ if (len < 28 + nsrcs * sizeof(nd_ipv6))
ND_PRINT(" [invalid number of sources]");
else if (ndo->ndo_vflag > 1) {
ND_PRINT(" {");
for (i = 0; i < nsrcs; i++) {
- ND_TCHECK_LEN(bp + 28 + (i * sizeof(struct in6_addr)),
- sizeof(struct in6_addr));
- ND_PRINT(" %s", ip6addr_string(ndo, bp + 28 + (i * sizeof(struct in6_addr))));
+ ND_TCHECK_LEN(bp + 28 + (i * sizeof(nd_ipv6)),
+ sizeof(nd_ipv6));
+ ND_PRINT(" %s", ip6addr_string(ndo, bp + 28 + (i * sizeof(nd_ipv6))));
}
ND_PRINT(" }");
} else
switch (EXTRACT_U_1(ni6->ni_code)) {
case ICMP6_NI_SUBJ_IPV6:
- if (!ND_TTEST_LEN(dp, sizeof(*ni6) + sizeof(struct in6_addr)))
+ if (!ND_TTEST_LEN(dp, sizeof(*ni6) + sizeof(nd_ipv6)))
break;
- if (siz != sizeof(*ni6) + sizeof(struct in6_addr)) {
+ if (siz != sizeof(*ni6) + sizeof(nd_ipv6)) {
if (ndo->ndo_vflag)
ND_PRINT(", invalid subject len");
break;
dnsname_print(ndo, cp, ep);
break;
case ICMP6_NI_SUBJ_IPV4:
- if (!ND_TTEST_LEN(dp, sizeof(*ni6) + sizeof(struct in_addr)))
+ if (!ND_TTEST_LEN(dp, sizeof(*ni6) + sizeof(nd_ipv4)))
break;
- if (siz != sizeof(*ni6) + sizeof(struct in_addr)) {
+ if (siz != sizeof(*ni6) + sizeof(nd_ipv4)) {
if (ndo->ndo_vflag)
ND_PRINT(", invalid subject len");
break;
ND_PRINT("node addresses");
i = sizeof(*ni6);
while (i < siz) {
- if (i + sizeof(uint32_t) + sizeof(struct in6_addr) > siz)
+ if (i + sizeof(uint32_t) + sizeof(nd_ipv6) > siz)
break;
ND_PRINT(" %s(%u)",
ip6addr_string(ndo, bp + i + sizeof(uint32_t)),
EXTRACT_BE_U_4(bp + i));
- i += sizeof(uint32_t) + sizeof(struct in6_addr);
+ i += sizeof(uint32_t) + sizeof(nd_ipv6);
}
i = EXTRACT_BE_U_2(ni6->ni_flags);
if (!i)
done:
trunc:
- UNALIGNED_MEMCPY(dst, dst_addr, sizeof(struct in6_addr));
+ UNALIGNED_MEMCPY(dst, dst_addr, sizeof(nd_ipv6));
}
/*
switch (IP_V(ip)) {
case 4:
cookiecache[ninitiator].version = 4;
- UNALIGNED_MEMCPY(&cookiecache[ninitiator].iaddr.in4, &ip->ip_src, sizeof(struct in_addr));
- UNALIGNED_MEMCPY(&cookiecache[ninitiator].raddr.in4, &ip->ip_dst, sizeof(struct in_addr));
+ UNALIGNED_MEMCPY(&cookiecache[ninitiator].iaddr.in4, &ip->ip_src, sizeof(nd_ipv4));
+ UNALIGNED_MEMCPY(&cookiecache[ninitiator].raddr.in4, &ip->ip_dst, sizeof(nd_ipv4));
break;
case 6:
ip6 = (const struct ip6_hdr *)bp2;
cookiecache[ninitiator].version = 6;
- UNALIGNED_MEMCPY(&cookiecache[ninitiator].iaddr.in6, &ip6->ip6_src, sizeof(struct in6_addr));
- UNALIGNED_MEMCPY(&cookiecache[ninitiator].raddr.in6, &ip6->ip6_dst, sizeof(struct in6_addr));
+ UNALIGNED_MEMCPY(&cookiecache[ninitiator].iaddr.in6, &ip6->ip6_src, sizeof(nd_ipv6));
+ UNALIGNED_MEMCPY(&cookiecache[ninitiator].raddr.in6, &ip6->ip6_dst, sizeof(nd_ipv6));
break;
default:
return;
if (cookiecache[i].version != 4)
return 0;
if (initiator) {
- if (UNALIGNED_MEMCMP(&ip->ip_src, &cookiecache[i].iaddr.in4, sizeof(struct in_addr)) == 0)
+ if (UNALIGNED_MEMCMP(&ip->ip_src, &cookiecache[i].iaddr.in4, sizeof(nd_ipv4)) == 0)
return 1;
} else {
- if (UNALIGNED_MEMCMP(&ip->ip_src, &cookiecache[i].raddr.in4, sizeof(struct in_addr)) == 0)
+ if (UNALIGNED_MEMCMP(&ip->ip_src, &cookiecache[i].raddr.in4, sizeof(nd_ipv4)) == 0)
return 1;
}
break;
return 0;
ip6 = (const struct ip6_hdr *)bp2;
if (initiator) {
- if (UNALIGNED_MEMCMP(&ip6->ip6_src, &cookiecache[i].iaddr.in6, sizeof(struct in6_addr)) == 0)
+ if (UNALIGNED_MEMCMP(&ip6->ip6_src, &cookiecache[i].iaddr.in6, sizeof(nd_ipv6)) == 0)
return 1;
} else {
- if (UNALIGNED_MEMCMP(&ip6->ip6_src, &cookiecache[i].raddr.in6, sizeof(struct in6_addr)) == 0)
+ if (UNALIGNED_MEMCMP(&ip6->ip6_src, &cookiecache[i].raddr.in6, sizeof(nd_ipv6)) == 0)
return 1;
}
break;
if (len < 8)
ND_PRINT(" len=%u [bad: < 8]", len);
else {
- mask = data + sizeof(struct in_addr);
+ mask = data + sizeof(nd_ipv4);
ND_PRINT(" len=%u %s/%u.%u.%u.%u", len,
ipaddr_string(ndo, data),
EXTRACT_U_1(mask), EXTRACT_U_1(mask + 1),
if (len < 32)
ND_PRINT(" len=%u [bad: < 32]", len);
else {
- mask = (const u_char *)(data + sizeof(struct in6_addr));
+ mask = (const u_char *)(data + sizeof(nd_ipv6));
/*XXX*/
ND_PRINT(" len=%u %s/0x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", len,
ip6addr_string(ndo, data),
else {
ND_PRINT(" len=%u %s-%s", len,
ipaddr_string(ndo, data),
- ipaddr_string(ndo, data + sizeof(struct in_addr)));
+ ipaddr_string(ndo, data + sizeof(nd_ipv4)));
}
len = 0;
break;
else {
ND_PRINT(" len=%u %s-%s", len,
ip6addr_string(ndo, data),
- ip6addr_string(ndo, data + sizeof(struct in6_addr)));
+ ip6addr_string(ndo, data + sizeof(nd_ipv6)));
}
len = 0;
break;
break;
case ISIS_SUBTLV_EXT_IS_REACH_IPV4_INTF_ADDR:
case ISIS_SUBTLV_EXT_IS_REACH_IPV4_NEIGHBOR_ADDR:
- if (subtlv_len >= sizeof(struct in_addr))
+ if (subtlv_len >= sizeof(nd_ipv4))
ND_PRINT(", %s", ipaddr_string(ndo, tptr));
break;
case ISIS_SUBTLV_EXT_IS_REACH_MAX_LINK_BW :
const uint8_t *tptr, const char *ident, uint16_t afi)
{
char ident_buffer[20];
- uint8_t prefix[sizeof(struct in6_addr)]; /* shared copy buffer for IPv4 and IPv6 prefixes */
+ uint8_t prefix[sizeof(nd_ipv6)]; /* shared copy buffer for IPv4 and IPv6 prefixes */
u_int metric, status_byte, bit_length, byte_length, sublen, processed, subtlvtype, subtlvlen;
if (!ND_TTEST_4(tptr))
break;
case ISIS_TLV_IP6ADDR:
- while (tmp>=sizeof(struct in6_addr)) {
- ND_TCHECK_LEN(tptr, sizeof(struct in6_addr));
+ while (tmp>=sizeof(nd_ipv6)) {
+ ND_TCHECK_LEN(tptr, sizeof(nd_ipv6));
ND_PRINT("\n\t IPv6 interface address: %s",
ip6addr_string(ndo, tptr));
- tptr += sizeof(struct in6_addr);
- tmp -= sizeof(struct in6_addr);
+ tptr += sizeof(nd_ipv6);
+ tmp -= sizeof(nd_ipv6);
}
break;
case ISIS_TLV_AUTH:
break;
case ISIS_TLV_TE_ROUTER_ID:
- ND_TCHECK_LEN(pptr, sizeof(struct in_addr));
+ ND_TCHECK_LEN(pptr, sizeof(nd_ipv4));
ND_PRINT("\n\t Traffic Engineering Router ID: %s", ipaddr_string(ndo, pptr));
break;
case ISIS_TLV_IPADDR:
- while (tmp>=sizeof(struct in_addr)) {
- ND_TCHECK_LEN(tptr, sizeof(struct in_addr));
+ while (tmp>=sizeof(nd_ipv4)) {
+ ND_TCHECK_LEN(tptr, sizeof(nd_ipv4));
ND_PRINT("\n\t IPv4 interface address: %s", ipaddr_string(ndo, tptr));
- tptr += sizeof(struct in_addr);
- tmp -= sizeof(struct in_addr);
+ tptr += sizeof(nd_ipv4);
+ tmp -= sizeof(nd_ipv4);
}
break;
tptr++;
tmp--;
- if (tmp < sizeof(struct in_addr))
+ if (tmp < sizeof(nd_ipv4))
break;
- ND_TCHECK_LEN(tptr, sizeof(struct in_addr));
+ ND_TCHECK_LEN(tptr, sizeof(nd_ipv4));
ND_PRINT("\n\t IPv4 interface address: %s", ipaddr_string(ndo, tptr));
- tptr+=sizeof(struct in_addr);
- tmp-=sizeof(struct in_addr);
+ tptr+=sizeof(nd_ipv4);
+ tmp-=sizeof(nd_ipv4);
- if (tmp < sizeof(struct in_addr))
+ if (tmp < sizeof(nd_ipv4))
break;
- ND_TCHECK_LEN(tptr, sizeof(struct in_addr));
+ ND_TCHECK_LEN(tptr, sizeof(nd_ipv4));
ND_PRINT("\n\t IPv4 neighbor address: %s", ipaddr_string(ndo, tptr));
- tptr+=sizeof(struct in_addr);
- tmp-=sizeof(struct in_addr);
+ tptr+=sizeof(nd_ipv4);
+ tmp-=sizeof(nd_ipv4);
while (tmp>=4) {
ND_TCHECK_4(tptr);
tok2str(af_values, "Unknown (%u)", af));
switch (af) {
case AFNUM_INET:
- while(tlv_tlen >= sizeof(struct in_addr)) {
- ND_TCHECK_LEN(tptr, sizeof(struct in_addr));
+ while(tlv_tlen >= sizeof(nd_ipv4)) {
+ ND_TCHECK_LEN(tptr, sizeof(nd_ipv4));
ND_PRINT(" %s", ipaddr_string(ndo, tptr));
- tlv_tlen-=sizeof(struct in_addr);
- tptr+=sizeof(struct in_addr);
+ tlv_tlen-=sizeof(nd_ipv4);
+ tptr+=sizeof(nd_ipv4);
}
break;
case AFNUM_INET6:
- while(tlv_tlen >= sizeof(struct in6_addr)) {
- ND_TCHECK_LEN(tptr, sizeof(struct in6_addr));
+ while(tlv_tlen >= sizeof(nd_ipv6)) {
+ ND_TCHECK_LEN(tptr, sizeof(nd_ipv6));
ND_PRINT(" %s", ip6addr_string(ndo, tptr));
- tlv_tlen-=sizeof(struct in6_addr);
- tptr+=sizeof(struct in6_addr);
+ tlv_tlen-=sizeof(nd_ipv6);
+ tptr+=sizeof(nd_ipv6);
}
break;
default:
if (l < 4)
return -1;
ND_PRINT(" %s", ipaddr_string(ndo, p));
- p += sizeof(struct in_addr);
+ p += sizeof(nd_ipv4);
break;
case 2: /* IPv6 */
if (l < 16)
return -1;
ND_PRINT(" %s", ip6addr_string(ndo, p));
- p += sizeof(struct in6_addr);
+ p += sizeof(nd_ipv6);
break;
default:
ND_PRINT(" %u/", EXTRACT_BE_U_4(ap->family));
ND_PRINT("\n\t neighbor\n\t\t");
neighbor = 1;
- while (hello_len >= sizeof(struct in_addr)) {
+ while (hello_len >= sizeof(nd_ipv4)) {
- if (!ND_TTEST_LEN(msg_data, sizeof(struct in_addr)))
+ if (!ND_TTEST_LEN(msg_data, sizeof(nd_ipv4)))
return (-1);
/* print 4 neighbors per line */
ND_PRINT("%s%s", ipaddr_string(ndo, msg_data),
neighbor % 4 == 0 ? "\n\t\t" : " ");
- msg_data += sizeof(struct in_addr);
- hello_len -= sizeof(struct in_addr);
+ msg_data += sizeof(nd_ipv4);
+ hello_len -= sizeof(nd_ipv4);
}
return (0);
}
case OLSR_MID_MSG:
{
- size_t addr_size = sizeof(struct in_addr);
+ size_t addr_size = sizeof(nd_ipv4);
if (is_ipv6)
- addr_size = sizeof(struct in6_addr);
+ addr_size = sizeof(nd_ipv6);
while (msg_tlen >= addr_size) {
ND_TCHECK_LEN(msg_data, addr_size);
} llsa_priandopt;
#define llsa_priority llsa_priandopt.pri
#define llsa_options llsa_priandopt.opt
- struct in6_addr llsa_lladdr;
+ nd_ipv6 llsa_lladdr;
nd_uint32_t llsa_nprefix;
struct lsa6_prefix llsa_prefix[1];
} un_llsa;
lsa_length -= sizeof (*lsapp) - IPV6_ADDR_LEN_BYTES;
ND_TCHECK_LEN(lsapp, sizeof(*lsapp) - IPV6_ADDR_LEN_BYTES);
wordlen = (EXTRACT_U_1(lsapp->lsa_p_len) + 31) / 32;
- if (wordlen * 4 > sizeof(struct in6_addr)) {
+ if (wordlen * 4 > sizeof(nd_ipv6)) {
ND_PRINT(" bogus prefixlen /%u", EXTRACT_U_1(lsapp->lsa_p_len));
goto trunc;
}
tptr += bytelen;
if ((flags32 & ASLA_FLAG_FWDADDR) != 0) {
- const struct in6_addr *fwdaddr6;
+ const nd_ipv6 *fwdaddr6;
- fwdaddr6 = (const struct in6_addr *)tptr;
+ fwdaddr6 = (const nd_ipv6 *)tptr;
if (lsa_length < sizeof (*fwdaddr6))
return (1);
lsa_length -= sizeof (*fwdaddr6);
switch (EXTRACT_BE_U_2(spm->pgms_nla_afi)) {
case AFNUM_INET:
- ND_TCHECK_LEN(bp, sizeof(struct in_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv4));
addrtostr(bp, nla_buf, sizeof(nla_buf));
- bp += sizeof(struct in_addr);
+ bp += sizeof(nd_ipv4);
break;
case AFNUM_INET6:
- ND_TCHECK_LEN(bp, sizeof(struct in6_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv6));
addrtostr6(bp, nla_buf, sizeof(nla_buf));
- bp += sizeof(struct in6_addr);
+ bp += sizeof(nd_ipv6);
break;
default:
goto trunc;
switch (EXTRACT_BE_U_2(polr->pgmp_nla_afi)) {
case AFNUM_INET:
- ND_TCHECK_LEN(bp, sizeof(struct in_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv4));
addrtostr(bp, nla_buf, sizeof(nla_buf));
- bp += sizeof(struct in_addr);
+ bp += sizeof(nd_ipv4);
break;
case AFNUM_INET6:
- ND_TCHECK_LEN(bp, sizeof(struct in6_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv6));
addrtostr6(bp, nla_buf, sizeof(nla_buf));
- bp += sizeof(struct in6_addr);
+ bp += sizeof(nd_ipv6);
break;
default:
goto trunc;
*/
switch (EXTRACT_BE_U_2(nak->pgmn_source_afi)) {
case AFNUM_INET:
- ND_TCHECK_LEN(bp, sizeof(struct in_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv4));
addrtostr(bp, source_buf, sizeof(source_buf));
- bp += sizeof(struct in_addr);
+ bp += sizeof(nd_ipv4);
break;
case AFNUM_INET6:
- ND_TCHECK_LEN(bp, sizeof(struct in6_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv6));
addrtostr6(bp, source_buf, sizeof(source_buf));
- bp += sizeof(struct in6_addr);
+ bp += sizeof(nd_ipv6);
break;
default:
goto trunc;
ND_TCHECK_2(bp);
switch (EXTRACT_BE_U_2(bp)) {
case AFNUM_INET:
- ND_TCHECK_LEN(bp, sizeof(struct in_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv4));
addrtostr(bp, group_buf, sizeof(group_buf));
- bp += sizeof(struct in_addr);
+ bp += sizeof(nd_ipv4);
break;
case AFNUM_INET6:
- ND_TCHECK_LEN(bp, sizeof(struct in6_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv6));
addrtostr6(bp, group_buf, sizeof(group_buf));
- bp += sizeof(struct in6_addr);
+ bp += sizeof(nd_ipv6);
break;
default:
goto trunc;
bp += 2+2;
switch (nla_afnum) {
case AFNUM_INET:
- if (opt_len != PGM_OPT_REDIRECT_FIXED_LEN + sizeof(struct in_addr)) {
+ if (opt_len != PGM_OPT_REDIRECT_FIXED_LEN + sizeof(nd_ipv4)) {
ND_PRINT("[Bad OPT_REDIRECT option, length %u != %u + address size]",
opt_len, PGM_OPT_REDIRECT_FIXED_LEN);
return;
}
- ND_TCHECK_LEN(bp, sizeof(struct in_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv4));
addrtostr(bp, nla_buf, sizeof(nla_buf));
- bp += sizeof(struct in_addr);
- opts_len -= PGM_OPT_REDIRECT_FIXED_LEN + sizeof(struct in_addr);
+ bp += sizeof(nd_ipv4);
+ opts_len -= PGM_OPT_REDIRECT_FIXED_LEN + sizeof(nd_ipv4);
break;
case AFNUM_INET6:
- if (opt_len != PGM_OPT_REDIRECT_FIXED_LEN + sizeof(struct in6_addr)) {
+ if (opt_len != PGM_OPT_REDIRECT_FIXED_LEN + sizeof(nd_ipv6)) {
ND_PRINT("[Bad OPT_REDIRECT option, length %u != %u + address size]",
PGM_OPT_REDIRECT_FIXED_LEN, opt_len);
return;
}
- ND_TCHECK_LEN(bp, sizeof(struct in6_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv6));
addrtostr6(bp, nla_buf, sizeof(nla_buf));
- bp += sizeof(struct in6_addr);
- opts_len -= PGM_OPT_REDIRECT_FIXED_LEN + sizeof(struct in6_addr);
+ bp += sizeof(nd_ipv6);
+ opts_len -= PGM_OPT_REDIRECT_FIXED_LEN + sizeof(nd_ipv6);
break;
default:
goto trunc;
bp += 2+2;
switch (nla_afnum) {
case AFNUM_INET:
- if (opt_len != PGM_OPT_PGMCC_DATA_FIXED_LEN + sizeof(struct in_addr)) {
+ if (opt_len != PGM_OPT_PGMCC_DATA_FIXED_LEN + sizeof(nd_ipv4)) {
ND_PRINT("[Bad OPT_PGMCC_DATA option, length %u != %u + address size]",
opt_len, PGM_OPT_PGMCC_DATA_FIXED_LEN);
return;
}
- ND_TCHECK_LEN(bp, sizeof(struct in_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv4));
addrtostr(bp, nla_buf, sizeof(nla_buf));
- bp += sizeof(struct in_addr);
- opts_len -= PGM_OPT_PGMCC_DATA_FIXED_LEN + sizeof(struct in_addr);
+ bp += sizeof(nd_ipv4);
+ opts_len -= PGM_OPT_PGMCC_DATA_FIXED_LEN + sizeof(nd_ipv4);
break;
case AFNUM_INET6:
- if (opt_len != PGM_OPT_PGMCC_DATA_FIXED_LEN + sizeof(struct in6_addr)) {
+ if (opt_len != PGM_OPT_PGMCC_DATA_FIXED_LEN + sizeof(nd_ipv6)) {
ND_PRINT("[Bad OPT_PGMCC_DATA option, length %u != %u + address size]",
opt_len, PGM_OPT_PGMCC_DATA_FIXED_LEN);
return;
}
- ND_TCHECK_LEN(bp, sizeof(struct in6_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv6));
addrtostr6(bp, nla_buf, sizeof(nla_buf));
- bp += sizeof(struct in6_addr);
- opts_len -= PGM_OPT_PGMCC_DATA_FIXED_LEN + sizeof(struct in6_addr);
+ bp += sizeof(nd_ipv6);
+ opts_len -= PGM_OPT_PGMCC_DATA_FIXED_LEN + sizeof(nd_ipv6);
break;
default:
goto trunc;
bp += 2+2;
switch (nla_afnum) {
case AFNUM_INET:
- if (opt_len != PGM_OPT_PGMCC_FEEDBACK_FIXED_LEN + sizeof(struct in_addr)) {
+ if (opt_len != PGM_OPT_PGMCC_FEEDBACK_FIXED_LEN + sizeof(nd_ipv4)) {
ND_PRINT("[Bad OPT_PGMCC_FEEDBACK option, length %u != %u + address size]",
opt_len, PGM_OPT_PGMCC_FEEDBACK_FIXED_LEN);
return;
}
- ND_TCHECK_LEN(bp, sizeof(struct in_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv4));
addrtostr(bp, nla_buf, sizeof(nla_buf));
- bp += sizeof(struct in_addr);
- opts_len -= PGM_OPT_PGMCC_FEEDBACK_FIXED_LEN + sizeof(struct in_addr);
+ bp += sizeof(nd_ipv4);
+ opts_len -= PGM_OPT_PGMCC_FEEDBACK_FIXED_LEN + sizeof(nd_ipv4);
break;
case AFNUM_INET6:
- if (opt_len != PGM_OPT_PGMCC_FEEDBACK_FIXED_LEN + sizeof(struct in6_addr)) {
+ if (opt_len != PGM_OPT_PGMCC_FEEDBACK_FIXED_LEN + sizeof(nd_ipv6)) {
ND_PRINT("[Bad OPT_PGMCC_FEEDBACK option, length %u != %u + address size]",
opt_len, PGM_OPT_PGMCC_FEEDBACK_FIXED_LEN);
return;
}
- ND_TCHECK_LEN(bp, sizeof(struct in6_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv6));
addrtostr6(bp, nla_buf, sizeof(nla_buf));
- bp += sizeof(struct in6_addr);
- opts_len -= PGM_OPT_PGMCC_FEEDBACK_FIXED_LEN + sizeof(struct in6_addr);
+ bp += sizeof(nd_ipv6);
+ opts_len -= PGM_OPT_PGMCC_FEEDBACK_FIXED_LEN + sizeof(nd_ipv6);
break;
default:
goto trunc;
return;
}
- if (len < sizeof(struct in_addr))
+ if (len < sizeof(nd_ipv4))
goto trunc;
- ND_TCHECK_LEN(bp, sizeof(struct in_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv4));
if (ndo->ndo_vflag > 1)
ND_PRINT("\n");
ND_PRINT(" Upstream Nbr: %s", ipaddr_string(ndo, bp));
*/
if (len < 4)
goto trunc;
- ND_TCHECK_LEN(bp, sizeof(struct in_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv4));
ND_PRINT("\n\tGroup: %s", ipaddr_string(ndo, bp));
bp += 4;
len -= 4;
if (len < 4)
goto trunc;
- ND_TCHECK_LEN(bp, sizeof(struct in_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv4));
if (EXTRACT_BE_U_4(bp) != 0xffffffff)
ND_PRINT("/%s", ipaddr_string(ndo, bp));
bp += 4;
ipaddr_string(ndo, bp + 24));
break;
case PIMV1_TYPE_REGISTER_STOP:
- ND_TCHECK_LEN(bp + 12, sizeof(struct in_addr));
+ ND_TCHECK_LEN(bp + 12, sizeof(nd_ipv4));
ND_PRINT(" for %s > %s", ipaddr_string(ndo, bp + 8),
ipaddr_string(ndo, bp + 12));
break;
}
break;
case PIMV1_TYPE_ASSERT:
- ND_TCHECK_LEN(bp + 16, sizeof(struct in_addr));
+ ND_TCHECK_LEN(bp + 16, sizeof(nd_ipv4));
ND_PRINT(" for %s > %s", ipaddr_string(ndo, bp + 16),
ipaddr_string(ndo, bp + 8));
if (EXTRACT_BE_U_4(bp + 12) != 0xffffffff)
switch (EXTRACT_U_1(bp)) {
case 1:
af = AF_INET;
- addr_len = (u_int)sizeof(struct in_addr);
+ addr_len = (u_int)sizeof(nd_ipv4);
break;
case 2:
af = AF_INET6;
- addr_len = (u_int)sizeof(struct in6_addr);
+ addr_len = (u_int)sizeof(nd_ipv6);
break;
default:
return -1;
hdrlen = 2;
} else {
switch (addr_len) {
- case sizeof(struct in_addr):
+ case sizeof(nd_ipv4):
af = AF_INET;
break;
- case sizeof(struct in6_addr):
+ case sizeof(nd_ipv6):
af = AF_INET6;
break;
default:
#define RIP6_RESPONSE 2
struct netinfo6 {
- struct in6_addr rip6_dest;
+ nd_ipv6 rip6_dest;
nd_uint16_t rip6_tag;
nd_uint8_t rip6_plen;
nd_uint8_t rip6_metric;
#define HOPCNT_INFINITY6 16
-#if !defined(IN6_IS_ADDR_UNSPECIFIED) && !defined(_MSC_VER) /* MSVC inline */
-static int IN6_IS_ADDR_UNSPECIFIED(const struct in6_addr *addr)
+static int ND_IN6_IS_ADDR_UNSPECIFIED(const nd_ipv6 *addr)
{
static const struct in6_addr in6addr_any; /* :: */
return (memcmp(addr, &in6addr_any, sizeof(*addr)) == 0);
}
-#endif
static int
rip6_entry_print(netdissect_options *ndo, const struct netinfo6 *ni, u_int metric)
if (j == 1) {
ND_TCHECK_SIZE(rp->rip6_nets);
if (EXTRACT_U_1(rp->rip6_nets->rip6_metric) == HOPCNT_INFINITY6
- && IN6_IS_ADDR_UNSPECIFIED(&rp->rip6_nets->rip6_dest)) {
+ && ND_IN6_IS_ADDR_UNSPECIFIED(&rp->rip6_nets->rip6_dest)) {
ND_PRINT(" ripng-req dump");
break;
}
ND_PRINT("%s IPv4 DestAddress: %s, Protocol ID: 0x%02x",
indent,
ipaddr_string(ndo, obj_tptr),
- EXTRACT_U_1(obj_tptr + sizeof(struct in_addr)));
+ EXTRACT_U_1(obj_tptr + sizeof(nd_ipv4)));
ND_PRINT("%s Flags: [0x%02x], DestPort %u",
indent,
EXTRACT_U_1((obj_tptr + 5)),
ND_PRINT("%s IPv6 DestAddress: %s, Protocol ID: 0x%02x",
indent,
ip6addr_string(ndo, obj_tptr),
- EXTRACT_U_1(obj_tptr + sizeof(struct in6_addr)));
+ EXTRACT_U_1(obj_tptr + sizeof(nd_ipv6)));
ND_PRINT("%s Flags: [0x%02x], DestPort %u",
indent,
- EXTRACT_U_1((obj_tptr + sizeof(struct in6_addr) + 1)),
- EXTRACT_BE_U_2(obj_tptr + sizeof(struct in6_addr) + 2));
+ EXTRACT_U_1((obj_tptr + sizeof(nd_ipv6) + 1)),
+ EXTRACT_BE_U_2(obj_tptr + sizeof(nd_ipv6) + 2));
obj_tlen-=20;
obj_tptr+=20;
break;
case RSVP_OBJ_CONFIRM:
switch(rsvp_obj_ctype) {
case RSVP_CTYPE_IPV4:
- if (obj_tlen < sizeof(struct in_addr))
+ if (obj_tlen < sizeof(nd_ipv4))
return -1;
ND_PRINT("%s IPv4 Receiver Address: %s",
indent,
ipaddr_string(ndo, obj_tptr));
- obj_tlen-=sizeof(struct in_addr);
- obj_tptr+=sizeof(struct in_addr);
+ obj_tlen-=sizeof(nd_ipv4);
+ obj_tptr+=sizeof(nd_ipv4);
break;
case RSVP_CTYPE_IPV6:
- if (obj_tlen < sizeof(struct in6_addr))
+ if (obj_tlen < sizeof(nd_ipv6))
return -1;
ND_PRINT("%s IPv6 Receiver Address: %s",
indent,
ip6addr_string(ndo, obj_tptr));
- obj_tlen-=sizeof(struct in6_addr);
- obj_tptr+=sizeof(struct in6_addr);
+ obj_tlen-=sizeof(nd_ipv6);
+ obj_tptr+=sizeof(nd_ipv6);
break;
default:
hexdump=TRUE;
case RSVP_OBJ_NOTIFY_REQ:
switch(rsvp_obj_ctype) {
case RSVP_CTYPE_IPV4:
- if (obj_tlen < sizeof(struct in_addr))
+ if (obj_tlen < sizeof(nd_ipv4))
return -1;
ND_PRINT("%s IPv4 Notify Node Address: %s",
indent,
ipaddr_string(ndo, obj_tptr));
- obj_tlen-=sizeof(struct in_addr);
- obj_tptr+=sizeof(struct in_addr);
+ obj_tlen-=sizeof(nd_ipv4);
+ obj_tptr+=sizeof(nd_ipv4);
break;
case RSVP_CTYPE_IPV6:
- if (obj_tlen < sizeof(struct in6_addr))
+ if (obj_tlen < sizeof(nd_ipv6))
return-1;
ND_PRINT("%s IPv6 Notify Node Address: %s",
indent,
ip6addr_string(ndo, obj_tptr));
- obj_tlen-=sizeof(struct in6_addr);
- obj_tptr+=sizeof(struct in6_addr);
+ obj_tlen-=sizeof(nd_ipv6);
+ obj_tptr+=sizeof(nd_ipv6);
break;
default:
hexdump=TRUE;