Index: share/man/man4/ip6.4 =================================================================== --- share/man/man4/ip6.4 +++ share/man/man4/ip6.4 @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 30, 2021 +.Dd July 24, 2022 .Dt IP6 4 .Os .Sh NAME @@ -156,9 +156,6 @@ .\" .It Dv IPV6_RECVDSTADDR Fa "int *" .\" Get or set the status of whether datagrams are received with .\" destination addresses. -.\" .It Dv IPV6_ORIGDSTADDR Fa "int *" -.\" Get or set the status of whether datagrams are received with -.\" destination addresses and destination ports. .\" .It Dv IPV6_RETOPTS .\" Get or set IPv6 options. .It Dv IPV6_MULTICAST_IF Fa "u_int *" @@ -227,6 +224,31 @@ Drop membership from the associated multicast group. Memberships are automatically dropped when the socket is closed or when the process exits. +.It Dv IPV6_ORIGDSTADDR Fa "int *" +If this option is enabled on a +.Dv SOCK_DGRAM +socket, the +.Xr recvmsg 2 +call will return the destination IP address and destination port for a UDP +datagram. +The +.Vt msg_control +field in the +.Vt msghdr +structure points to a buffer +that contains a +.Vt cmsghdr +structure followed by the +.Tn sockaddr_in6 +structure. +The +.Vt cmsghdr +fields have the following values: +.Bd -literal +cmsg_len = CMSG_LEN(sizeof(struct sockaddr_in6)) +cmsg_level = IPPROTO_IPV6 +cmsg_type = IPV6_ORIGDSTADDR +.Ed .It Dv IPV6_PORTRANGE Fa "int *" Get or set the allocation policy of ephemeral ports for when the kernel automatically binds a local address to this socket.