From patchwork Fri Jul 12 13:49:51 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Hoffmann X-Patchwork-Id: 1959914 X-Patchwork-Delegate: hauke@hauke-m.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=iRlzRisK; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=3e8.eu header.i=@3e8.eu header.a=rsa-sha256 header.s=mail20211217 header.b=kNSaOZEi; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.openwrt.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=patchwork.ozlabs.org) Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WLF1D5Wxjz1xqy for ; Sat, 13 Jul 2024 00:52:00 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=1pXZWtFvSjwr1ZkLSfbx1Y49Nl9uhUSupn5uByq7r2w=; b=iRlzRisKgVGarT WJdNIqV9E8lab8G4Oow8JE6KNVaJHyFQRf6nm6+FgeGtjxok+LQi58Nuj0fytt+EUu7g+nvobNx6a jJJKDJaH2ayjwLnJO0tyqd3otjDxmxXHkgOV8RCtDuFCYZ0QUjqy99vMNbZwE2xBjRaezfQZYzrB/ sQY5FqY2lG5Zy0WosNENER55e51P/T8Qa3LSsBy8FLVsXu/gCeJCdGEGRNGb8/bx08e37juFXVN6E P3HwAdlNNJE2ZpvPyfw1LjM+BG9PN8bTtEXFSndSEU78kkE3fY+cMTuQOw4eTljCpOoAjllDFNlJi WyOG9XLA5RDHC+t02H/g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sSHbK-00000000Nve-3puh; Fri, 12 Jul 2024 14:50:22 +0000 Received: from srv5.3e8.eu ([94.16.113.219]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sSHbG-00000000NuB-481x for openwrt-devel@lists.openwrt.org; Fri, 12 Jul 2024 14:50:20 +0000 Received: from localhost.localdomain (p200300c6cf02cba0ae21e636d180025d.dip0.t-ipconnect.de [IPv6:2003:c6:cf02:cba0:ae21:e636:d180:25d]) (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 srv5.3e8.eu (Postfix) with ESMTPSA id 71B90120ACD; Fri, 12 Jul 2024 16:49:33 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=3e8.eu; s=mail20211217; t=1720795773; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EBT9sE4eKtZ/n9YPR7cbmiFIojlByAB2SrxLwsD3aU0=; b=kNSaOZEiaOiCJkWHOphaZ7Gq9dtV0UeEP+XzKW95+ZfJQ+cXAgtijp+GO2avLKiSxx8cX9 p79myiAEY4S1u0dJweU2ZAleLzuOGsaODw0HXjDqbb+KiieHA7re3agFy+VglhgmtjBeK0 deupdfyrEcmMIfnvG+DZtfZhOkV6IACrxpHrSqc8WDtlksBfFhKOrz0IqcN5cGc/xgepS9 l2hMh48VDW4K3ASuK80g2KLd4ayXj6P1KI+lQTsKssiyTbCceKhwjHQ+BSwruz4g4QCv2r AuWCPgLv/JOw5vtruAKJmlr8HULmKGjko3HvT6DEcd4TaGAH/EFUwbWT44+pHQ== From: Jan Hoffmann To: openwrt-devel@lists.openwrt.org Cc: Jan Hoffmann Subject: [PATCH 3/5] ltq-vdsl-vr9-app: always disconnect on exit Date: Fri, 12 Jul 2024 15:49:51 +0200 Message-ID: <20240712144801.1192493-4-jan@3e8.eu> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240712144801.1192493-1-jan@3e8.eu> References: <20240712144801.1192493-1-jan@3e8.eu> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240712_075019_205485_B13F9171 X-CRM114-Status: GOOD ( 15.78 ) X-Spam-Score: -2.1 (--) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Move the code for disconnection on exit to a separate function, and also call it in the code path for the "quit" CLI command. While at it, make the patch description a bit clearer. Signed-off-by: Jan Hoffmann --- .../network/config/ltq-vdsl-vr9-app/Makefile | 2 +- .../patches/200-autoboot.patch | 52 ++++++++++++------- .../patches/201-sigterm.patch | 4 +- .../ltq-vd [...] Content analysis details: (-2.1 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org Move the code for disconnection on exit to a separate function, and also call it in the code path for the "quit" CLI command. While at it, make the patch description a bit clearer. Signed-off-by: Jan Hoffmann --- .../network/config/ltq-vdsl-vr9-app/Makefile | 2 +- .../patches/200-autoboot.patch | 52 ++++++++++++------- .../patches/201-sigterm.patch | 4 +- .../ltq-vdsl-vr9-app/patches/300-ubus.patch | 4 +- 4 files changed, 37 insertions(+), 25 deletions(-) diff --git a/package/network/config/ltq-vdsl-vr9-app/Makefile b/package/network/config/ltq-vdsl-vr9-app/Makefile index e2042bf314d8..51b88231f7e4 100644 --- a/package/network/config/ltq-vdsl-vr9-app/Makefile +++ b/package/network/config/ltq-vdsl-vr9-app/Makefile @@ -9,7 +9,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=ltq-vdsl-vr9-app PKG_VERSION:=4.17.18.6 -PKG_RELEASE:=6 +PKG_RELEASE:=7 PKG_BASE_NAME:=dsl_cpe_control PKG_SOURCE:=$(PKG_BASE_NAME)_vrx-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@OPENWRT diff --git a/package/network/config/ltq-vdsl-vr9-app/patches/200-autoboot.patch b/package/network/config/ltq-vdsl-vr9-app/patches/200-autoboot.patch index d949162f5877..2d3a6a822ead 100644 --- a/package/network/config/ltq-vdsl-vr9-app/patches/200-autoboot.patch +++ b/package/network/config/ltq-vdsl-vr9-app/patches/200-autoboot.patch @@ -1,9 +1,10 @@ This enables automatic connection after the control daemon is started, and also stops the connection on termination. -Using the autoboot restart command is necessary because the stop command -doesn't actually stop the connection, and would also leave the driver in -a state where an explicit start command is necessary to connect again. +Using the autoboot restart command (in combination with configuring the +state machine to wait) is necessary because the stop command doesn't +actually stop the connection, and would also leave the driver in a state +where an explicit start command is necessary to connect again. --- a/src/dsl_cpe_init_cfg.c +++ b/src/dsl_cpe_init_cfg.c @@ -18,25 +19,17 @@ a state where an explicit start command is necessary to connect again. DSL_CPE_LINE_ACTIVATE_CTRL_SET(DSL_G997_INHIBIT_LDSF, DSL_G997_INHIBIT_ACSF, DSL_G997_NORMAL_STARTUP), --- a/src/dsl_cpe_control.c +++ b/src/dsl_cpe_control.c -@@ -6515,10 +6515,13 @@ DSL_CPE_STATIC void DSL_CPE_Termination - DSL_CPE_STATIC DSL_void_t DSL_CPE_Termination (void) - { - #ifdef INCLUDE_DSL_CPE_CLI_SUPPORT -- DSL_int_t nDevice = 0; - DSL_char_t buf[32] = "quit"; - #endif +@@ -6491,6 +6491,57 @@ DSL_int32_t DSL_CPE_DeviceInit ( + return ret; + } ++DSL_CPE_STATIC DSL_void_t DSL_CPE_ShutdownConnection(void) ++{ + DSL_Error_t nRet = DSL_SUCCESS; + DSL_int_t nDevice = 0; + DSL_AutobootConfig_t sAutobootCfg; + DSL_AutobootControl_t sAutobootCtl; - DSL_CPE_Control_Context_t *pCtrlCtx; - - pCtrlCtx = DSL_CPE_GetGlobalContext(); -@@ -6527,6 +6530,50 @@ DSL_CPE_STATIC DSL_void_t DSL_CPE_Termi - pCtrlCtx->bRun = DSL_FALSE; - } - ++ + for (nDevice = 0; nDevice < DSL_CPE_MAX_DSL_ENTITIES; ++nDevice) + { + g_bWaitBeforeConfigWrite[nDevice] = DSL_TRUE; @@ -79,8 +72,27 @@ a state where an explicit start command is necessary to connect again. + } + + DSL_CCA_DEBUG(DSL_CCA_DBG_MSG, (DSL_CPE_PREFIX -+ "Autoboot restart executed" DSL_CPE_CRLF)); ++ "Connection shutdown finished." DSL_CPE_CRLF)); ++} + + /** + Termination handler. Will clean up in case of ctrl-c. +@@ -6521,6 +6572,8 @@ DSL_CPE_STATIC DSL_void_t DSL_CPE_Termi + + DSL_CPE_Control_Context_t *pCtrlCtx; + ++ DSL_CPE_ShutdownConnection(); + - #ifdef INCLUDE_DSL_CPE_CLI_SUPPORT - for (nDevice = 0; nDevice < DSL_CPE_MAX_DSL_ENTITIES; nDevice++) + pCtrlCtx = DSL_CPE_GetGlobalContext(); + if (pCtrlCtx != DSL_NULL) { +@@ -7416,6 +7469,9 @@ void DSL_CPE_main(void) + DSL_CPE_STATIC DSL_Error_t DSL_CPE_Control_Exit (DSL_void_t * pContext) + { + dummy_console_t *pConsole = pContext; ++ ++ DSL_CPE_ShutdownConnection(); ++ + pConsole->bRun = DSL_FALSE; + return DSL_SUCCESS; + } diff --git a/package/network/config/ltq-vdsl-vr9-app/patches/201-sigterm.patch b/package/network/config/ltq-vdsl-vr9-app/patches/201-sigterm.patch index 4e978359835e..5397a139f5a3 100644 --- a/package/network/config/ltq-vdsl-vr9-app/patches/201-sigterm.patch +++ b/package/network/config/ltq-vdsl-vr9-app/patches/201-sigterm.patch @@ -1,6 +1,6 @@ --- a/src/dsl_cpe_control.c +++ b/src/dsl_cpe_control.c -@@ -6504,7 +6504,7 @@ DSL_CPE_STATIC void DSL_CPE_Termination +@@ -6555,7 +6555,7 @@ DSL_CPE_STATIC void DSL_CPE_Termination /* ignore the signal, we'll handle by ourself */ signal (sig, SIG_IGN); @@ -9,7 +9,7 @@ { DSL_CCA_DEBUG(DSL_CCA_DBG_MSG, (DSL_CPE_PREFIX "terminated" DSL_CPE_CRLF)); DSL_CPE_Termination (); -@@ -6803,6 +6803,7 @@ DSL_int_t dsl_cpe_daemon ( +@@ -6809,6 +6809,7 @@ DSL_int_t dsl_cpe_daemon ( #ifndef RTEMS signal (SIGINT, DSL_CPE_TerminationHandler); diff --git a/package/network/config/ltq-vdsl-vr9-app/patches/300-ubus.patch b/package/network/config/ltq-vdsl-vr9-app/patches/300-ubus.patch index d257ca2fc4ab..b0cdaa1bcf04 100644 --- a/package/network/config/ltq-vdsl-vr9-app/patches/300-ubus.patch +++ b/package/network/config/ltq-vdsl-vr9-app/patches/300-ubus.patch @@ -10,7 +10,7 @@ DSL_char_t *g_sFirmwareName1 = DSL_NULL; DSL_FirmwareFeatures_t g_nFwFeatures1 = {DSL_FW_XDSLMODE_CLEANED, DSL_FW_XDSLFEATURE_CLEANED, DSL_FW_XDSLFEATURE_CLEANED}; -@@ -6806,6 +6809,8 @@ DSL_int_t dsl_cpe_daemon ( +@@ -6812,6 +6815,8 @@ DSL_int_t dsl_cpe_daemon ( signal (SIGTERM, DSL_CPE_TerminationHandler); #endif /* RTEMS*/ @@ -19,7 +19,7 @@ /* Open DSL_CPE_MAX_DSL_ENTITIES devices*/ for (nDevice = 0; nDevice < DSL_CPE_MAX_DSL_ENTITIES; nDevice++) { -@@ -7260,6 +7265,7 @@ DSL_int_t dsl_cpe_daemon ( +@@ -7266,6 +7271,7 @@ DSL_int_t dsl_cpe_daemon ( #endif /* INCLUDE_DSL_CPE_CLI_SUPPORT */ DSL_CPE_CONTROL_EXIT: