From patchwork Wed Oct 21 03:08:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yousong Zhou X-Patchwork-Id: 1385303 X-Patchwork-Delegate: yszhou4tech@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.openwrt.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=Xru4NM9Q; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=DwXses+p; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (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) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CGFr21LVtz9sTD for ; Wed, 21 Oct 2020 14:10:57 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=S7ExNDPRshykegB2wvhSmR0KjCHS1OW4PIqKAiw/Q1E=; b=Xru4NM9QnrqINS0wgPRPGKJSP f6CKOv5mM37cwjSTuqs9q2sslExhD74m+VnhOFUHo4H8Xjdu4ziLxq12eHtvg6Toh5qkK2A2v3/T6 D4FKTweY4eq2aKRAApDfKVVed3cCn666KFowamc6BUMvWV7dmNyf2rgk0ev+Qt4FGYqoH0PTz9vI1 LhMj1oIksjw1twSl3ij3acSQIv9SxKfjEGLsvMgdhRkHjdeHbtnx2WkmWIEZyQmnsMh9hJdqD5uEO RVJdLgXpzsX8pg6EC3NIjxfCXVmFx6stuNc7d/vxeKX1GgxS3LoSYUMmrig6oholGD1lop98U2R+D kUgbN62vg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kV4Ua-0006l2-Qs; Wed, 21 Oct 2020 03:08:48 +0000 Received: from mail-pj1-x1041.google.com ([2607:f8b0:4864:20::1041]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kV4UY-0006k2-7o for openwrt-devel@lists.openwrt.org; Wed, 21 Oct 2020 03:08:46 +0000 Received: by mail-pj1-x1041.google.com with SMTP id l2so387141pjt.5 for ; Tue, 20 Oct 2020 20:08:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rmWMVDbDFgySVhBdfHacmMHse99Y2csT7LAiJhl9s6s=; b=DwXses+pcY0Z9HuGrHsbjGHoi+5hSw9RsEbJI7/grSVa0aC9Pv6cDjrPaCbYe/rZ/c KFTQeEh+RD+zyCHNZGzy9/KeZySKPliydw70eGzgMbcFM3xEOYHVwDJxjuSRRSY/1VT0 vFXmCNt8R2DKPfeNJqjPbuqWrpUaP5dNUoqx1pmreQp+YoZjY7bmX8EaUj/UYvRSInXq naE/pKdoSHVWLhPVgImBFNToYu1N5ZTAecLWRhZZY8jAqP+sPYZfFZnKmdptgokwxquU w2w2UmyA/9RE1a2zWa//zlZdGfOiqMF0EgCa3dYIKB11KUTkBsqmpHse6PKc7Wa2TsNz aQ5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rmWMVDbDFgySVhBdfHacmMHse99Y2csT7LAiJhl9s6s=; b=AuwG8olRQqjSXmUkQAQv88Z6a7z5xBS+4i50x/M3Idy/tNukNyLI9UehTrjxWFtpne emJFr1l6hg9nsmqQlagCq6187dTBYHehnxkWBWChZyrZsL4glBSS3uwMkiRxesCG4GIO 1u5+2rUNbbeRtHIkZp1lwuN1/G9lugoX4uyd5kuXVmAUoGu8L0VJHme3zkUvzGJxOWxD 7qtZzBZoCrgaW2JeucL/NeT4NUqOuZedXRyF1sMjOtuOa53H2J/qrPtK56Ms+Nd2YWHf uSSVPetG47aTIEuGc7pBXaLe/FCCc+bipgYmFqoR6H3JFDdiGbpjkMr1jI7Xz0Rf26by cbGQ== X-Gm-Message-State: AOAM533PbWmQrFRIuyk6l/2cvBOl267C334jqfhveLNUzVkhydvwVR2q ytTPp22GpbGGLOeH0uGncfE= X-Google-Smtp-Source: ABdhPJzBGPq2ABRrYV7pXwIJYCxM0I2LnU4SgkHESAMTlmakF7IN+nB1WKZvweg5wrhPcm+YZN7w8Q== X-Received: by 2002:a17:90a:ec11:: with SMTP id l17mr1140953pjy.104.1603249724337; Tue, 20 Oct 2020 20:08:44 -0700 (PDT) Received: from titan.office.yunion.io ([103.119.177.162]) by smtp.gmail.com with ESMTPSA id f7sm376393pfd.111.2020.10.20.20.08.42 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Oct 2020 20:08:43 -0700 (PDT) From: Yousong Zhou To: Felix Fietkau , Hans Dedecker Subject: [PATCH netifd 1/4] build: find and use libnl header dirs Date: Wed, 21 Oct 2020 11:08:22 +0800 Message-Id: <20201021030825.93626-2-yszhou4tech@gmail.com> In-Reply-To: <20201021030825.93626-1-yszhou4tech@gmail.com> References: <20201021030825.93626-1-yszhou4tech@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_230846_285154_D06C9195 X-CRM114-Status: GOOD ( 12.21 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:1041 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [yszhou4tech[at]gmail.com] -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Yousong Zhou , openwrt-devel@lists.openwrt.org Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org Name of the libnl .pc file is libnl-3.0.pc This commit is mainly for testing netifd build of usual Linux systems. netifd Makefile in current OpenWrt build system specifies custom cmake flags to point to libnl-tiny Signed-off-by: Yousong Zhou --- CMakeLists.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d6203aa..9d19817 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,8 +27,12 @@ SET(LIBS ubox ubus uci json-c blobmsg_json) IF (NOT DEFINED LIBNL_LIBS) - FIND_LIBRARY(libnl NAMES libnl-3 libnl nl-3 nl) - SET(LIBNL_LIBS ${libnl}) + include(FindPkgConfig) + pkg_search_module(LIBNL libnl-3.0 libnl-3 libnl nl-3 nl) + IF (LIBNL_FOUND) + include_directories(${LIBNL_INCLUDE_DIRS}) + SET(LIBNL_LIBS ${LIBNL_LIBRARIES}) + ENDIF() ENDIF() IF("${CMAKE_SYSTEM_NAME}" MATCHES "Linux" AND NOT DUMMY_MODE) From patchwork Wed Oct 21 03:08:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yousong Zhou X-Patchwork-Id: 1385307 X-Patchwork-Delegate: yszhou4tech@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.openwrt.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=KulTQ+fW; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=fkPI4Zqe; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (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) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CGFr21bbTz9sTK for ; Wed, 21 Oct 2020 14:10:57 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=7mnL1khhDDN/mMreRtpNP6IQNjwu1Rjs8L7sPAIB1BU=; b=KulTQ+fWaUVjz33lLDqQCEgzy JNhtupqJAMkZWErj5LpoLpZUKK3cr7iJss705maOSUTowSJPZJUvJyXQR6nnQXsYZnEkn5gQWdMDP qOtvz8J8IpjLOzEPmMx22IgW7rmV19itpUNq0Ao3TZRZAgCQg725pREb8UfLeHuZXtuPOVLvpHCrN R7+LjA6oeKXvro7URg7Z2fr2o7VKwAMuareIWN9TinP1BFr+7RC7tM+OshaevyNjNQagwklbgGgxP v8RAK9WvI8B2XP3sdlFJbI5GC3r7WkQZT3e/Kk2NE2hE5KS4psy6uGeug0NsImj926BOkW5XpVXtj BVsHO+Nfg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kV4Ud-0006li-FT; Wed, 21 Oct 2020 03:08:51 +0000 Received: from mail-pg1-x542.google.com ([2607:f8b0:4864:20::542]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kV4Ua-0006kj-Hv for openwrt-devel@lists.openwrt.org; Wed, 21 Oct 2020 03:08:49 +0000 Received: by mail-pg1-x542.google.com with SMTP id t14so607717pgg.1 for ; Tue, 20 Oct 2020 20:08:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9H7wjoLcAPXYkY9+elDVBKQhzBPwhRKOPAxKAZqWqTA=; b=fkPI4Zqe071Bp3BmfDt/ZCCOh2sQ3fEvKmbUj5lS805eQqrLVXPoFLupYllG7HgX2d CCZ2iTcOm9xvNAs55VZ0/w8PcwDb2f3JpMx4rUsBtCdjp7okdfKVllhauZbkLrzwHbSh L432qVBFlxHOyMirR1CCm/3lr/Iz2YV941haUdo86VFD7Et80MJ92v3Vn7JDCcVAL40V k5TnvkvPc85h+r4rNWL+8imGH5K+B7m9yn/UUyIYRZwuF3pNfnBdQWC0pBbQQQHyk6k5 wQ5AOaq6k30q3eMHamOJfueq8FyZ3nEaPCsD7QH49T/FecMVSpu05Xok0seluO0LsBt6 GlJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9H7wjoLcAPXYkY9+elDVBKQhzBPwhRKOPAxKAZqWqTA=; b=N9OLvxzpvEfzRm77AlwWMoXaSXhr+L7ynzFdHQY8MQaZtaN5bEdASt78KGbxetIZWJ Xy914GXAU0uZk65BCDje+O3yPqXRoJeV3hjuBm2OWiplooRlRoOd75B8LeGSBKkD7Eq1 BsKwsCNpwNYtAXgKOJNTBWN4xmB/RDiPTC9J/eP9g/RpLDz3/1RCVDOrz65g+2TlJlh8 S8Xge/2qjT9Rj6lwb/qlVDjJR8AfC04C8jfErVR8bVV7scqfeKuUuP6k2vpgisLaTpjg 9/eddXL05WeOa0/AsZ9YwBzRBOrL8h/HW1LwpR3TUyzcRiMDA1vc6awkBM4qWv9U5azX C8Yw== X-Gm-Message-State: AOAM530Om6earoOH+nc6QYAn16A7907FmL5+EQcD1Y3VQOIA3JqVOycT 5dT2rJTVMuRFrFXGh57VCq8= X-Google-Smtp-Source: ABdhPJyUHXj2RIfXfZJrzcgVeUrGf2C9+8tKHcg6bWItmBVNYO6kkCFx/YfIATbgToJaTgKW2RJ4Xg== X-Received: by 2002:a63:120b:: with SMTP id h11mr1180698pgl.291.1603249726602; Tue, 20 Oct 2020 20:08:46 -0700 (PDT) Received: from titan.office.yunion.io ([103.119.177.162]) by smtp.gmail.com with ESMTPSA id f7sm376393pfd.111.2020.10.20.20.08.44 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Oct 2020 20:08:45 -0700 (PDT) From: Yousong Zhou To: Felix Fietkau , Hans Dedecker Subject: [PATCH netifd 2/4] proto: rework parse_addr to return struct device_addr Date: Wed, 21 Oct 2020 11:08:23 +0800 Message-Id: <20201021030825.93626-3-yszhou4tech@gmail.com> In-Reply-To: <20201021030825.93626-1-yszhou4tech@gmail.com> References: <20201021030825.93626-1-yszhou4tech@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_230848_630403_D04BB82B X-CRM114-Status: GOOD ( 13.77 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:542 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [yszhou4tech[at]gmail.com] -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Yousong Zhou , openwrt-devel@lists.openwrt.org Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org This is a preparation for the next commit to record address index for the returned device_addr struct Signed-off-by: Yousong Zhou Acked-by: Hans Dedecker --- proto.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/proto.c b/proto.c index cbc92b1..d80cae0 100644 --- a/proto.c +++ b/proto.c @@ -116,16 +116,16 @@ alloc_device_addr(bool v6, bool ext) return addr; } -static bool -parse_addr(struct interface *iface, const char *str, bool v6, int mask, - bool ext, uint32_t broadcast, uint32_t ptp, bool deprecated) +static struct device_addr * +parse_addr(const char *str, bool v6, int mask, bool ext, uint32_t broadcast, + uint32_t ptp, bool deprecated) { struct device_addr *addr; int af = v6 ? AF_INET6 : AF_INET; addr = alloc_device_addr(v6, ext); if (!addr) - return false; + return NULL; addr->mask = mask; if (!parse_ip_and_netmask(af, str, &addr->addr, &addr->mask)) @@ -143,14 +143,12 @@ parse_addr(struct interface *iface, const char *str, bool v6, int mask, if (deprecated) addr->preferred_until = system_get_rtime(); - vlist_add(&iface->proto_ip.addr, &addr->node, &addr->flags); - return true; + return addr; error: - interface_add_error(iface, "proto", "INVALID_ADDRESS", &str, 1); free(addr); - return false; + return NULL; } static int @@ -159,6 +157,8 @@ parse_static_address_option(struct interface *iface, struct blob_attr *attr, uint32_t ptp, bool deprecated) { struct blob_attr *cur; + struct device_addr *addr; + const char *str; int n_addr = 0; int rem; @@ -166,10 +166,14 @@ parse_static_address_option(struct interface *iface, struct blob_attr *attr, if (blobmsg_type(cur) != BLOBMSG_TYPE_STRING) return -1; - n_addr++; - if (!parse_addr(iface, blobmsg_data(cur), v6, netmask, ext, - broadcast, ptp, deprecated)) + str = blobmsg_data(cur); + addr = parse_addr(str, v6, netmask, ext, broadcast, ptp, deprecated); + if (addr == NULL) { + interface_add_error(iface, "proto", "INVALID_ADDRESS", &str, 1); return -1; + } + n_addr++; + vlist_add(&iface->proto_ip.addr, &addr->node, &addr->flags); } return n_addr; From patchwork Wed Oct 21 03:08:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yousong Zhou X-Patchwork-Id: 1385306 X-Patchwork-Delegate: yszhou4tech@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.openwrt.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=j7YuwpK7; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=mGJFeh2j; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (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) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CGFr220vYz9sTR for ; Wed, 21 Oct 2020 14:10:58 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=8Y80qXIGc8+Sre0i8R4RIBiFoQaQNKcS6sWP9lELeWA=; b=j7YuwpK7QVQ9D/8iGlqYG09zy OADcadOnKLfkCx7Fqy7bnzz5wAx1owa/tYRusB9LGdRUQ583YNf6Q6rbzjSeSR1FAXLeC8RkCUEE3 NvAwHAplCfHrASq4IFqAVmEyfhNkpVgXcpsrJUjyxmkcRE9AVI0MFSLyZ/ofHSE4jwJ7dBTtSZkqa b1aSRXKSCksD5MjX6565jARHVLWEYOtVxA3DKq3/ZtkmIr3Lb8HFqUF4M/yW7Xwleu8Fiq/68SIGy GQOwfu1iWP+b0rT/e07hmA+Bujr9kue8YMSpc+0OXcq/kg9XeZh2MR0vHxJ3Sx7PyUqlBlrGhi0li X2fqd3Rcw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kV4Ug-0006mw-0O; Wed, 21 Oct 2020 03:08:54 +0000 Received: from mail-pj1-x1044.google.com ([2607:f8b0:4864:20::1044]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kV4Ud-0006lT-1t for openwrt-devel@lists.openwrt.org; Wed, 21 Oct 2020 03:08:51 +0000 Received: by mail-pj1-x1044.google.com with SMTP id gv6so390813pjb.4 for ; Tue, 20 Oct 2020 20:08:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Qt8IIeRmzS6rmmgvBUtUJk9RmJpjmGBKglEHBp5qw6k=; b=mGJFeh2jpfq1zXQzgyJ54u9wUUDEV96YLNcJK+B7i59pC0HIyYZ7ZZudgHllG7r/8i o0o/3/O398/q9+IdCxvL/XCbHd0Hz1X+cTfolYCxIg47lE6UW6D2zs4UVAPXEhQxHsQZ earKYUc4UsxFxNMrrWGOQs/xyX7NCWmIMOzX3guK/K0xTSgCIqO3wkl5knrFosNYStbO 8E1Lsenod5C0oXW8SURk9o/1IAuPjtNr5BOwENnWcUq6p3YstfV6Jb4uNQTmng5haoVz JOmToxORfR0xWl/HNMzQXvJj8OEsKIJeA9PcfstC+j3fxN+L+F7ClgAuM7vWGSArAply Jfog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Qt8IIeRmzS6rmmgvBUtUJk9RmJpjmGBKglEHBp5qw6k=; b=apLOIZ0QA4hJ/PXVKMN6J2ypB6mfLUlMtYZfQRlSOzIabajihFNTRLlUCeUxy6MNtj uGfJmpMDZNpWQximpu1hDIXzRBJMVVIQviB81pJYSVr/6oY2/qC2VDjWF72oHI5HbtT/ 5Y5/4vAV3U82r4n4FP6Xv8RXe+kYlzZ0urE4rmrQTkjO77jMrBm57D79h4TxV4oqj3CL qEjT07YL5vQ1tPrX9Jbh8bcYBTKLGiEcFbuBd4+BqB5gFNAvVqpUYat69UBaM82p+75S bKULWVMvwsRSuN2Xj9Yhz282FXiiEOb5K7FTPmZZkjgxGBsYPIuReAvJdaX4ayjXZunT mXcA== X-Gm-Message-State: AOAM530XAvfJ91a+dCqO3A088Q3nU33zfs1eNlXR4zSn6xsMePSMMjMi DhBap7/iDLvmPmy/3cbJTT4= X-Google-Smtp-Source: ABdhPJyLNhQYUrTlGrDvnZQo96tSIqNZ0lLgECjt8HXmbT6NFcbPl8SVcCj9XuJMtRvpn1cbGjKw0g== X-Received: by 2002:a17:902:ab89:b029:d5:b297:2cc1 with SMTP id f9-20020a170902ab89b02900d5b2972cc1mr1361533plr.7.1603249729114; Tue, 20 Oct 2020 20:08:49 -0700 (PDT) Received: from titan.office.yunion.io ([103.119.177.162]) by smtp.gmail.com with ESMTPSA id f7sm376393pfd.111.2020.10.20.20.08.46 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Oct 2020 20:08:48 -0700 (PDT) From: Yousong Zhou To: Felix Fietkau , Hans Dedecker Subject: [PATCH netifd 3/4] device_addr: record address index as in the blob Date: Wed, 21 Oct 2020 11:08:24 +0800 Message-Id: <20201021030825.93626-4-yszhou4tech@gmail.com> In-Reply-To: <20201021030825.93626-1-yszhou4tech@gmail.com> References: <20201021030825.93626-1-yszhou4tech@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_230851_187579_461956A7 X-CRM114-Status: GOOD ( 11.57 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:1044 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [yszhou4tech[at]gmail.com] -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Yousong Zhou , openwrt-devel@lists.openwrt.org Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org Signed-off-by: Yousong Zhou Acked-by: Hans Dedecker --- interface-ip.h | 1 + proto.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/interface-ip.h b/interface-ip.h index 5ab9299..b17ad94 100644 --- a/interface-ip.h +++ b/interface-ip.h @@ -127,6 +127,7 @@ struct device_addr { struct vlist_node node; bool enabled; bool failed; + int index; unsigned int policy_table; struct device_route subnet; diff --git a/proto.c b/proto.c index d80cae0..f7d27aa 100644 --- a/proto.c +++ b/proto.c @@ -172,6 +172,7 @@ parse_static_address_option(struct interface *iface, struct blob_attr *attr, interface_add_error(iface, "proto", "INVALID_ADDRESS", &str, 1); return -1; } + addr->index = n_addr; n_addr++; vlist_add(&iface->proto_ip.addr, &addr->node, &addr->flags); } @@ -272,6 +273,7 @@ parse_address_list(struct interface *iface, struct blob_attr *attr, bool v6, if (!addr) return -1; + addr->index = n_addr; n_addr++; vlist_add(&iface->proto_ip.addr, &addr->node, &addr->flags); } From patchwork Wed Oct 21 03:08:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yousong Zhou X-Patchwork-Id: 1385304 X-Patchwork-Delegate: yszhou4tech@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.openwrt.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=VS/f3AWx; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=Opy3DYCH; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (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) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CGFr20yLbz9sSG for ; Wed, 21 Oct 2020 14:10:57 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=ZJG4Qf+O45xM25t0zA/OVsh0C5a5UBDl+8NjCtNs5HQ=; b=VS/f3AWxIyNJXLbkBBiIIMCgW liPpIrBkEOLFYERkeaE8VNRCCeopCnDgOm+7ANquq4I38oAO5TCiat1meoSkmpbiYF2r/9r5QfiK+ f9FaSrRyk7SfTvUCTopr3pv10k/BArXev5lpR32SBkot5/rUgv6vl2l998+Lr+Ds3sahxeHvcmpFm b0bJqGs4fvDVgkMkVuW3ZTv1Z+2iMl3guSwuBKCYaVtKLhEUfWXTlAqiTLLsNqAFiS0FOPnlIq8hD pfS4aHlG7/5NKyPK6DLcrPCF8PK99YO1i5XAZ2e/50jSZYC22WL2MvqEz6BJuEBp+AyrjjdgP7bdF QKFpOVsfA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kV4Uh-0006rU-JG; Wed, 21 Oct 2020 03:08:55 +0000 Received: from mail-pl1-x643.google.com ([2607:f8b0:4864:20::643]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kV4Ue-0006m3-VH for openwrt-devel@lists.openwrt.org; Wed, 21 Oct 2020 03:08:53 +0000 Received: by mail-pl1-x643.google.com with SMTP id b19so483412pld.0 for ; Tue, 20 Oct 2020 20:08:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=w76yt4cRilxjp6EQtZqzTyVmLSl+JnOaJNJ4rnQuoaQ=; b=Opy3DYCH7JhErp7F3zGtsNjS0yLyHS8XzwrCOFRuR2TXIuJVWNtoKanHg39hHZJVN+ tJJk0ZVVsDHts1WFo2Km+8zvZctv5LYb/K1oVlC/uoxyl22/hcvkFa5qxHPuFV7fIYeD xy/N5U+9lKgwBiV0fYpHrlLpvePub7PV4KOCWuGTh6OtOE9U8jk4yEBTPikkFyQBSi3A WGXfRNnS5bug3KUXy9WhXPN1BoIAtOPHz1er2kvP6xq2uNJs2jQR9dDOQst2D9i2h6xe uhYdjiljCvcrXE7/6+bClwt3tf/sc/Dv5zOpc8dBruj6YClHBo1of+yRO4MbdBbBZpHr iIhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=w76yt4cRilxjp6EQtZqzTyVmLSl+JnOaJNJ4rnQuoaQ=; b=GJ4XCgq6LtH4Yl8UEBC2KpQpX0w9CeN9KOKIMfdygOErb8WCCwd4ajlzL2iBjqPf9F osR2pjo9wEA175PSgxglW6njNbBT3hl6goW5EesItWUhhXpkOXv6444qT4kr5sshU76T V8eQDPaV0oBczd1nkDpioqWtLhi+rYZOcawArPKDgZDSpyfTpX+67dDNPf8YhW53zmNp i3WVNKyiRQHNH5AnB6Hn/0dJRnS5aVLxT6zgXej3nPqIi9Jt0eQY4cf8hLHkgcT4SQqC tQmPxRIm/AN+nEBMhw6+UpYvZ7O+jp1TUYa7UCXE/KI7VsiypNTNHCOEP3fey0oikd3O ZcEA== X-Gm-Message-State: AOAM531A8ICkJn1v80XagkMHHhUgX3HeB8h80LJ5Qqr/dg8inm+6GlWD 8EhW4qUKar/dOAFe9/dOch4= X-Google-Smtp-Source: ABdhPJxpighuLWvCl3t0CY4dzYXaGs5sGlSbvWd7Q3eviVMXFjsxBMrSyzc3q25L9hBC+c11//Q94A== X-Received: by 2002:a17:90a:2e06:: with SMTP id q6mr1137931pjd.46.1603249731405; Tue, 20 Oct 2020 20:08:51 -0700 (PDT) Received: from titan.office.yunion.io ([103.119.177.162]) by smtp.gmail.com with ESMTPSA id f7sm376393pfd.111.2020.10.20.20.08.49 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Oct 2020 20:08:50 -0700 (PDT) From: Yousong Zhou To: Felix Fietkau , Hans Dedecker Subject: [PATCH netifd 4/4] interface: proto_ip: order by address index first Date: Wed, 21 Oct 2020 11:08:25 +0800 Message-Id: <20201021030825.93626-5-yszhou4tech@gmail.com> In-Reply-To: <20201021030825.93626-1-yszhou4tech@gmail.com> References: <20201021030825.93626-1-yszhou4tech@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_230853_053834_08C0B7A6 X-CRM114-Status: GOOD ( 12.84 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:643 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [yszhou4tech[at]gmail.com] -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Yousong Zhou , openwrt-devel@lists.openwrt.org Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org At the moment, dnsmasq initscript generates dhcp-range for an interface by inspecting first address of that interface from netifd ubus output. Order by address index as specified in the uci config make netifd ubus output consistent with linux network interfaces' primary/secondary address settings. More importantly, the ubus output and dnsmasq config generation will be more predictable. Signed-off-by: Yousong Zhou Acked-by: Hans Dedecker --- interface-ip.c | 11 +++++++++-- proto.c | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/interface-ip.c b/interface-ip.c index f1ed8d3..35834a5 100644 --- a/interface-ip.c +++ b/interface-ip.c @@ -516,8 +516,15 @@ error: static int addr_cmp(const void *k1, const void *k2, void *ptr) { - return memcmp(k1, k2, sizeof(struct device_addr) - - offsetof(struct device_addr, flags)); + const struct device_addr *a1 = k1; + const struct device_addr *a2 = k2; + const int cmp_offset = offsetof(struct device_addr, flags); + const int cmp_size = sizeof(struct device_addr) - cmp_offset; + + if (a1->index != a2->index) { + return a1->index - a2->index; + } + return memcmp(k1+cmp_offset, k2+cmp_offset, cmp_size); } static int diff --git a/proto.c b/proto.c index f7d27aa..01473f2 100644 --- a/proto.c +++ b/proto.c @@ -174,7 +174,7 @@ parse_static_address_option(struct interface *iface, struct blob_attr *attr, } addr->index = n_addr; n_addr++; - vlist_add(&iface->proto_ip.addr, &addr->node, &addr->flags); + vlist_add(&iface->proto_ip.addr, &addr->node, addr); } return n_addr; @@ -275,7 +275,7 @@ parse_address_list(struct interface *iface, struct blob_attr *attr, bool v6, addr->index = n_addr; n_addr++; - vlist_add(&iface->proto_ip.addr, &addr->node, &addr->flags); + vlist_add(&iface->proto_ip.addr, &addr->node, addr); } return n_addr;