Changeset View
Changeset View
Standalone View
Standalone View
sbin/ifconfig/ifvxlan.c
Show First 20 Lines • Show All 122 Lines • ▼ Show 20 Lines | vxlan_status(int s) | ||||
if (getnameinfo(lsa, lsa->sa_len, src, sizeof(src), | if (getnameinfo(lsa, lsa->sa_len, src, sizeof(src), | ||||
srcport, sizeof(srcport), NI_NUMERICHOST | NI_NUMERICSERV) != 0) | srcport, sizeof(srcport), NI_NUMERICHOST | NI_NUMERICSERV) != 0) | ||||
src[0] = srcport[0] = '\0'; | src[0] = srcport[0] = '\0'; | ||||
if (getnameinfo(rsa, rsa->sa_len, dst, sizeof(dst), | if (getnameinfo(rsa, rsa->sa_len, dst, sizeof(dst), | ||||
dstport, sizeof(dstport), NI_NUMERICHOST | NI_NUMERICSERV) != 0) | dstport, sizeof(dstport), NI_NUMERICHOST | NI_NUMERICSERV) != 0) | ||||
dst[0] = dstport[0] = '\0'; | dst[0] = dstport[0] = '\0'; | ||||
if (!ipv6) { | if (!ipv6) { | ||||
struct sockaddr_in *sin = (struct sockaddr_in *)rsa; | struct sockaddr_in *sin = satosin(rsa); | ||||
mc = IN_MULTICAST(ntohl(sin->sin_addr.s_addr)); | mc = IN_MULTICAST(ntohl(sin->sin_addr.s_addr)); | ||||
} else { | } else { | ||||
struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)rsa; | struct sockaddr_in6 *sin6 = satosin6(rsa); | ||||
mc = IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr); | mc = IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr); | ||||
} | } | ||||
printf("\tvxlan vni %d", vni); | printf("\tvxlan vni %d", vni); | ||||
printf(" local %s%s%s:%s", ipv6 ? "[" : "", src, ipv6 ? "]" : "", | printf(" local %s%s%s:%s", ipv6 ? "[" : "", src, ipv6 ? "]" : "", | ||||
srcport); | srcport); | ||||
printf(" %s %s%s%s:%s", mc ? "group" : "remote", ipv6 ? "[" : "", | printf(" %s %s%s%s:%s", mc ? "group" : "remote", ipv6 ? "[" : "", | ||||
dst, ipv6 ? "]" : "", dstport); | dst, ipv6 ? "]" : "", dstport); | ||||
▲ Show 20 Lines • Show All 87 Lines • ▼ Show 20 Lines | if ((error = getaddrinfo(addr, NULL, NULL, &ai)) != 0) | ||||
errx(1, "error in parsing local address string: %s", | errx(1, "error in parsing local address string: %s", | ||||
gai_strerror(error)); | gai_strerror(error)); | ||||
sa = ai->ai_addr; | sa = ai->ai_addr; | ||||
switch (ai->ai_family) { | switch (ai->ai_family) { | ||||
#ifdef INET | #ifdef INET | ||||
case AF_INET: { | case AF_INET: { | ||||
struct sockaddr_in *sin = (struct sockaddr_in *)sa; | struct sockaddr_in *sin = satosin(sa); | ||||
if (IN_MULTICAST(ntohl(sin->sin_addr.s_addr))) | if (IN_MULTICAST(ntohl(sin->sin_addr.s_addr))) | ||||
errx(1, "local address cannot be multicast"); | errx(1, "local address cannot be multicast"); | ||||
cmd.vxlcmd_sa.in4 = *sin; | cmd.vxlcmd_sa.in4 = *sin; | ||||
break; | break; | ||||
} | } | ||||
#endif | #endif | ||||
#ifdef INET6 | #ifdef INET6 | ||||
case AF_INET6: { | case AF_INET6: { | ||||
struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)sa; | struct sockaddr_in6 *sin6 = satosin6(sa); | ||||
if (IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)) | if (IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)) | ||||
errx(1, "local address cannot be multicast"); | errx(1, "local address cannot be multicast"); | ||||
cmd.vxlcmd_sa.in6 = *sin6; | cmd.vxlcmd_sa.in6 = *sin6; | ||||
break; | break; | ||||
} | } | ||||
#endif | #endif | ||||
Show All 32 Lines | if ((error = getaddrinfo(addr, NULL, NULL, &ai)) != 0) | ||||
errx(1, "error in parsing remote address string: %s", | errx(1, "error in parsing remote address string: %s", | ||||
gai_strerror(error)); | gai_strerror(error)); | ||||
sa = ai->ai_addr; | sa = ai->ai_addr; | ||||
switch (ai->ai_family) { | switch (ai->ai_family) { | ||||
#ifdef INET | #ifdef INET | ||||
case AF_INET: { | case AF_INET: { | ||||
struct sockaddr_in *sin = (struct sockaddr_in *)sa; | struct sockaddr_in *sin = satosin(sa); | ||||
if (IN_MULTICAST(ntohl(sin->sin_addr.s_addr))) | if (IN_MULTICAST(ntohl(sin->sin_addr.s_addr))) | ||||
errx(1, "remote address cannot be multicast"); | errx(1, "remote address cannot be multicast"); | ||||
cmd.vxlcmd_sa.in4 = *sin; | cmd.vxlcmd_sa.in4 = *sin; | ||||
break; | break; | ||||
} | } | ||||
#endif | #endif | ||||
#ifdef INET6 | #ifdef INET6 | ||||
case AF_INET6: { | case AF_INET6: { | ||||
struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)sa; | struct sockaddr_in6 *sin6 = satosin6(sa); | ||||
if (IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)) | if (IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)) | ||||
errx(1, "remote address cannot be multicast"); | errx(1, "remote address cannot be multicast"); | ||||
cmd.vxlcmd_sa.in6 = *sin6; | cmd.vxlcmd_sa.in6 = *sin6; | ||||
break; | break; | ||||
} | } | ||||
#endif | #endif | ||||
Show All 32 Lines | if ((error = getaddrinfo(addr, NULL, NULL, &ai)) != 0) | ||||
errx(1, "error in parsing group address string: %s", | errx(1, "error in parsing group address string: %s", | ||||
gai_strerror(error)); | gai_strerror(error)); | ||||
sa = ai->ai_addr; | sa = ai->ai_addr; | ||||
switch (ai->ai_family) { | switch (ai->ai_family) { | ||||
#ifdef INET | #ifdef INET | ||||
case AF_INET: { | case AF_INET: { | ||||
struct sockaddr_in *sin = (struct sockaddr_in *)sa; | struct sockaddr_in *sin = satosin(sa); | ||||
if (!IN_MULTICAST(ntohl(sin->sin_addr.s_addr))) | if (!IN_MULTICAST(ntohl(sin->sin_addr.s_addr))) | ||||
errx(1, "group address must be multicast"); | errx(1, "group address must be multicast"); | ||||
cmd.vxlcmd_sa.in4 = *sin; | cmd.vxlcmd_sa.in4 = *sin; | ||||
break; | break; | ||||
} | } | ||||
#endif | #endif | ||||
#ifdef INET6 | #ifdef INET6 | ||||
case AF_INET6: { | case AF_INET6: { | ||||
struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)sa; | struct sockaddr_in6 *sin6 = satosin6(sa); | ||||
if (!IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)) | if (!IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)) | ||||
errx(1, "group address must be multicast"); | errx(1, "group address must be multicast"); | ||||
cmd.vxlcmd_sa.in6 = *sin6; | cmd.vxlcmd_sa.in6 = *sin6; | ||||
break; | break; | ||||
} | } | ||||
#endif | #endif | ||||
▲ Show 20 Lines • Show All 268 Lines • Show Last 20 Lines |