From owner-freebsd-net@freebsd.org Tue Oct 13 12:50:42 2020 Return-Path: Delivered-To: freebsd-net@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 242FF441E21 for ; Tue, 13 Oct 2020 12:50:42 +0000 (UTC) (envelope-from lew@donzis.com) Received: from smtp-gw.pt.net (smtp-gw.pt.net [206.210.194.15]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp-gw.pt.net", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4C9b4d2BkPz3TBw for ; Tue, 13 Oct 2020 12:50:40 +0000 (UTC) (envelope-from lew@donzis.com) X-ASG-Debug-ID: 1602593434-09411a2d092413c0001-QdxwpM Received: from mail.pt.net (mail.pt.net [206.210.194.11]) by smtp-gw.pt.net with ESMTP id RLq2PYzWm9pf4che (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Tue, 13 Oct 2020 07:50:34 -0500 (CDT) X-Barracuda-Envelope-From: lew@donzis.com X-Barracuda-Effective-Source-IP: mail.pt.net[206.210.194.11] X-Barracuda-Apparent-Source-IP: 206.210.194.11 Received: from localhost (localhost [IPv6:::1]) by mail.pt.net (Postfix) with ESMTP id 1681384296C for ; Tue, 13 Oct 2020 07:50:34 -0500 (CDT) Received: from mail.pt.net ([IPv6:::1]) by localhost (mail.pt.net [IPv6:::1]) (amavisd-new, port 10032) with ESMTP id wkiMT5wQ_495 for ; Tue, 13 Oct 2020 07:50:33 -0500 (CDT) Received: from localhost (localhost [IPv6:::1]) by mail.pt.net (Postfix) with ESMTP id D6027842A60 for ; Tue, 13 Oct 2020 07:50:33 -0500 (CDT) X-Virus-Scanned: amavisd-new at pt.net Received: from mail.pt.net ([IPv6:::1]) by localhost (mail.pt.net [IPv6:::1]) (amavisd-new, port 10026) with ESMTP id UdIz1YSzQMGD for ; Tue, 13 Oct 2020 07:50:33 -0500 (CDT) Received: from mail.pt.net (mail.pt.net [206.210.194.11]) by mail.pt.net (Postfix) with ESMTP id A7B1284296C for ; Tue, 13 Oct 2020 07:50:33 -0500 (CDT) Date: Tue, 13 Oct 2020 07:50:33 -0500 (CDT) From: Lewis Donzis To: freebsd-net@freebsd.org Message-ID: <575523911.10588327.1602593433541.JavaMail.zimbra@donzis.com> In-Reply-To: <4DB3A1EB-CC4B-440E-9370-7597EFAAEB38@FreeBSD.org> References: <7166d87e-7547-6be8-42a7-b0957ca4f543@norma.perm.ru> <5FB9EFF9-0D95-4FC6-9469-2FC29D479379@FreeBSD.org> <7cf8b21a-b100-c6d6-fc98-4636386ed8b8@norma.perm.ru> <4DB3A1EB-CC4B-440E-9370-7597EFAAEB38@FreeBSD.org> Subject: IPv6 const addresses MIME-Version: 1.0 X-ASG-Orig-Subj: IPv6 const addresses Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Originating-IP: [206.210.194.11] X-Mailer: Zimbra 8.8.15_GA_3965 (ZimbraWebClient - GC85 (Mac)/8.8.15_GA_3963) Thread-Topic: IPv6 const addresses Thread-Index: zJCiJVP++f1sOXjvKlim/fGAE+yTXQ== X-Barracuda-Connect: mail.pt.net[206.210.194.11] X-Barracuda-Start-Time: 1602593434 X-Barracuda-Encrypted: ECDHE-RSA-AES256-GCM-SHA384 X-Barracuda-URL: https://smtp-gw.pt.net:443/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at pt.net X-Barracuda-Scan-Msg-Size: 1580 X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using global scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=9.0 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.85261 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Rspamd-Queue-Id: 4C9b4d2BkPz3TBw X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of lew@donzis.com designates 206.210.194.15 as permitted sender) smtp.mailfrom=lew@donzis.com X-Spamd-Result: default: False [-2.40 / 15.00]; RCVD_TLS_LAST(0.00)[]; ARC_NA(0.00)[]; HAS_XOIP(0.00)[]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; R_SPF_ALLOW(-0.20)[+mx]; MIME_GOOD(-0.10)[text/plain]; TO_DN_NONE(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-net@freebsd.org]; RCPT_COUNT_ONE(0.00)[1]; NEURAL_HAM_LONG(-1.03)[-1.028]; DMARC_NA(0.00)[perftech.com]; NEURAL_HAM_SHORT(-0.48)[-0.483]; NEURAL_HAM_MEDIUM(-0.89)[-0.894]; FORGED_SENDER(0.30)[lew@perftech.com,lew@donzis.com]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:3549, ipnet:206.210.192.0/19, country:US]; RCVD_COUNT_SEVEN(0.00)[7]; FROM_NEQ_ENVFROM(0.00)[lew@perftech.com,lew@donzis.com]; MAILMAN_DEST(0.00)[freebsd-net] X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Oct 2020 12:50:42 -0000 Hello. It appears that there are some missing definitions for a couple of the "const struct in6_addr" values that are included in in6.h. Here are the relevant declarations in /usr/include/netinet6/in6.h: extern const struct in6_addr in6addr_any; extern const struct in6_addr in6addr_loopback; extern const struct in6_addr in6addr_nodelocal_allnodes; extern const struct in6_addr in6addr_linklocal_allnodes; extern const struct in6_addr in6addr_linklocal_allrouters; extern const struct in6_addr in6addr_linklocal_allv2routers; However, here are the definitions in /usr/src/lib/libc/net/vars.c: const struct in6_addr in6addr_any = IN6ADDR_ANY_INIT; const struct in6_addr in6addr_loopback = IN6ADDR_LOOPBACK_INIT; const struct in6_addr in6addr_nodelocal_allnodes = IN6ADDR_NODELOCAL_ALLNODES_INIT; const struct in6_addr in6addr_linklocal_allnodes = IN6ADDR_LINKLOCAL_ALLNODES_INIT; As you can see, in6addr_linklocal_allrouters and in6addr_linklocal_allv2routers are missing. Attempting to use the missing definitions results in a linker error because they are declared properly. The static initializer values are defined in /usr/include/netinet6/in6.h: #define IN6ADDR_ANY_INIT \ #define IN6ADDR_LOOPBACK_INIT \ #define IN6ADDR_NODELOCAL_ALLNODES_INIT \ #define IN6ADDR_INTFACELOCAL_ALLNODES_INIT \ #define IN6ADDR_LINKLOCAL_ALLNODES_INIT \ #define IN6ADDR_LINKLOCAL_ALLROUTERS_INIT \ #define IN6ADDR_LINKLOCAL_ALLV2ROUTERS_INIT \ So it seems a simple matter of adding the two missing ones to /usr/src/lib/libc/net/vars.c. Thanks, lew