From patchwork Mon Dec 4 06:04:06 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: wu wendy X-Patchwork-Id: 844126 X-Patchwork-Delegate: blogic@openwrt.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=65.50.211.133; helo=bombadil.infradead.org; envelope-from=lede-dev-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="K2BW2Yw1"; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=163.com header.i=@163.com header.b="TO19IhuZ"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3yqvVr117Yz9sNV for ; Mon, 4 Dec 2017 17:05:24 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Subject:Message-Id: Date:To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=KX7nmQ/Q3/Y91CKKveSbj5e0VPPfz187AMMnDC6BtHs=; b=K2BW2Yw1TLzuaO GFZ9qixvRLyJoJv9D38dkrVeu8NWG1b8Q0rBkZmVw3J4CT2O8q8rFSlX5mqCaa2XYkFdBmcntg763 I9I2GJ9bfUn461uzQg5ReyLXc2Tum6OQBmktyJxspkL3X/B9WvJ1BjAQp72ihFonpxEyq+SLjAQCn eBGg9k/2VbhUgOU8pwOkDLTLiQXW4fc2y7jZ0/9y9wR3QneyCQES5YEiz+KIPk2xP9itBMfr9hvBI xYLxjm6V9f+QOUfadRJ3UBGNoowoZdyLka/CnD9INBqWKASAGsoBGL4dbvQxFEbXQGNkjM1GrQkEF sYm3QkxClN7s3Y7y/r+Q==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1eLjsP-0007VD-Dv; Mon, 04 Dec 2017 06:05:13 +0000 Received: from mail-proxy905.ym.163.com ([43.230.90.5] helo=proxy90-5.mail.163.com) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1eLjrz-0007UF-V1 for lede-dev@lists.infradead.org; Mon, 04 Dec 2017 06:04:50 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-Id; bh=Jbq5gKiJ/n/HOwQQ50 u+ZiRRFu/TGdJRpzlUHQHByzI=; b=TO19IhuZ48IlWDVPXGBpD6j3eoGl2kfeTY NcVz6viq3CRDxDkCIb0YcegIZQnKXMq22f7Z+Ki2tzePb51W0oZxgl9YG89IJE6R mzVjIYTMrudqpKCB8s0QLTOfK0NiLW1D2kaJFZZh51jFIqPm0ziWKGuY+G3CzXDB /K9n28I0s= Received: from wendy-OptiPlex-7040.lan (unknown [124.206.234.254]) by smtp12 (Coremail) with SMTP id EMCowABXhi5X5SRatPhKCQ--.32980S2; Mon, 04 Dec 2017 14:04:07 +0800 (CST) From: wendy2001011@163.com To: lede-dev@lists.infradead.org Date: Mon, 4 Dec 2017 14:04:06 +0800 Message-Id: <20171204060406.18216-1-wendy2001011@163.com> X-Mailer: git-send-email 2.15.1 X-CM-TRANSID: EMCowABXhi5X5SRatPhKCQ--.32980S2 X-Coremail-Antispam: 1Uf129KBjvJXoWxAFWfWF1UCryxKw1xXrW8WFg_yoW5trWrpF yfJFW5WayUGFW8Cws5JryxGFySgwnaga10kFyxAa1YkF1rZr90vryv9r1a9FyYkrZay3WY y3srWF1UZr4UCaUanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07UIFAJUUUUU= X-Originating-IP: [124.206.234.254] X-CM-SenderInfo: xzhqv5isqqiiirr6il2tof0z/1tbiTBekEFSIW3u3fAAAsY X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20171203_220448_444572_4DF94BDA X-CRM114-Status: UNSURE ( 5.60 ) X-CRM114-Notice: Please train this message. X-Spam-Score: -1.8 (-) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-1.8 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [43.230.90.5 listed in list.dnswl.org] 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (wendy2001011[at]163.com) 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (wendy2001011[at]163.com) -0.0 SPF_PASS SPF: sender matches SPF record -0.0 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid Subject: [LEDE-DEV] [netifd] Fix incorrect eui64 IPv6 address with ula prefix for br-lan X-BeenThere: lede-dev@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Wendy Wu MIME-Version: 1.0 Sender: "Lede-dev" Errors-To: lede-dev-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Wendy Wu Issue description: Configurate /etc/config/network, Set the ula_prefix in globals section, config globals 'globals' option ula_prefix 'fdc7:8830:f3be::/48' Add the following option in 'lan' interface, option ip6ifaceid 'eui64' Then execute /etc/init.d/network, the br-lan ipv6 address with ula_prefix is incorrect. Result see the following, fdc7:8830:f3be:0:200:ff:fe00:0/64 is incorrect address root@mygateway:~# ifconfig br-lan br-lan Link encap:Ethernet HWaddr E0:B9:E5:66:94:DE inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::e2b9:e5ff:fe66:94de/64 Scope:Link inet6 addr: fdc7:8830:f3be:0:200:ff:fe00:0/64 Scope:Global inet6 addr: 4085:6666:f:e7e0:e2b9:e5ff:fe66:94de/64 Scope:Global UP BROADCAST RUNNING ALLMULTI MULTICAST MTU:1500 Metric:1 RX packets:17 errors:0 dropped:0 overruns:0 frame:0 TX packets:281 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2262 (2.2 KiB) TX bytes:111905 (109.2 KiB) After the fix, fdc7:8830:f3be:0:e2b9:e5ff:fe66:94de/64 is correct address See the following, root@mygateway:~# ifconfig br-lan br-lan Link encap:Ethernet HWaddr E0:B9:E5:66:94:DE inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::e2b9:e5ff:fe66:94de/64 Scope:Link inet6 addr: 4085:6666:f:b130:e2b9:e5ff:fe66:94de/64 Scope:Global inet6 addr: fdc7:8830:f3be:0:e2b9:e5ff:fe66:94de/64 Scope:Global UP BROADCAST RUNNING ALLMULTI MULTICAST MTU:1500 Metric:1 RX packets:2462 errors:0 dropped:0 overruns:0 frame:0 TX packets:31072 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:115038 (112.3 KiB) TX bytes:12676812 (12.0 MiB) Root cause: When eui64 ipv6 address with ula_prefix for br-lan is created, the lan interface setting has not been ready. So The mac address for br-lan is null, and the eui64 address with ula_prefix is incorrect. Solution: Put the ula_prefix global initial part after device pending Signed-off-by: wendy wu --- config.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/config.c b/config.c index 21791af..a494e84 100644 --- a/config.c +++ b/config.c @@ -310,10 +310,6 @@ config_init_globals(void) if (!globals) return; - const char *ula_prefix = uci_lookup_option_string( - uci_ctx, globals, "ula_prefix"); - interface_ip_set_ula_prefix(ula_prefix); - const char *default_ps = uci_lookup_option_string( uci_ctx, globals, "default_ps"); @@ -324,6 +320,21 @@ config_init_globals(void) config_parse_global_ps_val(globals, "default_rps_flow_cnt")); } +static void +config_init_globals_ula(void) +{ + struct uci_section *globals = uci_lookup_section( + uci_ctx, uci_network, "globals"); + if (!globals) + return; + + const char *ula_prefix = uci_lookup_option_string( + uci_ctx, globals, "ula_prefix"); + + interface_ip_set_ula_prefix(ula_prefix); + +} + static void config_parse_wireless_device(struct uci_section *s) { @@ -447,6 +458,7 @@ config_init_all(void) device_reset_old(); device_init_pending(); + config_init_globals_ula(); vlist_flush(&interfaces); device_free_unused(NULL); interface_refresh_assignments(false);