From MAILER-DAEMON Mon Mar 02 08:30:49 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1j8l9l-0002Kb-NU for mharc-lwip-users@gnu.org; Mon, 02 Mar 2020 08:30:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52983) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j8l9i-0002KL-Bs for lwip-users@nongnu.org; Mon, 02 Mar 2020 08:30:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j8l9g-0002zc-51 for lwip-users@nongnu.org; Mon, 02 Mar 2020 08:30:45 -0500 Received: from n7.nabble.com ([162.253.133.57]:64234) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1j8l9f-0002yW-V8 for lwip-users@nongnu.org; Mon, 02 Mar 2020 08:30:44 -0500 Received: from n7.nabble.com (localhost [127.0.0.1]) by n7.nabble.com (Postfix) with ESMTP id C0D03141FB3FE for ; Mon, 2 Mar 2020 06:30:38 -0700 (MST) Date: Mon, 2 Mar 2020 06:30:38 -0700 (MST) From: SciMan To: lwip-users@nongnu.org Message-ID: <1583155838735-0.post@n7.nabble.com> In-Reply-To: <1582815853629-0.post@n7.nabble.com> References: <1582815853629-0.post@n7.nabble.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Mac OS X [generic] X-Received-From: 162.253.133.57 Subject: Re: [lwip-users] lwip forum FIN packet from the received after the FIN packet from the initiator of the TCP connection X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Mar 2020 13:30:47 -0000 I found one problem. I have called lwip_init() function instead of tcpip_init(). This was obviously wrong and in this case the thread tcpip_thread wasn't created. Now this is fixed. Nevertheless, the behavior is still the same. Here is also a Wireshark log for a better explanation what is going wrong: log.pcapng . It can be seen that my device which has an IP address 192.168.10.2 send an ACK package, but it doesn't send his FIN package as it is expected. Any idea why? -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html From MAILER-DAEMON Tue Mar 03 03:45:21 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1j93B3-0007nX-8t for mharc-lwip-users@gnu.org; Tue, 03 Mar 2020 03:45:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:40353) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j93B0-0007iM-Lq for lwip-users@nongnu.org; Tue, 03 Mar 2020 03:45:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j93Az-0007lb-A0 for lwip-users@nongnu.org; Tue, 03 Mar 2020 03:45:18 -0500 Received: from mail-am6eur05on2070.outbound.protection.outlook.com ([40.107.22.70]:6070 helo=EUR05-AM6-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1j93Ay-0007kI-Qn for lwip-users@nongnu.org; Tue, 03 Mar 2020 03:45:17 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cZ4sjCaXBDaA1De/NeliIuJ+hZgmzgm+XTIwel1o1e/+Qa0zd8IjqjxkfAg5TvvYJKkphowCXDhDR/U4urT0FijcvaHRAYaYPgBpwi7ClBsVIDC2BAPcQRNZkL+5QqJIVWqo9Vr9MCcpGiQON18ZaDg++MpUBLSlB8rHAKs3kqtJ/LjDZHd4mW0pRcjzYUvJJGdms9U35geNgAxeUWQr3MNvYjijTFqgioh79yeJsQ0Ig4ouyGmvpMWBwMbk8muf0S7kGYbnedNC7+cVTVla8cF+EPeRVjfrEdlrhOAvuyqonElu+4s9h+xA3fj+BUmsuER1D6yom+7QOhvKSvT4FA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1heL7rIkwbtKQ5Wx468zxWsBiqTZiyHq5b9LzYkmjSk=; b=bXgxWHqzjLv8Or0+GtB6XkV9IL/m8YnKnjiew9Zs43pWlbHE831mFREAaGx2fUhxJsRCyCc5qEP3QdSpfuhLa+4QYN/0xz1C6hhdXo6MK2xXf89TQ68VgUXjQH/uFcTu31B1hznntt5uPpJZIPAkYDCTGlFST/foCJJsHtlr9oyqPklyNl0WeiHeIKQTx1OJ8qe+tUaL2WD0rlw1hXDC4isirmohKhAtb2Y8YbAhg5ftlPM4g0n2AT20b3Dowq7LUGekWhWMH4YEISHrNucmoNnohdP3v5cdCSTVDYQJ1PDUcJ/Qdol1H7X5hI9noQ7KsFnByGDTEhaIZq0w1/Z4Xg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cominfo.cz; dmarc=pass action=none header.from=cominfo.cz; dkim=pass header.d=cominfo.cz; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gunnebo.onmicrosoft.com; s=selector2-gunnebo-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1heL7rIkwbtKQ5Wx468zxWsBiqTZiyHq5b9LzYkmjSk=; b=XZUWi1yTvp6lmF+H3FIaBXAcVIPDgDV5xTjWvjdJZSLXjUBVE6DDJw/bjZ7vy0WJ4psTTb2IQZrtXdviobUijMORqvWftfyH36SlpmNuGIXe8jEzsith0cXNMY5653MaVCCr9n4is8iRmZO+bOMv9e+VC0qeVno58y1BvKHFqIE= Received: from VI1PR07MB6576.eurprd07.prod.outlook.com (20.181.32.142) by VI1PR07MB4157.eurprd07.prod.outlook.com (20.176.6.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2793.9; Tue, 3 Mar 2020 08:45:11 +0000 Received: from VI1PR07MB6576.eurprd07.prod.outlook.com ([fe80::68c4:5160:c34d:b79]) by VI1PR07MB6576.eurprd07.prod.outlook.com ([fe80::68c4:5160:c34d:b79%4]) with mapi id 15.20.2793.011; Tue, 3 Mar 2020 08:45:11 +0000 From: "Janicek, Marek" To: "lwip-users@nongnu.org" Thread-Topic: FreeRTOS + Lwip, transmit gets BLOCKED Thread-Index: AdXxOAn7p2Fufk18ScCgP5bxz48s7A== Date: Tue, 3 Mar 2020 08:45:11 +0000 Message-ID: Accept-Language: en-US Content-Language: cs-CZ X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=mjanicek@cominfo.cz; x-originating-ip: [212.111.4.130] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 5abb765c-1abf-48ed-7254-08d7bf4f2f60 x-ms-traffictypediagnostic: VI1PR07MB4157: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7219; x-forefront-prvs: 03319F6FEF x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(346002)(366004)(136003)(396003)(189003)(199004)(81166006)(7696005)(81156014)(33656002)(186003)(8936002)(6506007)(26005)(316002)(19627235002)(8676002)(66446008)(64756008)(52536014)(86362001)(6916009)(66946007)(55016002)(15650500001)(76116006)(66476007)(9686003)(71200400001)(4744005)(5660300002)(66556008)(2906002)(478600001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR07MB4157; H:VI1PR07MB6576.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: cominfo.cz does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: LYxvCZ8h9nojNi/0kaAC5uEUYdRQOea4TSghSBit9Rcf/4O7KrqhQ6ax6d8QH/5ucZfT5TZ50wYtuZSAJ1axjWUiNZf0za6a4A8EeHdpPko4X/Qb9jF0MOP3tU8nCRN2zisc+FCtQiIcgwBlWrn9imUPJwqm5VWanr99LTjSIrQRY5Y67OPn9WOT6cC1ZtEoV7lpHmhajArqOMKMFQL0p8+pHd5/0rBti00/7ad4DpxXrP5OUtqP8yhfQirZPsmtc+k1wpeS9PX1qDgzPZWe0VqVoqHU4JE40FcVspGGikyZ9bwd1jWD0OL9kTrIt/E0XLXiiAB/aR+vmhOgvP/Gj0RZg3Qc/GYvpP/88AUAQo2/P+9eARNIPlBBXtAl/7romtB5GQ1DBtTXrEEFsO2R2oGy7a0qxSfhA4gpUKBgJ/tratl79hpOO9oFlS4W6Syk x-ms-exchange-antispam-messagedata: w5fCpfbtHUamNjuGIND+pZbs9dN92AH2d4hrAdsPX8X+OTjtfLLgVw6cBqgO1e1lxlYKO3rdYS68dvPMRnqUr2pbXC0f4SiljgQNM5tA5k7RlexnMj+dlG6luVCVw9kX2GaFvKdXA+11idyGuDn0kw== x-ms-exchange-transport-forked: True Content-Type: multipart/alternative; boundary="_000_VI1PR07MB6576E7839A0B5A18A22D4F77AEE40VI1PR07MB6576eurp_" MIME-Version: 1.0 X-OriginatorOrg: cominfo.cz X-MS-Exchange-CrossTenant-Network-Message-Id: 5abb765c-1abf-48ed-7254-08d7bf4f2f60 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Mar 2020 08:45:11.3479 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: e8750d87-2bb5-4899-acc7-f829cb6ef0bc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: G1kVo0povm4qgcPPJzV3HwNu7F3gWtPHq2NksCiGqdTv2MQamBdukmi5OkBbIEOYgPymzIn1sa9iajDG82oIhYpScSZmJsqKxGxeNCev6BY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB4157 X-detected-operating-system: by eggs.gnu.org: Windows NT kernel [generic] [fuzzy] X-Received-From: 40.107.22.70 Subject: [lwip-users] FreeRTOS + Lwip, transmit gets BLOCKED X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Mar 2020 08:45:20 -0000 --_000_VI1PR07MB6576E7839A0B5A18A22D4F77AEE40VI1PR07MB6576eurp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hello, I have STM32F407 running FreeRTOS + Lwip (netconn). I have several tasks. O= nly one Task1 is transmitting continously small packets (85 bytes) every 5 = miliseconds on ethernet. Transmitting is randomly paused for a long time (cca 1-2 sec) then it is re= sumed. Task1 in function lwip_netconn_do_write() takes the semaphore by sys_arch_s= em_wait(LWIP_API_MSG_SEM(msg), 0) and Task1 gets BLOCKED. It remains blocke= d for cca 1-2 seconds. When tcpip_thread in function lwip_netconn_do_writemore() gives semaphore b= y sys_sem_signal(op_completed_sem) then Task1 gets finally READY. Please do you have idea why this is happening for such a long time? Thanks Marek --_000_VI1PR07MB6576E7839A0B5A18A22D4F77AEE40VI1PR07MB6576eurp_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hello,

 

I have STM32F407 running FreeRTOS = + Lwip (netconn). I have several tasks. Only one Task1 is transmitting = continously small packets (85 bytes) every 5 miliseconds on ethernet.

Transmitting is randomly paused fo= r a long time (cca 1-2 sec) then it is resumed.

 

Task1 in function lwip_net= conn_do_write() takes the semaphore by sys_arch_sem_wait(L= WIP_API_MSG_SEM(msg), 0) and Task1 gets BLOCKED. It remains blocked for cca 1-2 seconds.

When tcpip_thread in function = ;lwip_netconn_do_writemore() gives semaphore by sys_sem= _signal(op_completed_sem) then Task1 gets finally READY.

 

Please do you have idea why this i= s happening for such a long time?

 

Thanks

Marek

 

--_000_VI1PR07MB6576E7839A0B5A18A22D4F77AEE40VI1PR07MB6576eurp_-- From MAILER-DAEMON Tue Mar 03 03:46:58 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1j93Cc-0000JR-Ak for mharc-lwip-users@gnu.org; Tue, 03 Mar 2020 03:46:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:40527) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j93CZ-0000G9-RM for lwip-users@nongnu.org; Tue, 03 Mar 2020 03:46:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j93CY-0008PB-Kh for lwip-users@nongnu.org; Tue, 03 Mar 2020 03:46:55 -0500 Received: from n7.nabble.com ([162.253.133.57]:51334) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1j93CY-0008NG-Eu for lwip-users@nongnu.org; Tue, 03 Mar 2020 03:46:54 -0500 Received: from n7.nabble.com (localhost [127.0.0.1]) by n7.nabble.com (Postfix) with ESMTP id 154401425203B for ; Tue, 3 Mar 2020 01:46:53 -0700 (MST) Date: Tue, 3 Mar 2020 01:46:53 -0700 (MST) From: mjanicek To: lwip-users@nongnu.org Message-ID: <1583225213083-0.post@n7.nabble.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Mac OS X [generic] X-Received-From: 162.253.133.57 Subject: [lwip-users] FreeRTOS + Lwip, transmit gets BLOCKED X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Mar 2020 08:46:57 -0000 Hello, I have STM32F407 running FreeRTOS + Lwip (netconn). I have several tasks. Only one Task1 is transmitting continously small packets (85 bytes) every 5 miliseconds on ethernet. Transmitting is randomly paused for a long time (cca 1-2 sec) then it is resumed. Task1 in function lwip_netconn_do_write() takes the semaphore by sys_arch_sem_wait(LWIP_API_MSG_SEM(msg), 0) and Task1 gets BLOCKED. It remains blocked for cca 1-2 seconds. When tcpip_thread in function lwip_netconn_do_writemore() gives semaphore by sys_sem_signal(op_completed_sem) then Task1 gets finally READY. Please do you have idea why this is happening for such a long time? Thanks Marek -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html From MAILER-DAEMON Tue Mar 03 09:37:25 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1j98fl-0005MY-9Q for mharc-lwip-users@gnu.org; Tue, 03 Mar 2020 09:37:25 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:46391) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j96hO-0003HV-GW for lwip-users@nongnu.org; Tue, 03 Mar 2020 07:31:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j96hL-00033l-VV for lwip-users@nongnu.org; Tue, 03 Mar 2020 07:30:57 -0500 Received: from mail-oln040092066102.outbound.protection.outlook.com ([40.92.66.102]:56430 helo=EUR01-VE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1j96hL-00033W-5j for lwip-users@nongnu.org; Tue, 03 Mar 2020 07:30:55 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T8W+I5gdaQ4RqW5eo8SZiRT+ratZLa5jTU5zdo7MXZdWFii01AfjdcLz7WA1iW8Qnqyu8gtAeNWQ9hnNdqEie8Y22h/u2JOeQ+7RksOdPeCHt2adzPC26xfVGop1kUZesRWym6R9P86i1gC6arh4iavUoWSqGbdQa98NGdhgk0EMKF/M6p6iRNnUO8wtxdxZbh1+SE1iyPZwzmiaZQNVFkxB3PSdy2oQiLwX51vy2AsQ+9zpW0sJhFfU3LkDl1eaGXAeZf78ZrQ4cEWHTLIG5XQV8+HiGKF9O7AkJsxg0MCIZdmZwJ8u3TZ+3mI9AxjwGnH1TQVTP/OFEz2rVkRgTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Vr9JwVAsuLPXpeHBk6L2KmJwsuGPIX4heuSsSaXcqsk=; b=AILGmKQc8bYbrK56JHEG/bFxDk9W+PrLxxAZ1pbrHkWbXSXJVQFPblaxdYazrKTr2LRLuHEOGSzZBSB7xTr24Jg+3wFSPkSyQyYoIzKH4RBT2jTUxhi0rjU9BA8YyPcqEByhhjnwURaUVZEt09zRztDy6J4pI6IGHlXCmEKowCIfq93CqJ+mnyr9JHO8vxvfMgJbzw6FfJDie0WA5EL6AKp9C2pIb9lwGiTd/abvitOHrGHv1LHMMo6EaFCMTivf7iVRy23rrVHmeb4xYrVcH6pS9RQathbiW5lL7V1FEIgxZJBzpYIm+JspId4UxeosUnTjEdByczHNtNYgSxWubw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Vr9JwVAsuLPXpeHBk6L2KmJwsuGPIX4heuSsSaXcqsk=; b=ZRuyhQe+UG1jNdS1CXCLHMdfyU3ztt0dwW+QpFeWBaLV+olBYjGDLLsGmp6h9YWAIhIoNNbQOrJPwNcCYDJSLPngVTq4+spAEyeK6YptGxFEYMz6GW82txv90PSJPhDqAZ1oqbO/xYRfNT6XTQn1sGtrEIKo1znKvb/kiD98mXs0xaBaJJFtIU2ddMqH1jm6PiBDs0w+aw7btsImj4748eUZm5KS14oJM0xhCq38Ka5u0Iqi05MoHM6putW3prb+vuxNtfNR5yOVq4mQjWgyBNoW+5OsYtMqikMGjwcHJga87lr+slplcQZD9e1BQYl4qVF/aOKZR6T0Ip41KY+ljg== Received: from DB5EUR01FT027.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e1a::3c) by DB5EUR01HT041.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e1a::397) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2772.15; Tue, 3 Mar 2020 12:30:51 +0000 Received: from AM0P194MB0673.EURP194.PROD.OUTLOOK.COM (10.152.4.58) by DB5EUR01FT027.mail.protection.outlook.com (10.152.5.1) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2772.14 via Frontend Transport; Tue, 3 Mar 2020 12:30:51 +0000 Received: from AM0P194MB0673.EURP194.PROD.OUTLOOK.COM ([fe80::8e3:2d50:c882:860b]) by AM0P194MB0673.EURP194.PROD.OUTLOOK.COM ([fe80::8e3:2d50:c882:860b%5]) with mapi id 15.20.2772.019; Tue, 3 Mar 2020 12:30:49 +0000 From: Simon Wilton To: Mailing list for lwIP users Thread-Topic: [lwip-users] FreeRTOS + Lwip, transmit gets BLOCKED Thread-Index: AQHV8ThSs63OC7xBtUikedod6fUVk6g2yVKJ Date: Tue, 3 Mar 2020 12:30:49 +0000 Message-ID: References: <1583225213083-0.post@n7.nabble.com> In-Reply-To: <1583225213083-0.post@n7.nabble.com> Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:093D2C8F54F90882EE2BB34A7DDBF4F08E2BFB549B678BE4B727EAA6D8404B53; UpperCasedChecksum:1DDDB9F471E0E807B97900498A3D0809EE24F72D9E78C0D27CBFE64D9D114EE9; SizeAsReceived:6886; Count:45 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [9NioSVvIQrcunsFZl3RkR21zhkD1NWX0] x-ms-publictraffictype: Email x-incomingheadercount: 45 x-eopattributedmessage: 0 x-ms-office365-filtering-correlation-id: dc2c6cd8-bf33-48e7-2049-08d7bf6eb4fb x-ms-traffictypediagnostic: DB5EUR01HT041: x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2K1ZcBtN7xdwRER9tp/Ee7CRjzmkQw5Yyvq/tTIF2oAbvcZq5O2fu8+Y0aYGhaQoSCZrXVk/UT3orxXuZuY1+PIQ5L3tLXV3fw6pi5czAqG2Su/wCePno+85bD3eMzvjHwkGm6JEBcWVz/Vs/C/7F57q9GzuGhc7kGK/H7w+w51LE4Wfzljteyt0hdq8eFjwHXgtShdCn+KCAk69vnFqqh6sGEK+uyg1ksFlplRCuMs= x-ms-exchange-antispam-messagedata: 0Q/t08i7bujZr0vS15iYro9trrvYg8mTg7zX/H+2CzvXGXfU4GVuZVB8uUUNfc/v1RQL/Fx84Rc956d607UpSnHppewdaJD1SVEiaL4C3k8F95pa7412tU+RiDs7YOm8mqfnSTAtoNzhET2OJfBxeg== x-ms-exchange-transport-forked: True Content-Type: multipart/alternative; boundary="_000_AM0P194MB06735D2A8520985410A6EE02F5E40AM0P194MB0673EURP_" MIME-Version: 1.0 X-OriginatorOrg: hotmail.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: dc2c6cd8-bf33-48e7-2049-08d7bf6eb4fb X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Mar 2020 12:30:49.9271 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5EUR01HT041 X-detected-operating-system: by eggs.gnu.org: Windows NT kernel [generic] [fuzzy] X-Received-From: 40.92.66.102 X-Mailman-Approved-At: Tue, 03 Mar 2020 09:37:23 -0500 Subject: Re: [lwip-users] FreeRTOS + Lwip, transmit gets BLOCKED X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Mar 2020 12:31:02 -0000 --_000_AM0P194MB06735D2A8520985410A6EE02F5E40AM0P194MB0673EURP_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Marek There is an automatic back-off mechanism designed to stop nodes flooding th= e network with small TCP messages called Nagle algorithm. Check if you are = being blocked by that. You can turn it off - i think on a per connection ba= sis. There is also a similar thread that I found when i was looking at a similar= problem http://lwip.100.n7.nabble.com/lwIP-hangs-on-transfers-with-many-sh= ort-packets-td11044.html BR Simon ________________________________ From: lwip-users on behalf of mjanicek Sent: 03 March 2020 08:46 To: lwip-users@nongnu.org Subject: [lwip-users] FreeRTOS + Lwip, transmit gets BLOCKED Hello, I have STM32F407 running FreeRTOS + Lwip (netconn). I have several tasks. Only one Task1 is transmitting continously small packets (85 bytes) every 5 miliseconds on ethernet. Transmitting is randomly paused for a long time (cca 1-2 sec) then it is resumed. Task1 in function lwip_netconn_do_write() takes the semaphore by sys_arch_sem_wait(LWIP_API_MSG_SEM(msg), 0) and Task1 gets BLOCKED. It remains blocked for cca 1-2 seconds. When tcpip_thread in function lwip_netconn_do_writemore() gives semaphore b= y sys_sem_signal(op_completed_sem) then Task1 gets finally READY. Please do you have idea why this is happening for such a long time? Thanks Marek -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html _______________________________________________ lwip-users mailing list lwip-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/lwip-users --_000_AM0P194MB06735D2A8520985410A6EE02F5E40AM0P194MB0673EURP_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable
Hi Marek

There is an automatic back-off mechanism designed to stop nodes flooding th= e network with small TCP messages called Nagle algorithm. Check if you are = being blocked by that. You can turn it off - i think on a per connection ba= sis.

There is also a similar thread that I found when i was looking at a similar= problem http://lwip.100.n7.nabble.com/lwI= P-hangs-on-transfers-with-many-short-packets-td11044.html

BR

Simon

From: lwip-users <lwip-u= sers-bounces+simon.wilton=3Dability-it.com@nongnu.org> on behalf of = mjanicek <mjanicek@cominfo.cz>
Sent: 03 March 2020 08:46
To: lwip-users@nongnu.org <lwip-users@nongnu.org>
Subject: [lwip-users] FreeRTOS + Lwip, transmit gets BLOCKED
 
Hello,
 
I have STM32F407 running FreeRTOS + Lwip (netconn). I have several task= s.
Only one Task1 is transmitting continously small packets (85 bytes) every 5=
miliseconds on ethernet.
Transmitting is randomly paused for a long time (cca 1-2 sec) then it is resumed.
 
Task1 in function lwip_netconn_do_write() takes the semaphore by
sys_arch_sem_wait(LWIP_API_MSG_SEM(msg), 0) and Task1 gets BLOCKED. It
remains blocked for cca 1-2 seconds.
When tcpip_thread in function lwip_netconn_do_writemore() gives semaphore b= y
sys_sem_signal(op_completed_sem) then Task1 gets finally READY.
 
Please do you have idea why this is happening for such a long time?
 
Thanks
Marek




--
Sent from: htt= p://lwip.100.n7.nabble.com/lwip-users-f3.html

_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://li= sts.nongnu.org/mailman/listinfo/lwip-users
--_000_AM0P194MB06735D2A8520985410A6EE02F5E40AM0P194MB0673EURP_-- From MAILER-DAEMON Thu Mar 05 15:50:39 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1j9xS3-0000lK-98 for mharc-lwip-users@gnu.org; Thu, 05 Mar 2020 15:50:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:47369) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j9xS0-0000gD-5s for lwip-users@nongnu.org; Thu, 05 Mar 2020 15:50:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j9xRz-0002bC-8O for lwip-users@nongnu.org; Thu, 05 Mar 2020 15:50:36 -0500 Received: from mout.gmx.net ([212.227.15.19]:60481) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j9xRy-0002ae-SH for lwip-users@nongnu.org; Thu, 05 Mar 2020 15:50:35 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1583441433; bh=yQzL+lL0hGmEEXTkq0cZVFK/v6tODtMHcFDZTNTf2iY=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=JIYQJ/GpPUIuz2+uwk+iQ8Xmv0XVcJbHadDVEonNoWs1T9pg2UZwv1nb4B6YN1Co3 Qk58TGJVii+RaUFpftBoUIBi39Be1wDJgvg3EabNp4lDQPfREOuHc0MPY0bAmO0FW4 wfxw3xM/MxNdh1Jn32V0GIoAMJGuJVusB750OqG8= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.61] ([176.199.210.162]) by mail.gmx.com (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MCKFk-1j1fj90MNu-009MQD for ; Thu, 05 Mar 2020 21:50:33 +0100 To: Mailing list for lwIP users References: <1957bb7c-a9a4-68b8-8a62-fd619154acb9@t-online.de> From: "goldsimon@gmx.de" Autocrypt: addr=goldsimon@gmx.de; keydata= mQENBFDPe/sBCADdhO6Fn+7pnHtmEjiWs14u+n5cFQAhvjZ6EiZLwh0gMl5vYT1HDJ+8HTUA h0xMgXQ2Tsxzizt1TTBWn5DK74SjlIx/dYpM17OHmu6wuIbexKN6hEJSFZjtRlbIlWqEB8px EVeU7//1V/Ukj3QAI3yOrrhIg/s9jmuxMo05fjOsYEkub9PHmvFFdJ7KuApsVss4QRZIpawq HRFv9gY+4DrOvhwMZk6CHlvlAOgqlsMftRMl4699ww2NNbtU2U8n9XFlf2CQxkYAzIJC27Rc +83q+d5xbtcqzxcHhsFXelNTB09ZHEti7NpZZpnP4siVEa8p9BY8n11Nr/97c8lyZUCbABEB AAG0JFNpbW9uIEdvbGRzY2htaWR0IDxnb2xkc2ltb25AZ214LmRlPokBOAQTAQIAIgUCUM97 +wIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQHWthwbhCmfU0tQf+L0m7VG1LNzpt Yvx/1ZZFbqlggespnVuc6HPYqtmbIWxHmlQZgM6Pn61rUWmUl8ilWdcCw8Wuam2pEUSBzlZF z/738kcazWv9SRSbr7ULQi/d/gfOtcfAVUMkTF9jhWpAYR4zmzpR31mvs6Ltfh5rw/bsVJ+/ QbfWLJqdbRG4NykfuGXafQ+o+SDlMlcaBe49whhJsQcCBrvwixeNChUOkV3TY+jgVu4u1MEY c1aJKgVJkBVkAEsJXWFHTkF3TvJf5KdLLGbVBq3I6ItrLgAowI0kC4MzU3eNsCBEroBGJl2/ 7fmut8i+tQNiDfOVP4EHaSD86utnyawQev0TZnY2Qg== Message-ID: <37769551-bbad-96ff-7bc7-cce9e5523658@gmx.de> Date: Thu, 5 Mar 2020 21:49:24 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <1957bb7c-a9a4-68b8-8a62-fd619154acb9@t-online.de> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:U0yakeYrnblkzPOyZjdLIk5BqLkobbq2caNkkkGaxgb5icm/d3s GbzXs90lbW+H5SDLZ7yjDpZNUH+gpkxcSUlUrgCrYwfHOgcvWt+gZ9SnbCHvwXFXQNzu/gb BTKAe2bvXyogckZ0ppmxdqeS/5g3QTV4yO7F8ibi+ciAQ7+K0VZodbbiPGK8bvhsGsOwHLd j/NU8YYdhJXlkZa3F4CMA== X-UI-Out-Filterresults: notjunk:1;V03:K0:B+eNWL3fwmY=:vbK6B+CTZDMwukvy7rL5Xd rGQE4kjJ5NjujWdZKyZ/5QYf4dgi0vdAvdsrN+46n1KD0w0dD9NydscMDUK/UVyw76f/Um/J6 AP242BTAiiORjR364JbVr04rogXGetX+BnKpHvtgDX/5le/BRS7RrcXfiG4QzGQIGGLkwMFFy BkwwQB1ydcBru6i6m4Nx5Sk3KAQAGeazgufE6IDr/t4mANrvwfLVqDiWJCYRH9IaNGEJOjshR emrrCxV6eiA6P9iZuZEKpa7N2EaDuCKijIb8tCAzep9iCZ2BuX4x5SsFs1+Yjibz+Ijj2cxcY oQ+hviLSBm6eGVXTZuOxaSqX5bFc2gN76dJFvgwcb4xVfn9o+98EKlsNfNScgYQRtmGBwBTce qiw3+oxYOnI79WktVWsnshbW1DLnOio4ft9A0da+UDFs6O4JkPkzonYnAjUgiXE08eymu6nTL yBmR5jDH3T6+Y79pN1eV7LS/vftiBQP612oAZbgcWr56P2JOZRioHKoWGg7aF+WTvvv/zMG4p Sqvbj+1nNF/UHQaodP/CK4q9VEmTvmtlOmd0JAh4z2aGjp/L3uMlDQUasb3YbyFrl3JT4/1x1 sGq5py2Op4cxC2qckqsyaX+s7umB1HUJqcLkbLHIAR42UIpf+g/bMndpiFKIS3lrwREk+5a3H 4DPkNGDxslhzgxm8E4tlNM7TE5Fy7xwNbO0wFY674b7/l8KPhai40R122H6m2/zuGwoWy/8VW WkHf+leb6Eovn643bpgXrX3f2LqZ0DRZz3+zREa7Yljymm5EjXp8YftmR7oNc1I9aNFlSjFkw tLI4XpRQZI86KG9mS3MYwqPUtRC6MK/M6FGysvf3AE3lIufslT623+qP0k+Ion2VB69EIjIzy T5gC1ILzod3aObYdjwpHc0tilTifl4vGly3duWySRQzcNnuqZIBGDbj/IFzZXaulaV/8CLCQB DLu978gvA/0L3hXGpD1TaCL7L4caNJ05cQPrJvsht/+oz5q4bDC4bBvUQpURgkhoZewWHVBm1 fRK4JYkZskgFInFttBy+cbz5mi6Hier1PGPQK1PNXbkfqSoj9AexrXg2ut09qC1iaIAFIfkDZ YECwrUT1ltbujBuQ4geMQZYyNy71uG0Li6LeDGAKuImmXPhXFhMywlWVufzm1RFrCKqGiYGGc 2Jx6iuHzRmfDqE/A7NQhDcTxIlLJMg8bql+RAMKW8uH1LS7Wqm60TeDMF+nq0qaYtE3LZ4NgA tvibjg37OqxWoF4v+ X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.15.19 Subject: Re: [lwip-users] Compile issue with altcp_tls_mbedtls.c X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Mar 2020 20:50:37 -0000 Am 28.02.2020 um 23:59 schrieb Klaus Breining: > Hello, > > seems something went wrong with this file: In function > altcp_tls_free_config(...) there are calls to mbedtls_entropy_free and > mbedtls_ctr_drbg_free with arguments that don't exist: altcp_tls_config > has no members entropy or ctr_drbg. They are in altcp_tls_entropy_rng. I > didn't try to understand the code right now, I just commented out these > lines. But I am sure they are not there just for fun and I might create > memory holes... That was my bad in applying David's patches in the wrong order. Should work now, thanks for the reminder. Regards, Simon From MAILER-DAEMON Thu Mar 05 15:52:58 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1j9xUH-0002BK-Sc for mharc-lwip-users@gnu.org; Thu, 05 Mar 2020 15:52:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:47631) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j9xUF-00028S-44 for lwip-users@nongnu.org; Thu, 05 Mar 2020 15:52:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j9xUE-0003K6-7r for lwip-users@nongnu.org; Thu, 05 Mar 2020 15:52:55 -0500 Received: from mout.gmx.net ([212.227.15.15]:51499) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j9xUD-0003JL-VR for lwip-users@nongnu.org; Thu, 05 Mar 2020 15:52:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1583441572; bh=qGNpvPaY2U5xQAPtvq55Ye9v2xFpH+Fy82WFbVv8d4E=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=JWMuzGs0/Q8UKfbNCqrLTBluca0UWMFm9JtmmQDDWWfDEqJA5dR/sei1isojMzIYc GxbHmzqoFi5lzzYpGzrNKMxYmbiURjL3i7Layqy7v4Dy4vSWOBSh7lU560Hy9EwzOb frq0kCAIf1F/FqGCFJyXz4Q9QqfQldN21In44M88= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.61] ([176.199.210.162]) by mail.gmx.com (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MFbRs-1j9OSA0Z70-00H7m8 for ; Thu, 05 Mar 2020 21:52:52 +0100 To: Mailing list for lwIP users References: <1582556205619-0.post@n7.nabble.com> From: "goldsimon@gmx.de" Autocrypt: addr=goldsimon@gmx.de; keydata= mQENBFDPe/sBCADdhO6Fn+7pnHtmEjiWs14u+n5cFQAhvjZ6EiZLwh0gMl5vYT1HDJ+8HTUA h0xMgXQ2Tsxzizt1TTBWn5DK74SjlIx/dYpM17OHmu6wuIbexKN6hEJSFZjtRlbIlWqEB8px EVeU7//1V/Ukj3QAI3yOrrhIg/s9jmuxMo05fjOsYEkub9PHmvFFdJ7KuApsVss4QRZIpawq HRFv9gY+4DrOvhwMZk6CHlvlAOgqlsMftRMl4699ww2NNbtU2U8n9XFlf2CQxkYAzIJC27Rc +83q+d5xbtcqzxcHhsFXelNTB09ZHEti7NpZZpnP4siVEa8p9BY8n11Nr/97c8lyZUCbABEB AAG0JFNpbW9uIEdvbGRzY2htaWR0IDxnb2xkc2ltb25AZ214LmRlPokBOAQTAQIAIgUCUM97 +wIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQHWthwbhCmfU0tQf+L0m7VG1LNzpt Yvx/1ZZFbqlggespnVuc6HPYqtmbIWxHmlQZgM6Pn61rUWmUl8ilWdcCw8Wuam2pEUSBzlZF z/738kcazWv9SRSbr7ULQi/d/gfOtcfAVUMkTF9jhWpAYR4zmzpR31mvs6Ltfh5rw/bsVJ+/ QbfWLJqdbRG4NykfuGXafQ+o+SDlMlcaBe49whhJsQcCBrvwixeNChUOkV3TY+jgVu4u1MEY c1aJKgVJkBVkAEsJXWFHTkF3TvJf5KdLLGbVBq3I6ItrLgAowI0kC4MzU3eNsCBEroBGJl2/ 7fmut8i+tQNiDfOVP4EHaSD86utnyawQev0TZnY2Qg== Message-ID: <2c608a1d-0a50-66f5-4a86-6c8ca0fea7f9@gmx.de> Date: Thu, 5 Mar 2020 21:51:43 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <1582556205619-0.post@n7.nabble.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:ZDBv4TnaVnQJEuFVCZ/TE4N5tr8XF0j1UZWI8nFsvBBMa5SQlhI XZHv+KzUZhWSpKK3N7lcWqzTkQN05WYQjymV4Qjii7yQ8zYanIZE4N3nTygugkn7IQMfJr/ xxbgKCzUJQGTZQXiL93q07bH5/X77BSzpgaBdCIHo/INPTpSpOwnQxIDAp52HdOBklIwWz6 MgqKDoPtwxF8j/ESrNlxQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:x7s73crwYC4=:2R9A3AdO+QzwZEf+5qis3k ny/HTEy16iTtrtfeZQJTAia04z+RYtnXTCruMveidJF5sE0tgch3wEc3IZMLzz47mt7dVGg/1 fCKztWO2aczpJ+rxr4wyJciKuIusZxIg+IUVgFJTe8YdrChOWtW45hUkmsAJwI++nZxChmMmX iAvgRljCrx06JfAO1b24GgKWOgd5sx0xyLocHwvyGSty9xF6R/1inPCXkaBjV9vZF3RUqo68G 25x6Y0koWDnEuSXKqf5trGC6pQWHdQFiczldvtTa/U+HXoKV3TplCRyzCi7qjNO9UgfOqwNmL B4oDQcAlMl5Q551Uh5VSH6+xzMHsilDswzLYo1mXkm/tBTtq1zaYEwzy7ySiQXM6dN3OBV5Je dUIA9NwCQiUpAQt0dTw8fGKrKZKJMKF0IsYuOcJzQK2JUO614MTZ6Js6sPBGVVFz9rcKNik5q dMfi9PAuY6r6X41VUaudsUr0vl6irEbxnI5mFoLZYS5l887n1E1PpXHZAO7FdWTuSEufVe7Kn /n69e+0bO4dRM+UMnVNQlnQz5UbtPPjAynEdlqipJgySUERkDv3vVVdzF9Ra9puFXq0n7zDXD I4rC+l+/MS50iaGKXntl4kkjum4YPqfae+ZKRfpQhWtkGm9LOTPTjI5IQY9/5I9VOvwH97Muf clSxB9nf2rr7yXqR+9Fl92hdlfRrpCl/pgJb3CCnKO4WgjQFYvJ0TH234Cyhbuz5cc5rrPQ74 H+mFJaRI83c3liWgn4U+LBJnDmoAcNLYdELIY+XNc5FBkq6mv5s0Vfl3XzuByc3TGFNh6KEZd RU8tll8GGkfWstXvZ5+mAqGZAfkSworqoQAaf5tiM/5NpRZ6x4ifoATrQNPVLa1F80xrG+Sri sYJO9t4K3m+s0M7WYOmMKmFMg1qBEQOeijTBRWncjjhIba9Npo7hHzOtjPNZSsDopMnhUiDBB 70AO0JpN+Dc9SPy0Sf8SeX79HvvBWwHFsSu6B//C95nljYboLDuMH/dYc+m01TTqJuoCioA0T w2vvtvut5Vff8PB86bC1HnxqVEkThhIm8cX5PdxFmMGHqy8Gh6KpFOEs+0zLUAjO0bW9alnEu iu+gKDxqLDNif3AMMZStlFUSbRW3EZGU82zlousv3QBPtE/kocF0uXnXD2YYQ20vuu1f9rtX3 YL3QxeRlI+Oa6gw9Jlg8m1kh0ExyMz2M4sHpooCIqqtcsf+ur7f8FtVN9gZbkrF0Zfeqtwilx 3+JSJbX1/R/YLsBcd X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.15.15 Subject: Re: [lwip-users] "mem_trim can only shrink memory" X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Mar 2020 20:52:56 -0000 Am 24.02.2020 um 15:56 schrieb supergaute: > I'm using lwip STABLE_2_1_2, and I get an assertion: "mem_trim can only > shrink memory" > I'm using regular internal memory heap (defined by MEM_SIZE) > I can reproduce it within half an hour, but I'm not yet able identify wh= at > can cause this. > > What can be the cause of this? As always, this could be threading issues. If not, it could still be a bug you'd need to reproduce. Best with a unit test... Regards, Simon From MAILER-DAEMON Fri Mar 06 01:04:48 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jA66K-00076Y-4j for mharc-lwip-users@gnu.org; Fri, 06 Mar 2020 01:04:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:55170) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jA66H-00076Q-6B for lwip-users@nongnu.org; Fri, 06 Mar 2020 01:04:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jA66F-0007p2-4I for lwip-users@nongnu.org; Fri, 06 Mar 2020 01:04:44 -0500 Received: from mail-eopbgr30065.outbound.protection.outlook.com ([40.107.3.65]:38480 helo=EUR03-AM5-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jA66E-0007ZT-KQ for lwip-users@nongnu.org; Fri, 06 Mar 2020 01:04:43 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bkoAYSdgJNwpar9e1IYuZ4FyROQqUNPqa9deD7ITn/FaXrAHJ8RWmdXTsRr6M4v1lrJQK7XQSP5rcYm+XvxofCO0Ih/EYXz6F3uyLjKQugfgI/37w0nUYqnlBUBma8jlEwJgAOH92qt0VgVjzRC/CpX/liUcNpm/RC5v0UZYjbEk3Z1zhSspvASBRh3soa/eqjENOCAF0pV5SQ7YkyIRacsDKO6+F02ZUJ7/QXhXlO9v7kszyKKGxa13H4qnOcnGm4U8bpQw979zVW6iNkUb8vy2SPeS8AsV1WxRMn3iPWAbbtDlm0gtQD4nfG8IoML+VmUi3WrjjDtDGGo6BBoaAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qLfDtqRCr4iE45DDmkt5jHTrG+Pa7xd9ocH6xRIDQNI=; b=cITgbcDTF4LMw246hrYBfGBe5ovKuxg7UjpDEKJZEY5gvNkHGnZcCc7jvWJH26ei+Dmqptv8z4o2yT2THkYO3CjqDYKwPCEXsncvxmq6PycJ4ZYffQxWoKiXvnf1MF2oVi5dSKuMNH4xhVoC0EM+ib8EyIy5tXu0eCRHTTlbhTuf1UIAvGb6OKq8I3RhzF0U98pvSOQTvO2yshzZOMUWTSte7s5WuYBufN5VjbNAa6hz7j/1A1nv/uEhONSaPF/q2Kztm0kjTvMx0A4AcM1NRi9yLatfBEFR569K3djeNBoBhvAlbwIyW16NDUcvUF/trjwJ6apTIYCP6n6kCM0oDw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cominfo.cz; dmarc=pass action=none header.from=cominfo.cz; dkim=pass header.d=cominfo.cz; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gunnebo.onmicrosoft.com; s=selector2-gunnebo-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qLfDtqRCr4iE45DDmkt5jHTrG+Pa7xd9ocH6xRIDQNI=; b=VnZDPyW+19lxUbl1OnCR0lq09wORFtZOhwoKbOgf0lZCOym2DMD/iNIz+glk19sZ+JxAi1EmhVqR+a+7TGD/zVRwO6lK3lgwpZo2QqANqapvpvq2jkSwlxVkzDRinrqcbsLFDHLPRRhZVJSLPxePPMZAJnztUERVG3nEyTb40Ng= Received: from VI1PR07MB6576.eurprd07.prod.outlook.com (20.181.32.142) by VI1PR07MB6095.eurprd07.prod.outlook.com (20.178.124.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2793.9; Fri, 6 Mar 2020 06:04:38 +0000 Received: from VI1PR07MB6576.eurprd07.prod.outlook.com ([fe80::68c4:5160:c34d:b79]) by VI1PR07MB6576.eurprd07.prod.outlook.com ([fe80::68c4:5160:c34d:b79%4]) with mapi id 15.20.2793.013; Fri, 6 Mar 2020 06:04:37 +0000 From: "Janicek, Marek" To: Mailing list for lwIP users Thread-Topic: [lwip-users] FreeRTOS + Lwip, transmit gets BLOCKED Thread-Index: AQHV8ThSsDiyVx9TMUe0lv1lQyPzdag2zLOAgARJwGA= Date: Fri, 6 Mar 2020 06:04:37 +0000 Message-ID: References: <1583225213083-0.post@n7.nabble.com> In-Reply-To: Accept-Language: en-US Content-Language: cs-CZ X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=mjanicek@cominfo.cz; x-originating-ip: [212.111.4.130] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 9e402c05-9587-4427-feb0-08d7c19440a5 x-ms-traffictypediagnostic: VI1PR07MB6095: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-forefront-prvs: 0334223192 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(136003)(39860400002)(346002)(376002)(396003)(189003)(199004)(76116006)(66446008)(64756008)(66556008)(66476007)(66946007)(55016002)(7696005)(316002)(6916009)(966005)(21615005)(478600001)(52536014)(86362001)(15650500001)(9686003)(19627235002)(53546011)(186003)(6506007)(8936002)(81166006)(2906002)(81156014)(8676002)(26005)(5660300002)(33656002)(71200400001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR07MB6095; H:VI1PR07MB6576.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: cominfo.cz does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Ev5UZQbdGKTYjCD9s+W4v5TYski1ecoUJCDQFCZOLT0iPB04/F2poqj6vffqAVWvU6Ekc3hZIm5RQWk0aj/3vCXUt1fyLTatL/r8TROTvxdaMMqr+xv3p2WYmoxSjGNhSUeGNKF2zzW4FKuh8LTiQT72/kcbrg6wmlDtgGbmmsX6cUmNP4WdAxnjkjQuTBJNNTVMIMJX5oiiF14qaltkW6j+Y7K7jBdRIARhBsFfFoAE57hxQK77nE0QU9obzmoaOeOCgTPy6PBBGgPkKSJi59E0B6ji0zLp1wKjoQrtw/WyFsaNI1daNqQKPBFyCK1E7ck/T1x3m6nMMcqorV4c81ayECSo84M0S4XvKJhztqfxEjOEKXUi8Kyt+SwZ5r51KaGdsLXVQZdwEyn5ksamkhHhmm6ZgTRtbs81ktSZeL6jNdJGRI9RRfzny1sbrmtfXsopD/UR1S2Gdz7qM6TkKBMLU9oPNqu6GsBp3ZE7DobSFGJIpVct5oAszMKmLibJ x-ms-exchange-antispam-messagedata: sLn8T7cwXriij977T9JgsIKc8mOJAk5ATrTXooLFHGVbCXt3RnDUI3aXPgMOdjwyYRdxqz+rvEcvCg092HiZNnnIW1ypjVrSoCln8bKSfAay+ltXuRhceqLmx5sjtLy8NimGl8gvq5KEzOBbcnj+/A== x-ms-exchange-transport-forked: True Content-Type: multipart/alternative; boundary="_000_VI1PR07MB65760C1D999737591715FE93AEE30VI1PR07MB6576eurp_" MIME-Version: 1.0 X-OriginatorOrg: cominfo.cz X-MS-Exchange-CrossTenant-Network-Message-Id: 9e402c05-9587-4427-feb0-08d7c19440a5 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Mar 2020 06:04:37.8253 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: e8750d87-2bb5-4899-acc7-f829cb6ef0bc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: TXu7LAUnxRnk89kPbJsgRO397zsYh+zNogtlGpXN0nbv9z/PqBvW4NpSudYSX0JEzCo3fWNfms0o74QeV//A6V6kWT3pDm0askSIS4H9Q/c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB6095 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.3.65 Subject: Re: [lwip-users] FreeRTOS + Lwip, transmit gets BLOCKED X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Mar 2020 06:04:47 -0000 --_000_VI1PR07MB65760C1D999737591715FE93AEE30VI1PR07MB6576eurp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Simon, tcp_nagle_disable() helped. Now there is long delay only when there are al= so incoming packets while transmitting. This happens only when lwip_netconn_do_writemore() ends with error. That me= ans there is not enough memory. So I will also check on this. Thanks a lot. Br Marek From: lwip-users On B= ehalf Of Simon Wilton Sent: Tuesday, March 03, 2020 1:31 PM To: Mailing list for lwIP users Subject: Re: [lwip-users] FreeRTOS + Lwip, transmit gets BLOCKED Hi Marek There is an automatic back-off mechanism designed to stop nodes flooding th= e network with small TCP messages called Nagle algorithm. Check if you are = being blocked by that. You can turn it off - i think on a per connection ba= sis. There is also a similar thread that I found when i was looking at a similar= problem http://lwip.100.n7.nabble.com/lwIP-hangs-on-transfers-with-many-sh= ort-packets-td11044.html BR Simon ________________________________ From: lwip-users > on = behalf of mjanicek > Sent: 03 March 2020 08:46 To: lwip-users@nongnu.org > Subject: [lwip-users] FreeRTOS + Lwip, transmit gets BLOCKED Hello, I have STM32F407 running FreeRTOS + Lwip (netconn). I have several tasks. Only one Task1 is transmitting continously small packets (85 bytes) every 5 miliseconds on ethernet. Transmitting is randomly paused for a long time (cca 1-2 sec) then it is resumed. Task1 in function lwip_netconn_do_write() takes the semaphore by sys_arch_sem_wait(LWIP_API_MSG_SEM(msg), 0) and Task1 gets BLOCKED. It remains blocked for cca 1-2 seconds. When tcpip_thread in function lwip_netconn_do_writemore() gives semaphore b= y sys_sem_signal(op_completed_sem) then Task1 gets finally READY. Please do you have idea why this is happening for such a long time? Thanks Marek -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html _______________________________________________ lwip-users mailing list lwip-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/lwip-users --_000_VI1PR07MB65760C1D999737591715FE93AEE30VI1PR07MB6576eurp_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hi Simon,=

&nbs= p;

tcp_nagle= _disable() helped.  Now there is long delay only when there are also &= nbsp;incoming packets while transmitting.

This happ= ens only when lwip_netconn_do_writemore() ends with error. That means there= is not enough memory.

So I will also check on this.

 

Thanks a = lot.

Br

&nbs= p;

Marek

&nbs= p;

&nbs= p;

From: lwip-users <lwip-users-bounces+m= janicek=3Dcominfo.cz@nongnu.org> On Behalf Of Simon Wilton
Sent: Tuesday, March 03, 2020 1:31 PM
To: Mailing list for lwIP users <lwip-users@nongnu.org>
Subject: Re: [lwip-users] FreeRTOS + Lwip, transmit gets BLOCKED=

 

Hi Mare= k

&n= bsp;

There i= s an automatic back-off mechanism designed to stop nodes flooding the netwo= rk with small TCP messages called Nagle algorithm. Check if you are being b= locked by that. You can turn it off - i think on a per connection basis.

&n= bsp;

There i= s also a similar thread that I found when i was looking at a similar proble= m http://lwip.100.n7.nabble.com/lwIP-hangs= -on-transfers-with-many-short-packets-td11044.html

&n= bsp;

BR=

&n= bsp;

Simon


From: lwip-users <lwip-users-bounces+simon= .wilton=3Dability-it.com@nongnu.org> on behalf of mjanicek <mjanicek@cominfo.cz>
Sent: 03 March 2020 08:46
To: lwip-users@nongnu.org <lwip-users@nongnu.org&g= t;
Subject: [lwip-users] FreeRTOS + Lwip, transmit gets BLOCKED

 

Hello,
 
I have STM32F407 running FreeRTOS + Lwip (netconn). I have several task= s.
Only one Task1 is transmitting continously small packets (85 bytes) every 5=
miliseconds on ethernet.
Transmitting is randomly paused for a long time (cca 1-2 sec) then it is resumed.
 
Task1 in function lwip_netconn_do_write() takes the semaphore by
sys_arch_sem_wait(LWIP_API_MSG_SEM(msg), 0) and Task1 gets BLOCKED. It
remains blocked for cca 1-2 seconds.
When tcpip_thread in function lwip_netconn_do_writemore() gives semaphore b= y
sys_sem_signal(op_completed_sem) then Task1 gets finally READY.
 
Please do you have idea why this is happening for such a long time?
 
Thanks
Marek




--
Sent from: htt= p://lwip.100.n7.nabble.com/lwip-users-f3.html

_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://li= sts.nongnu.org/mailman/listinfo/lwip-users

--_000_VI1PR07MB65760C1D999737591715FE93AEE30VI1PR07MB6576eurp_-- From MAILER-DAEMON Fri Mar 06 05:23:15 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jAA8Q-0001jF-T4 for mharc-lwip-users@gnu.org; Fri, 06 Mar 2020 05:23:14 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:34147) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAA8O-0001gb-Ds for lwip-users@nongnu.org; Fri, 06 Mar 2020 05:23:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jAA8N-0007nJ-60 for lwip-users@nongnu.org; Fri, 06 Mar 2020 05:23:12 -0500 Received: from n7.nabble.com ([162.253.133.57]:54379) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jAA8M-0007kr-Ve for lwip-users@nongnu.org; Fri, 06 Mar 2020 05:23:11 -0500 Received: from n7.nabble.com (localhost [127.0.0.1]) by n7.nabble.com (Postfix) with ESMTP id 6B7031439D332 for ; Fri, 6 Mar 2020 03:23:09 -0700 (MST) Date: Fri, 6 Mar 2020 03:23:09 -0700 (MST) From: Jonas97 To: lwip-users@nongnu.org Message-ID: <1583490189300-0.post@n7.nabble.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Mac OS X [generic] X-Received-From: 162.253.133.57 Subject: [lwip-users] RAW TCP client gets terminated X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Mar 2020 10:23:13 -0000 Hello, Im running LwIP in NOSYS mode on a microcontroller. Currently I have trouble implementing a RAW TCP Client. I was able to run the HTTP Server including CGI/SSI and IPerf both as client and server. My Client gets a connection to a server(simple pyhton example server) and I am able to send a few bytes(Hello World messages). The problem is that after a few minutes the client stop working and even the poll_cb stop getting called from LwIP. It also doesn't matter if I send data while connected or do nothing after a few minutes its just stop working. I watched the connection via wireshark and there is nothing that would indicate any kind of connection close or timeout. The thing is that the HTTP Server still functions as usual so sys_check_timeouts still gets called. Also all callbacks where registered( arg, recv, sent, poll, err ) so LwIP doesn't report anything back its just stop working. I tried to look at the PCB but found nothing useful same with various debug messages. I put some data and source code below maybe someone can have a look or give me a direction where to look. Thanks for your help. Jonas The PCB data is a csv with tab as seperator didn't know a better way to copy the data. Wireshark data sending Serial log data sending PCB data sending working.csv PCB data sending no longer working.csv Wireshark no data sending Serial log no data sending PCB no data working.csv PCB no data no longer working.csv Source code.c -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html From MAILER-DAEMON Fri Mar 06 06:23:16 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jAB4V-00033p-Vf for mharc-lwip-users@gnu.org; Fri, 06 Mar 2020 06:23:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:37290) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAB4T-00030G-Po for lwip-users@nongnu.org; Fri, 06 Mar 2020 06:23:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jAB4S-0002g1-FT for lwip-users@nongnu.org; Fri, 06 Mar 2020 06:23:13 -0500 Received: from n7.nabble.com ([162.253.133.57]:63078) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jAB4S-0002bM-8z for lwip-users@nongnu.org; Fri, 06 Mar 2020 06:23:12 -0500 Received: from n7.nabble.com (localhost [127.0.0.1]) by n7.nabble.com (Postfix) with ESMTP id EF863143A1B3E for ; Fri, 6 Mar 2020 04:23:10 -0700 (MST) Date: Fri, 6 Mar 2020 04:23:10 -0700 (MST) From: vrnud To: lwip-users@nongnu.org Message-ID: <1583493790978-0.post@n7.nabble.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Mac OS X [generic] X-Received-From: 162.253.133.57 Subject: [lwip-users] connection drops X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Mar 2020 11:23:15 -0000 Hi, I am using lwip for Modbus and Http application. I have used raw api for both the application. I am facing disconnect problem with modbus application while http application is running. Web page is auto refeshing at 3 seconds. kindly let me know what are the reasons and where should i look in firmware to solve the problem. Regards, Vrund -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html From MAILER-DAEMON Fri Mar 06 09:48:05 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jAEGj-0002TR-28 for mharc-lwip-users@gnu.org; Fri, 06 Mar 2020 09:48:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:50351) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAEGg-0002Sw-8v for lwip-users@nongnu.org; Fri, 06 Mar 2020 09:48:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jAEGf-0006uE-9d for lwip-users@nongnu.org; Fri, 06 Mar 2020 09:48:02 -0500 Received: from mail-ot1-x335.google.com ([2607:f8b0:4864:20::335]:42383) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jAEGe-0006rD-UR for lwip-users@nongnu.org; Fri, 06 Mar 2020 09:48:01 -0500 Received: by mail-ot1-x335.google.com with SMTP id 66so2612992otd.9 for ; Fri, 06 Mar 2020 06:48:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=plasmability-com.20150623.gappssmtp.com; s=20150623; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=oESds1bx+FjAgtSZROEsYLKdHpXe78g7qzv3wo6Qtb0=; b=pUMaTPpLoXUBu9r1DuwgQ+MLQRSBeR6GJ9aN3RFXNjgLuPahIpw49dsLPz4093Oh4X 8iNXWu2J9XzXxTHMrAzY17xTJYPDUQdyevINK50DhVXkQA6FjS6LPEMapoHctv+7jPWt IfRc2bqjHakeLzmE3gG75rW2zAUeTMjNstVO2jxXvgWbbByu7/2GVt5/3fG0JeGQlr+e pb8hOYnQ+t9j5xoqD9BPcea37HxMpODoRn9UlowdKuao0kgURHLIPgGZ/1wUCt1BzTxM ibBbPXKNVu79ceY0ZZc+CuaKypu6tndRP8El9KOIjGKBK63cTp+767lvDcxWNSarCE1u KUXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=oESds1bx+FjAgtSZROEsYLKdHpXe78g7qzv3wo6Qtb0=; b=aqFqXeLSUN9cCVNN9VqsnRirZiB6RFdEZKChzGH5CH7ofiWNzN5Vvr6vBeK+5XlXj3 uJtwPrtfTvBegMyB48/DxIL9MuyMfvnYoMz33DKpq8I+rc9XSwOycaGF2BhCYXnrZQNz AA1x+p/aRp5uyDZ8SujxdXsQIwiis388rzflgZkOnteSAaFJM+DfKzSvYalyEuPYyveT 0Vzk0+tBhMTfRwitI2PDq9N1S0pCoI3gVuZewHcXSoHUPiOh6ZdxBx+panppbnWGU6FU mgNeFmpSZ70ztwBYXPcWhv+A9uLRxxaBMEEmclWHBRpg5/buhfuN4XNE4IrGCBeDWp47 BV9g== X-Gm-Message-State: ANhLgQ32EHyban3/Gixd6h4wJarrtnA79mFGwl5+nwMWBST3ezgJsK7r 0oNKff4e6q7lTWkbicCeubIzCA== X-Google-Smtp-Source: ADFU+vtyC8ugYkROAhKNbbvTihtuxQl8jva84bAnC3PgF20DxOYAKvJgu9jlKi5LubjYlwlfMP8Hkg== X-Received: by 2002:a9d:b89:: with SMTP id 9mr2848630oth.297.1583506079546; Fri, 06 Mar 2020 06:47:59 -0800 (PST) Received: from [10.54.157.4] (mail.semiconservice.com. [71.42.222.237]) by smtp.googlemail.com with ESMTPSA id z3sm10105820oia.46.2020.03.06.06.47.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 06 Mar 2020 06:47:59 -0800 (PST) To: Mailing list for lwIP users , vrnud References: <1583493790978-0.post@n7.nabble.com> From: Stephen Cowell Message-ID: <02275089-297c-c62f-d03d-7c3054df5417@plasmability.com> Date: Fri, 6 Mar 2020 08:47:58 -0600 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <1583493790978-0.post@n7.nabble.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-GB X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::335 Subject: Re: [lwip-users] connection drops X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Mar 2020 14:48:03 -0000 On 3/6/2020 5:23 AM, vrnud wrote: > Hi, > > I am using lwip for Modbus and Http application. > I have used raw api for both the application. > > I am facing disconnect problem with modbus application while http > application is running. > Web page is auto refeshing at 3 seconds. > > kindly let me know what are the reasons and where should i look in firmware > to solve the problem. > First, I'd Wireshark it... WS is brilliant in diagnosing Modbus problems.  If your TCP and Modbus stuff is OK there, move into lwIP debugging... turn on the trace features etc. __ Steve . From MAILER-DAEMON Fri Mar 06 16:00:02 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jAK4g-00080m-4Q for mharc-lwip-users@gnu.org; Fri, 06 Mar 2020 16:00:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:41939) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAJik-0004Jt-HA for lwip-users@nongnu.org; Fri, 06 Mar 2020 15:37:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jAJij-00087j-Fl for lwip-users@nongnu.org; Fri, 06 Mar 2020 15:37:22 -0500 Received: from mail-mw2nam10on2059.outbound.protection.outlook.com ([40.107.94.59]:9240 helo=NAM10-MW2-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jAJij-0007z5-3o for lwip-users@nongnu.org; Fri, 06 Mar 2020 15:37:21 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d4/vcUsT2jaGegGdoLVHD1XT1mqQk7zq/hvt4zZcfeFJn7MYYcpJ7F4LO7gG0RaUIuKBca0j9xaSXWGJkARfjsLQEepXjF7cUdfKyZCUGi9GBI/JSsGLi8rxlOFmw2ihQz8dAR+RTuUF2RAjwMhF4zyZzoaBJMo4tIIOotfbv38NJYELbC9p0fVYdaDvWXXOyNFDTnLwyt+oD2uEyK4ca8D91liQ7KY1fX7PjNxawStSQOUOQeKTiDqeLXMQnwxUGS6hPIqubzF/E2JNW157Rh/emztdnMVBVEC8Kh97D14YcS+DiDUaS1DE63GetrM8e2KonPqP/RWEFsHDEPPrnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=U9hnskJBhn1l0IqVl+roxOyHc6ClAboSZkFOTUWz1Mk=; b=LgbxGf0xGOsusE/U1WTjasc32X5e/9N1fvb2+XBVU5alWlVpP7IfWADkQKMkkJbL6NbhFVHYlBsV+sP0PAqWJhGlPoyGSFt0y389ss/0lHba1o1qjDOYSKmkvldJlJlhJvrEV/5e13NNoL8g9gx08pwLyLC4ZM9tch/JSta/4McBB3SgbnsNP1qmpiV0pnFEGx/HK8uMUbeM1qcFXxpCDZRHuHs6oT3FwNmUUtXF++nQSxRfWsBtYtfkqvnieoz1/c/YYOoaWuZj1VZEuLW4FAydsOVo7nk77VuLTdX/BA06UnzvVs7hUFSHSN5utT9hXPT33AzU/08qmmZTlinctA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=specinst.com; dmarc=pass action=none header.from=specinst.com; dkim=pass header.d=specinst.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=5208848821.onmicrosoft.com; s=selector1-5208848821-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=U9hnskJBhn1l0IqVl+roxOyHc6ClAboSZkFOTUWz1Mk=; b=mdmIZMNk5WbxlcNusmt1QUbOjY1krib+q4DwHnhKsAtdLIAOLK4/W+RO/Yks+b9AyyZRE7kNW+fFF+ev36Q+yykBNtxD5Gyp3VWWnd2MMAHC+St78uHc3o/ERdcTpE9RPzri5gn+ZitBbWxRwjbw0Ol4hejReNJ+x8IhZEa4odc= Received: from CH2PR12MB3942.namprd12.prod.outlook.com (2603:10b6:610:23::29) by CH2PR12MB3845.namprd12.prod.outlook.com (2603:10b6:610:29::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2772.18; Fri, 6 Mar 2020 20:37:18 +0000 Received: from CH2PR12MB3942.namprd12.prod.outlook.com ([fe80::5593:5fa:fa0c:ac82]) by CH2PR12MB3942.namprd12.prod.outlook.com ([fe80::5593:5fa:fa0c:ac82%4]) with mapi id 15.20.2772.019; Fri, 6 Mar 2020 20:37:18 +0000 From: Roger Cover To: "lwip-users@nongnu.org" Thread-Topic: Do not fragment (DF) in a UDP transmission. Thread-Index: AQHV8/abtMeBKoPNU0iwbUiDmRE7CA== Date: Fri, 6 Mar 2020 20:37:17 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=rcover@specinst.com; x-originating-ip: [65.121.185.242] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e3c46dc8-a3d3-47e8-ffca-08d7c20e29ac x-ms-traffictypediagnostic: CH2PR12MB3845: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-forefront-prvs: 0334223192 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(366004)(39840400004)(396003)(376002)(136003)(189003)(199004)(52536014)(7696005)(316002)(8676002)(9686003)(81156014)(8936002)(55016002)(86362001)(81166006)(5660300002)(6506007)(4744005)(71200400001)(91956017)(508600001)(66946007)(6916009)(33656002)(2906002)(66446008)(186003)(76116006)(26005)(66556008)(64756008)(66476007); DIR:OUT; SFP:1101; SCL:1; SRVR:CH2PR12MB3845; H:CH2PR12MB3942.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: specinst.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: BgvJnaNN/gXSBJrtnmI8w8ctLv1CAcp6c3g14Gf1y1ppMcjN46xZ1dA4mRoTSizOL5uUub0qvUQXheINn2nX1yzfCa2iuIZTNqhPYMk6jZwIAJDl4ScTBeaus7P6XSeB5MtwJkpBx6hI8yVfAOZ/9IimcLLt63HzdvpsTOF7hriwhnbKCOUq5d486+tkZBodwqbxUPc264sm+LcVhyhCFVvsVWtI5fhrtSgKdhhzTvUFRFwJbHEXphDY5UEm2+mbYhbJKrmrKTG6/xeN1R1W9137RLae8emh+TSl2SdQCPmCeuu9poVYpURsYnV1qz2kUtsoGkyxlCkzNDh8FH1LtZlG/UjlGzi2IBUyTIzLkk+HzxAg3s2u+Mzdrrzxg9p9GgqGUKCj5HwHwVnkuz5Jr9zs7axTMZPhI8ooc9Fpkjr6N1KU9sfMOu0Qtr2YTHLM x-ms-exchange-antispam-messagedata: rXVGqhnu/J4G0FD9hfUtJ4PHFORSCZSOjFoYrs8bovW9/Jvaug+t2oMVr71/1ZTx57Shh1zW47MztN61MImfSO3oeLLSrVQg1m/w+slpO4pGaa2u+zeMK+K+yI83otxRScYSp0xLM/j1+qMHs4WRtw== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: specinst.com X-MS-Exchange-CrossTenant-Network-Message-Id: e3c46dc8-a3d3-47e8-ffca-08d7c20e29ac X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Mar 2020 20:37:17.7140 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a4a21500-dc30-4a71-9ea4-6c5505810f8f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: po1bh8B2vmENCrHnB2vWbVrm4AADVSBVWnnithB/CwPiTm76IG+9I+cKS1oE0wYKvr/Ui17hhoMSLJdV49pXPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB3845 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.94.59 X-Mailman-Approved-At: Fri, 06 Mar 2020 15:59:58 -0500 Subject: [lwip-users] Do not fragment (DF) in a UDP transmission. X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Mar 2020 20:37:23 -0000 Greetings,=0A= =0A= I am writing a video transmitter. The protocol I am using requires that a "= test packet" has its do not fragment bit set. This is used to determine the= maximum usable MTU of the intervening network nodes.=0A= =0A= I would like to know the recommended method for setting this bit in my UDP = transmission. I am currently using the ip_output_if() function, and it does= not have any arguments to allow this.=0A= =0A= Regards,=0A= Roger W. Cover= From MAILER-DAEMON Fri Mar 06 23:44:51 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jARKV-0005Gz-M7 for mharc-lwip-users@gnu.org; Fri, 06 Mar 2020 23:44:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:37376) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jARKT-0005Gj-93 for lwip-users@nongnu.org; Fri, 06 Mar 2020 23:44:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jARKS-0000Eh-6T for lwip-users@nongnu.org; Fri, 06 Mar 2020 23:44:49 -0500 Received: from n7.nabble.com ([162.253.133.57]:51632) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jARKS-0000B8-16 for lwip-users@nongnu.org; Fri, 06 Mar 2020 23:44:48 -0500 Received: from n7.nabble.com (localhost [127.0.0.1]) by n7.nabble.com (Postfix) with ESMTP id B22A4143EE691 for ; Fri, 6 Mar 2020 21:44:46 -0700 (MST) Date: Fri, 6 Mar 2020 21:44:46 -0700 (MST) From: vrnud To: lwip-users@nongnu.org Message-ID: <1583556286683-0.post@n7.nabble.com> In-Reply-To: <02275089-297c-c62f-d03d-7c3054df5417@plasmability.com> References: <1583493790978-0.post@n7.nabble.com> <02275089-297c-c62f-d03d-7c3054df5417@plasmability.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Mac OS X [generic] X-Received-From: 162.253.133.57 Subject: Re: [lwip-users] connection drops X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Mar 2020 04:44:50 -0000 Hi, Thanks for your reply. if only modbus application is running, unit is working completely fine. Problem starts after web browser application is started. i am guessing it might be synchronisation issue. but its too early to say anything about problem without proper debugging. i know the lwip debugg feature but dont know about trace feature how to enable it? thanks and regards -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html From MAILER-DAEMON Sat Mar 07 04:04:01 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jAVNJ-0007NU-DK for mharc-lwip-users@gnu.org; Sat, 07 Mar 2020 04:04:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:35855) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAVNH-0007Ma-6W for lwip-users@nongnu.org; Sat, 07 Mar 2020 04:04:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jAVNG-0004fY-9O for lwip-users@nongnu.org; Sat, 07 Mar 2020 04:03:59 -0500 Received: from mout.gmx.net ([212.227.15.18]:53249) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jAVNF-0004QK-UD for lwip-users@nongnu.org; Sat, 07 Mar 2020 04:03:58 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1583571835; bh=5+ojz3zNQTLlqnTyNbtGM+ZzPRXqtO6ZzvOZCdPGiao=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=D2MreGhBfjFPbuH0s2xqZEqt4nRRqzMaKSZdcxK/TODU8xU3VTUFj7R4sJCPCnwtl NsVn6722/5/XmsmcuzMkzf92ryrTXBfDWnd2vXXkk47pRzm3dnmyO/2w4AicxVnueI /5ap3smBJV3FyBAifFziNQR4yUSzz2GMJsWZ4d/8= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.61] ([176.199.210.162]) by mail.gmx.com (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MZkpR-1iohDg2vAt-00Wp7c for ; Sat, 07 Mar 2020 10:03:55 +0100 To: Mailing list for lwIP users References: <1582580718140-0.post@n7.nabble.com> <2AC123C5-CA33-4D00-99ED-CC3253BFECC4@gmx.de> <1582666711537-0.post@n7.nabble.com> <1582837527450-0.post@n7.nabble.com> From: "goldsimon@gmx.de" Autocrypt: addr=goldsimon@gmx.de; keydata= mQENBFDPe/sBCADdhO6Fn+7pnHtmEjiWs14u+n5cFQAhvjZ6EiZLwh0gMl5vYT1HDJ+8HTUA h0xMgXQ2Tsxzizt1TTBWn5DK74SjlIx/dYpM17OHmu6wuIbexKN6hEJSFZjtRlbIlWqEB8px EVeU7//1V/Ukj3QAI3yOrrhIg/s9jmuxMo05fjOsYEkub9PHmvFFdJ7KuApsVss4QRZIpawq HRFv9gY+4DrOvhwMZk6CHlvlAOgqlsMftRMl4699ww2NNbtU2U8n9XFlf2CQxkYAzIJC27Rc +83q+d5xbtcqzxcHhsFXelNTB09ZHEti7NpZZpnP4siVEa8p9BY8n11Nr/97c8lyZUCbABEB AAG0JFNpbW9uIEdvbGRzY2htaWR0IDxnb2xkc2ltb25AZ214LmRlPokBOAQTAQIAIgUCUM97 +wIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQHWthwbhCmfU0tQf+L0m7VG1LNzpt Yvx/1ZZFbqlggespnVuc6HPYqtmbIWxHmlQZgM6Pn61rUWmUl8ilWdcCw8Wuam2pEUSBzlZF z/738kcazWv9SRSbr7ULQi/d/gfOtcfAVUMkTF9jhWpAYR4zmzpR31mvs6Ltfh5rw/bsVJ+/ QbfWLJqdbRG4NykfuGXafQ+o+SDlMlcaBe49whhJsQcCBrvwixeNChUOkV3TY+jgVu4u1MEY c1aJKgVJkBVkAEsJXWFHTkF3TvJf5KdLLGbVBq3I6ItrLgAowI0kC4MzU3eNsCBEroBGJl2/ 7fmut8i+tQNiDfOVP4EHaSD86utnyawQev0TZnY2Qg== Message-ID: Date: Sat, 7 Mar 2020 10:02:44 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <1582837527450-0.post@n7.nabble.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:BCV2NvAVMigqJXKXc6h45A5TnEzHdQ2intmVbgOS0QfScGV08aG rMsKfw6+9OuCM9hFK1hdvZ9kL5QkJQKk3UX+QWAFfahnlqejaXgTNOtLonsSO9tdRxJk9AT uY89mOcC/R5DRtqtAcbXAREUTxazk5Dn3VzYWsg1fmT5ZBxfLLWt5ZB3QdYBs7JgKtFE1uB 4iomWcSfdixVN1n9WFaaQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:Yvx9ytB8h54=:bREdBeB22loxzcAA4dS2mT FW89eZmTbwllOZkFdrVqWLEirp13J5WNpdYH8510vCqFmJgpBjQfcBuDgp/Uf8elpa/8gBH0L k8IbWsecIc2bQjNvldwKnXDgnzF/xN5Me9khVXqg0kl2xhZNZtg0lWwn5jOMYz7uP6iPv0i2C 3uJ/rPbpc7WnSeBhcVwOlp5ryBJ6PgFCEyvARGyq2VJX3rw9Xxzh3uIa3m8bXqrWBuiVkiuHe KYoAAe6s90PJyMCbf/HPH0IDm37DKWpRGoDqH2+g0FeHFzSbpiadcJfPN3T/Mc5hZZdMdYsOv Wr5DbYXJn1+uB8hY8ANIZ8/oEcNIKl2CNFyPvFQgnrgY18R5rMunnNMhtPbSgxEmngld2CoHy wfFxfgHco3yYZfe782C59H6M7R5yteWOoBhtaCEiSk/ceNmYCmrLVLcgKlDRSL0+uQauk6Bm1 9CgJ1dSiSnL8VVbx6uLcnkAv4fXnByCQe6Ntdii9RZ6Y+cTM08KwEnugWiWwgMW7+1jdnZww2 Dao+e2PFUY+AcFgl9gGXju2CSi23vCrJPP9uzzOzg2KG6fUcdenS/QMjwQo60yPc4us+0FZIj wTq9192ECA/EFJhf0JOIh4t5ZVbnEhv4i44pkqdJFVc6O7bu7wvtX0hRVDT4CBz1uDacvCMCK uaE7zjTyXRUOfWpjinQi8C8oRdtWmOf3dDDLJVq+0H3iItPleO58WDsFOTgm9AXVxWOGhJkCq 0bB8oJwTn6aI6c3hbeaZo0Hup+NvRZY/WOOfFPd6bNT51LKSVucBCDjq2hvjFQCydWRpx7+nE cpboAAfWOs+Z2cLG3UdcgUVKXm7T++TjbREcNdQ3GSvTR5IZT9HDX/nt8MiZrYjcSxYACU74s lCKqK2uf+vHwVoBaSqw92GtyJw6m2ldOYf5+TQsvWr4i3p0RHuQ+x6lEKWwC4Ym0D9cJHbwho LhdGQiO83MkPgTMEpx2wCo39/ukPEIovdCyqVqAGpz+IhmYzL5hSddc8T8oBMQZRYAfpc73Xf 0duucdtEmQaQ28jdGJCS5OTVg7o+cSp+zoaer2pk9X6RhSbcd8QGbIUClzAhZ0MmRx9deIoqx AshEMAC09YlVnh42gErouUKFNYiR7ws/uMOnS0wd+wq1GgVwOmJKY/xkV69y8HxENYc4Szyx7 KuYA4bIAsQHBy9EqIYKBfpm2PblUwVhbLNcGRX2UMaZGesHrSUBJPWkGX+EmIO8g7iTM8Jvka x8MDibKJe9Vl8sret X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.15.18 Subject: Re: [lwip-users] 802.1D bridge X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Mar 2020 09:04:00 -0000 Am 27.02.2020 um 22:05 schrieb SimonW: > Yup - bridge is what i want. I want to form a number of IoT nodes that a= re on > a mixture of 10/100 wired ethernet and b/g/n/ac WiFi into a single sub-n= et. OK. So have you just tested it? It's really not that hard. Just netif_add() your port netifs without IPs and then netif_add() the bridge netif just like you would add a normal netif (with IPs etc.). The bridge netif is then the only netif with IP settings, the port netifs are just used by the bridge netifs for sending and receiving. Regards, Simon From MAILER-DAEMON Sat Mar 07 04:04:04 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jAVNL-0007Nr-Jk for mharc-lwip-users@gnu.org; Sat, 07 Mar 2020 04:04:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:35860) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAVNH-0007Mb-7a for lwip-users@nongnu.org; Sat, 07 Mar 2020 04:04:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jAVNG-0004fX-9G for lwip-users@nongnu.org; Sat, 07 Mar 2020 04:03:59 -0500 Received: from mout.gmx.net ([212.227.15.18]:55757) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jAVNF-0004Ow-S5 for lwip-users@nongnu.org; Sat, 07 Mar 2020 04:03:58 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1583571835; bh=tFXTkoi6q1wg4r8wuIej9zU1VHVAuP69MpOekEQXETo=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=LZxAX7556nE726T4CTfuigIO8BAxk1kZanCQzSoMNaP+xrVSh4l/awapp2FBrVmGR 5UQpklqAnkS9TLZSVXHLpvwHAWVQA36L29ncAO3tqXKZzwOlLi+Uc1NoV8lQtwdvfd XQ0wRBtVgll23D9nCDXUxWJpRVjWAuS7bJP2cpUg= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.61] ([176.199.210.162]) by mail.gmx.com (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MGQnP-1j97mY1kAX-00GqwN for ; Sat, 07 Mar 2020 10:03:55 +0100 To: Mailing list for lwIP users References: From: "goldsimon@gmx.de" Autocrypt: addr=goldsimon@gmx.de; keydata= mQENBFDPe/sBCADdhO6Fn+7pnHtmEjiWs14u+n5cFQAhvjZ6EiZLwh0gMl5vYT1HDJ+8HTUA h0xMgXQ2Tsxzizt1TTBWn5DK74SjlIx/dYpM17OHmu6wuIbexKN6hEJSFZjtRlbIlWqEB8px EVeU7//1V/Ukj3QAI3yOrrhIg/s9jmuxMo05fjOsYEkub9PHmvFFdJ7KuApsVss4QRZIpawq HRFv9gY+4DrOvhwMZk6CHlvlAOgqlsMftRMl4699ww2NNbtU2U8n9XFlf2CQxkYAzIJC27Rc +83q+d5xbtcqzxcHhsFXelNTB09ZHEti7NpZZpnP4siVEa8p9BY8n11Nr/97c8lyZUCbABEB AAG0JFNpbW9uIEdvbGRzY2htaWR0IDxnb2xkc2ltb25AZ214LmRlPokBOAQTAQIAIgUCUM97 +wIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQHWthwbhCmfU0tQf+L0m7VG1LNzpt Yvx/1ZZFbqlggespnVuc6HPYqtmbIWxHmlQZgM6Pn61rUWmUl8ilWdcCw8Wuam2pEUSBzlZF z/738kcazWv9SRSbr7ULQi/d/gfOtcfAVUMkTF9jhWpAYR4zmzpR31mvs6Ltfh5rw/bsVJ+/ QbfWLJqdbRG4NykfuGXafQ+o+SDlMlcaBe49whhJsQcCBrvwixeNChUOkV3TY+jgVu4u1MEY c1aJKgVJkBVkAEsJXWFHTkF3TvJf5KdLLGbVBq3I6ItrLgAowI0kC4MzU3eNsCBEroBGJl2/ 7fmut8i+tQNiDfOVP4EHaSD86utnyawQev0TZnY2Qg== Message-ID: Date: Sat, 7 Mar 2020 10:02:44 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:goLCoXnOgDjiB5Sk3h8f8vi+XmBZdM2BCK3Dr2T4F3qx+idmHcU pCZwZQCBvOcG/SolFuegYv27iVVDaXwTq83zKeosjfjB7k55qat/9qG5DbVIGrFUPhvvrR/ v89uagsXsi8N/c3/9C95tPjbW4y4edStOFk266WMifKmt2+VJHzUAheL30jlVw5q2j/RhWk cMtl2uncSUbGDD09fYOIw== X-UI-Out-Filterresults: notjunk:1;V03:K0:6xmSHUs8tSw=:3oRObO0VH2UGiJHkUsIPSS P/5L6gTRKPavXgo8CcEWZbMuGtFwKydOvbfTMjnKgGF9q34bWnffWVhgCUvE7EBgnaS72f/E3 ukgQfBkBobWy4D4dl7h5bDd3L4bW14Zo7SMpNrHBloOcU39tckbTM3W+yzl6Wjn66uuW2nwsP YGTuUuTwmyZQZy0aueQ7mZItWDx4VKi0+QIr4u/6CPrxtfgJcSLbZ+NfQNyrM7PXcrbmUB040 dTMX72Atijn+r4QzSNsYnsK5WPEU4fiBLlbrBEWkJByzaGNA74OR4uz5qBQvF4OJcsEpsJKTD RHWCJSkWvJ3wgFphWVvtKCdbAwE+Is8JRz8ddByurJoc613TRJU9HRK9Xdxnc3pF5e/7Dd16P vU8DfzUfiW+HHFEySGANtcOGsYh0FBwaQjinP9zZoQWkawUEB0MiZfsZ9yKIHyBaASb2qjwgb +oQW7MLWuMi4Wf3AC4bTINuFDxLO76SA9iNdo2KFXFh/pDTZ1KSE+GVH/7UZ4vMyFr6v0/7SW qqjBNAslJd2hqNrlX5p31IsrkX9TL9sa+igOfE+81FsxCiLrtyD9UgUQa8md9zSqSuTbarLc1 tS67HaGAyfZRncNhRQkJF22HwnqB50p7W/xCOTr+mbb6ugT5T6xOTXOSkAtVx7FFR4zcm8tT+ ZYZibD2Lv5DSGWMkpJq7arSQVjJx+6hJka7WePxM53i72K2aH17Gh+44gZl0TdKLXwYxQqUpI qQn/yLqsUf0CUEw584Fvw6gZZ4Dce8dD6fYmKY2HRzzKmOFbCsn1q+V/1+pVRD/xHNRGDrSiy g8fP60Ns4BpA7ccl4cY45DtORW/+KEADONzgzfoMAvjA8Cv5vE2w6Eo+If/rMJyRBZa3uTxix ZCJO0C08hKjW2XCKiHhdjruiu33IWGK1MGW7H1WggCdeJ63XocpIhbqf7AWZ8+sG4DCkXhXnW FrqF7//W6wd1Xlm9OXTTgBEkFWGelWstzI4uLp3Ihj/w49Dbjxl/j74/AFh4TPD0pviwsFaBm 0ln4ILeX42yRnYmjTEq2jgnaQt3WvwqDClH+JJ/wkFzEB3g4vV4dZHporVTMDGMu9o1ClyLub X4ZZdlHXoYsQCDSRaknE3h4WcAaNafGY5MqBIK+Z8V6Fhc262Is1GBxmDdwZ3Kc7zx6+ulOiR fIMEFKEuLsDqWjUMcsTrnecIL6mgpBwiyrmaUeVF6Sll/IBy1aYDP0cY25MNIDgykNgTdHFF8 d1Dsn7CODbfktRvYS X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.15.18 Subject: Re: [lwip-users] Do not fragment (DF) in a UDP transmission. X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Mar 2020 09:04:00 -0000 Am 06.03.2020 um 21:37 schrieb Roger Cover: > Greetings, > > I am writing a video transmitter. The protocol I am using requires that = a "test packet" has its do not fragment bit set. This is used to determine= the maximum usable MTU of the intervening network nodes. > > I would like to know the recommended method for setting this bit in my U= DP transmission. I am currently using the ip_output_if() function, and it = does not have any arguments to allow this. That's currently not supported (hasn't been requested so far). If you tell me a standard way to do that (e.g. how is it done on sockets), I guess adding this should not be too hard. Regards, Simon From MAILER-DAEMON Mon Mar 09 09:21:39 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jBILj-0003e3-MW for mharc-lwip-users@gnu.org; Mon, 09 Mar 2020 09:21:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46438) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBDmO-0004li-Oo for lwip-users@nongnu.org; Mon, 09 Mar 2020 04:28:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBDmN-0003jo-Le for lwip-users@nongnu.org; Mon, 09 Mar 2020 04:28:52 -0400 Received: from n7.nabble.com ([162.253.133.57]:62412) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jBDmN-0003jR-FZ for lwip-users@nongnu.org; Mon, 09 Mar 2020 04:28:51 -0400 Received: from n7.nabble.com (localhost [127.0.0.1]) by n7.nabble.com (Postfix) with ESMTP id E2F65144D221C for ; Mon, 9 Mar 2020 01:28:49 -0700 (MST) Date: Mon, 9 Mar 2020 01:28:49 -0700 (MST) From: hamidkavianathar To: lwip-users@nongnu.org Message-ID: <1583742529742-0.post@n7.nabble.com> In-Reply-To: References: <1492506176889-29319.post@n7.nabble.com> <0ab290d2-81f4-dd85-c1a5-0339d83f9274@peperoni-light.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Mac OS X [generic] X-Received-From: 162.253.133.57 X-Mailman-Approved-At: Mon, 09 Mar 2020 09:21:35 -0400 Subject: Re: [lwip-users] Building mbedtls using LWIP library X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Mar 2020 08:28:54 -0000 hi I want to develop mqtt and lwm2m applications with lwip. I want to secure them with mbedTLS. I am using a stm32 MCU. could you please tell my I should do that? thanks. -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html From MAILER-DAEMON Mon Mar 09 13:08:30 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jBLtG-0004Mu-Ox for mharc-lwip-users@gnu.org; Mon, 09 Mar 2020 13:08:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56224) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBLtD-0004MD-46 for lwip-users@nongnu.org; Mon, 09 Mar 2020 13:08:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBLtB-00043k-HN for lwip-users@nongnu.org; Mon, 09 Mar 2020 13:08:26 -0400 Received: from mail-bn8nam11on2085.outbound.protection.outlook.com ([40.107.236.85]:6127 helo=NAM11-BN8-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jBLtB-00043B-6z for lwip-users@nongnu.org; Mon, 09 Mar 2020 13:08:25 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LxPDc5D2I2Kw0vrt5KznLpuZRWVHK7IZ2S/L9rdOXr9U76ySB1jig3BtXaiKoRc106S+fzTvvyyNW3p1CnwT9oJpo/5HfdtgE9K4qeug4lgsxvh5Is2PyBUsgUOf+gSeey1njxbxWeykQa+rey9+NpYWgi3UNUCtqSZSAsWbiR6wdP6o4RvNK+6kYZtmNAubNWTqU8Du/BOpCs0ZrtYQam6lx0+jZm5y1yO3ZL9naoOVTCF92UlFDFyFAy2g3I3t4xpkQX+ta6VhdGsj1XrSIPWfljVWy+qS7rBe+aQdAwkOabUMfkNYPu+TxdSEgxxR5TYUYRRdaj+KmjI4IWgHMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EyBDAF/ABGuHG41+QowYrvuMfgWYkEuNydWVORoBbB8=; b=Dq0U81nipXoZQRx97yTo4kIRwEW1aiIwbIleUPBeXhMV4L/QnjHjy6b5ee7oqh5dkmYpuKtd7XVBUtZqTfI5ja5ADBgU8tMlxoAOmd6lsb9llzmRDOo6TL1cGxubIWgO099QUXfZqFXCzDu5l6rBJ62rSrEZcNJqNC0PMh/O0fcz+c5W19wKE749nJl+wgTVekhOfw+Z/AqC3S2LYkW6OwlvYQoU84jruWUxroTYfaIBVR5gtDCFV2od+DIwmO9c/DLd4Mbb/GiuwgoJEzjCN658hlMMgMJefOtyF5CMRdmC9XD4x++a3qXoz6eYbWqc0AY2RLDGOYNqAI1Qc3KM4w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=specinst.com; dmarc=pass action=none header.from=specinst.com; dkim=pass header.d=specinst.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=5208848821.onmicrosoft.com; s=selector1-5208848821-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EyBDAF/ABGuHG41+QowYrvuMfgWYkEuNydWVORoBbB8=; b=bRnvYSCwZIbrIF+Upu/C5DGULcv3RE8GWtHSE4JZil8ARBwX8zraEZ3CyfCchWl9WQDXJFwJ3vrMbg7odXKdCtTNqXEM4nELATRTSGWGAifkekMUGUShPKryo+wDWHGmcCG/3jpufZYBWTw1FSwrg0um4IQNiuzsd8K5Mh9RXFI= Received: from BY5PR12MB3940.namprd12.prod.outlook.com (2603:10b6:a03:1a8::15) by BY5PR12MB4308.namprd12.prod.outlook.com (2603:10b6:a03:20a::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2793.17; Mon, 9 Mar 2020 17:08:22 +0000 Received: from BY5PR12MB3940.namprd12.prod.outlook.com ([fe80::d25:b964:cc2f:1a9b]) by BY5PR12MB3940.namprd12.prod.outlook.com ([fe80::d25:b964:cc2f:1a9b%6]) with mapi id 15.20.2793.013; Mon, 9 Mar 2020 17:08:22 +0000 From: Roger Cover To: Mailing list for lwIP users Thread-Topic: [lwip-users] Do not fragment (DF) in a UDP transmission. Thread-Index: AQHV8/abtMeBKoPNU0iwbUiDmRE7CKg81mYAgAOh2So= Date: Mon, 9 Mar 2020 17:08:21 +0000 Message-ID: References: , In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=rcover@specinst.com; x-originating-ip: [65.121.185.242] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 62fc90ff-2727-4657-3cb2-08d7c44c791b x-ms-traffictypediagnostic: BY5PR12MB4308: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 0337AFFE9A x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(366004)(136003)(376002)(346002)(39830400003)(199004)(189003)(2906002)(8676002)(66476007)(66946007)(966005)(76116006)(45080400002)(64756008)(66556008)(66446008)(71200400001)(86362001)(6916009)(52536014)(8936002)(55016002)(81156014)(81166006)(9686003)(508600001)(186003)(316002)(6506007)(26005)(53546011)(5660300002)(7696005)(33656002); DIR:OUT; SFP:1101; SCL:1; SRVR:BY5PR12MB4308; H:BY5PR12MB3940.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: specinst.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Y9t+Nf5FdCSvfJeRRopr8dTESScTawC43+5I3VjU3OUmRXF5Y6Lt2hn4g8ZqvVfOEkYWtgeIsvYBEM6xKNTwum6g+uzm6E1nd0neGqDbEbuGYJKhZhYQet1QnoFJtb3r4mdWBAMHDII/LjnfKwyDjFZrgKqb/CU6SCnugqqLKwMuxv1Nr6ZJIkWUNCjZLShJnAhImbwnoVOJy6LAMWpwYPajWo3j9jqieW4CeY1distTuOR6cnFC27qxTv54WqRk3obU+ts3a0r34n6eyu66/f6fewrU6NrFbLfgCMOfV6w3OKAQ087ixd27UrEr5eIz4ZMUl83cvLW3DwQ9f+vAfq53jH8NyDVeMYFINmvVX42LZh5k4k2hjG53HQ3SwxociISPBym5hQaStLFVi5bejD7wRTR/JQnVFSFK4AzXtNxe+tkRNhRfp8L8lA1NxfIoIt2noPZbmoSL0m9gb/VuvX9bnnNW9YwIwXtScZ/zzaa61SWaQrOXoNQBhAlHOmauAU6FBOMJeFqYTCe0s661DQ== x-ms-exchange-antispam-messagedata: RWVaeo0Ij4IXdN8OP0dx/BdxNsLL//w+zCiuF1ChdMdsBsGXM9NcMIcmixjUZGRl7+FmT3Fd0LcXPOWgFaV/MKiomCB7mbAG0nylhjOjonCFLW5EQw2fEuqtH9RDr99DNUKpFvsjLMbta3i08L0owQ== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: specinst.com X-MS-Exchange-CrossTenant-Network-Message-Id: 62fc90ff-2727-4657-3cb2-08d7c44c791b X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2020 17:08:22.1053 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a4a21500-dc30-4a71-9ea4-6c5505810f8f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: C1Jl+oU3lUVo550skPkA1UXYcqpqvps24O4k/Fkloy019yGYLtoGllqblDniZifAwssnjiZ+53+uTaFjDvMxVA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4308 X-detected-operating-system: by eggs.gnu.org: Windows NT kernel [generic] [fuzzy] X-Received-From: 40.107.236.85 Subject: Re: [lwip-users] Do not fragment (DF) in a UDP transmission. X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Mar 2020 17:08:28 -0000 Greetings Simon,=0A= =0A= The Linux man pages mention the IP_PMTUDISC_DO flag that "forces the don't-= fragment flag to be set on all outgoing packets" in the setsockopt() descri= ption.=0A= =0A= The documentation for setsockopt() for BSD 4.3 lists the similar flag "IP_D= ONTFRAG", with the qualifier "This option is supported for sockets with an = address family of AF_INET and type of SOCK_DGRAM or SOCK_RAW only."=0A= =0A= The Microsoft documentation at: https://docs.microsoft.com/en-us/windows/wi= n32/winsock/ipproto-ip-socket-options lists an option called IP_DONTFRAGMEN= T, about which they state "Microsoft TCP/IP providers respect this option f= or UDP and ICMP."=0A= =0A= There is also a reference for the .NET framework at https://docs.microsoft.= com/en-us/dotnet/api/system.net.sockets.socket.dontfragment?view=3Dnetframe= work-4.8 if you have any interest in that.=0A= =0A= There is also a comment I do not completely understand in the lwIP ip.c fil= e (line 790 in the ip_output_if() function, version 1.4.1) that states "don= 't fragment if interface has mtu set to 0."=0A= =0A= I am not very familiar with sockets programming. I did some 20 years ago, b= ut I am sure it has changed since then. I have been using the lwIP callback= API in all my products for the last 14 years. Since I am using the callbac= k API, I will need something that works through that API. I hope this infor= mation is sufficient. I am very willing to patch my system and do testing f= or you. I just need some guidance about where to make the changes. I have b= een using lwIP for some time, but I have not paid that much attention to it= s interior. It has always just worked for me, straight out of the box.=0A= =0A= Regards,=0A= Roger W. Cover=0A= ________________________________________=0A= From: lwip-users on b= ehalf of goldsimon@gmx.de =0A= Sent: Saturday, March 7, 2020 2:02 AM=0A= To: Mailing list for lwIP users=0A= Subject: Re: [lwip-users] Do not fragment (DF) in a UDP transmission.=0A= =0A= Am 06.03.2020 um 21:37 schrieb Roger Cover:=0A= > Greetings,=0A= >=0A= > I am writing a video transmitter. The protocol I am using requires that a= "test packet" has its do not fragment bit set. This is used to determine t= he maximum usable MTU of the intervening network nodes.=0A= >=0A= > I would like to know the recommended method for setting this bit in my UD= P transmission. I am currently using the ip_output_if() function, and it do= es not have any arguments to allow this.=0A= =0A= That's currently not supported (hasn't been requested so far). If you=0A= tell me a standard way to do that (e.g. how is it done on sockets), I=0A= guess adding this should not be too hard.=0A= =0A= Regards,=0A= Simon=0A= =0A= _______________________________________________=0A= lwip-users mailing list=0A= lwip-users@nongnu.org=0A= https://lists.nongnu.org/mailman/listinfo/lwip-users=0A= From MAILER-DAEMON Mon Mar 09 15:21:17 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jBNxl-0000nA-5c for mharc-lwip-users@gnu.org; Mon, 09 Mar 2020 15:21:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49871) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBNxj-0000hW-4j for lwip-users@nongnu.org; Mon, 09 Mar 2020 15:21:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBNxi-0000al-47 for lwip-users@nongnu.org; Mon, 09 Mar 2020 15:21:14 -0400 Received: from mout.gmx.net ([212.227.15.18]:48093) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jBNxh-0000YB-Nc for lwip-users@nongnu.org; Mon, 09 Mar 2020 15:21:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1583781671; bh=4Mv++Ft048Qrf1punFenihwyRwIYQQbc4nFgK2GGOZU=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=J71kX9VJrouj1/ytIUXUk/JqZKMnRf/uYUVR+ozp7e9va9sp5Wo28/yya8ZsXe7F/ JYdU5i/WbHUJVO3aUqhikNM3DloLP3dIlhDHh8GRlOoVbhuxKfasNWU+MINusInwUB yBAV4MneWG6CAwZWlsLkZ5KhIONI5W8j3M/kQar0= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.61] ([176.199.210.162]) by mail.gmx.com (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MFsUv-1j7pSC1V3H-00HLal for ; Mon, 09 Mar 2020 20:21:11 +0100 To: Mailing list for lwIP users References: <1492506176889-29319.post@n7.nabble.com> <0ab290d2-81f4-dd85-c1a5-0339d83f9274@peperoni-light.de> <1583742529742-0.post@n7.nabble.com> From: "goldsimon@gmx.de" Autocrypt: addr=goldsimon@gmx.de; keydata= mQENBFDPe/sBCADdhO6Fn+7pnHtmEjiWs14u+n5cFQAhvjZ6EiZLwh0gMl5vYT1HDJ+8HTUA h0xMgXQ2Tsxzizt1TTBWn5DK74SjlIx/dYpM17OHmu6wuIbexKN6hEJSFZjtRlbIlWqEB8px EVeU7//1V/Ukj3QAI3yOrrhIg/s9jmuxMo05fjOsYEkub9PHmvFFdJ7KuApsVss4QRZIpawq HRFv9gY+4DrOvhwMZk6CHlvlAOgqlsMftRMl4699ww2NNbtU2U8n9XFlf2CQxkYAzIJC27Rc +83q+d5xbtcqzxcHhsFXelNTB09ZHEti7NpZZpnP4siVEa8p9BY8n11Nr/97c8lyZUCbABEB AAG0JFNpbW9uIEdvbGRzY2htaWR0IDxnb2xkc2ltb25AZ214LmRlPokBOAQTAQIAIgUCUM97 +wIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQHWthwbhCmfU0tQf+L0m7VG1LNzpt Yvx/1ZZFbqlggespnVuc6HPYqtmbIWxHmlQZgM6Pn61rUWmUl8ilWdcCw8Wuam2pEUSBzlZF z/738kcazWv9SRSbr7ULQi/d/gfOtcfAVUMkTF9jhWpAYR4zmzpR31mvs6Ltfh5rw/bsVJ+/ QbfWLJqdbRG4NykfuGXafQ+o+SDlMlcaBe49whhJsQcCBrvwixeNChUOkV3TY+jgVu4u1MEY c1aJKgVJkBVkAEsJXWFHTkF3TvJf5KdLLGbVBq3I6ItrLgAowI0kC4MzU3eNsCBEroBGJl2/ 7fmut8i+tQNiDfOVP4EHaSD86utnyawQev0TZnY2Qg== Message-ID: <3b953ccb-93aa-5305-8808-23f1bb194a2b@gmx.de> Date: Mon, 9 Mar 2020 20:19:55 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <1583742529742-0.post@n7.nabble.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:jHpBEGBGcCgTuc/qaMQGMZY3vLKRWrecTqlitTUJgDiRjIi/mx2 8QpFglC/xmplUi2frIZZfD5WvrlHVx3XG7na6NKETSceMbLw3s6qcABfH179CV6CYLmbENh upqYZfL1NmrfuNsTrsL6QydsujgfYkYMdPI3qcu1c+GVI7kf/dorP9O3BHmm3oysW9Q4ZK8 3gdY93EgV/kxIYn1lKXHw== X-UI-Out-Filterresults: notjunk:1;V03:K0:N35bxhIYZew=:IkR4dFJoo4/ya70wpu1M63 elwKqoXG7Wlrks/Odt5J0oObgvbtp1oOk4OV12wVUtjRKBYTovBTrweHnC2XEcJol0GdRWupD vIWyHZhzBqqCDpG39eX07ZbOPBHV2amTx9RQSrUacrq1aVymF8fPMWmGhsoiP61wYfC9Y+iec Z/ypAoBJUFvzeLDl3Q5G0BwwXX68iqwIyqGkRAPZ8iUUgvXpKyKAfAspgrzDT8RTFRPaeSpSb Fd0nYslc2VwsZUdOR99wk2cTpbwzUMHUwHGNtjVpH2G+/jly9Q/zd6VcBFs6BrNNEK2whgUqR pIMYRXtGx/1c9knjPoE+rh8CENqU3dHxotrowX0ZXNYLrjCUgHApzkO/W2ilj20zwMYH0FxhZ lshWoX0FfbnoY2oc9npbSJHsLADXS7JUujzp0ZHobg2oY7eljMtRo+GpBt0VGUrlQKVmSLDAf OKr24W77rckzHQBIx2G6GVVrtGctzTmTPsleu6u14yWJ6e1EujlBqNN40q+zEKzB6IFZ5sFlh 5JxBvH/3U6MWwvnaZUfcz7Z331K497BhKYg/Bur6Sv934y6PzL/9Zz0FvZ4m2p1aNjY5f352p mbqfXBPLQew22nlchFu3oODejpWSm0248ZSpsrf66bJoOckM47hlpVKn08cqgYFjQwmkI1gsC qTxyOh+OfHI1AfGbQgVN+gki53wn498cZjQoMy+bu9LZlYbTPSqYFgc/WAxsNcftkE+MSSOwN mLpx8piyFBRRXEvLn6SOokBs6uspEpap8w9D74/OzvvNfcNjda6Dcxep7sv40OhYKd7fJ/NCv 1KKZfnzwdxPqm/1r+guAlNHJ7C3TzASfq8yqnoNEp0KoHe1axvKmUBY77m8LXrgyF00riUdkv 6WGJV+uRejnsPm1Zwzn/7XpKJAak6BQLfaBXG1uiLKqPqOHbqJnZP0LgxXahj0Sx3ycpeFDIx acKcSmL8JtnHl2eAPR9qIeaxitAAUCuzyIOs1hYPVZdFsqS4SAlZZkPziP0ua25KawdQN3Gwr ncOdIxnvOeXNvFio79HFsXfDCpB/jj8+8GjPLzgAQ08IYQomy0J0J298o/tiiD1Hy955N/HxL KYG2n2g7xe5R/W6sKqN6PqcWgc59jsi4uYmk9E+59k//TOb3GnjQEeItALrigjUhXl9J72my0 D8CfCgTojzKK99xq4eSXx1N+BTiaBLtM9t6AkiukE7D6EyddvFV0//0EgrHObS0teC42gsNZR 5+mhdm+1K8O0jALHk X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.15.18 Subject: Re: [lwip-users] Building mbedtls using LWIP library X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Mar 2020 19:21:16 -0000 Am 09.03.2020 um 09:28 schrieb hamidkavianathar: > hi > I want to develop mqtt and lwm2m applications with lwip. I want to secur= e > them with mbedTLS. I am using a stm32 MCU. could you please tell my I sh= ould > do that? > thanks. The easiest way is to unpack mbedtls into a directory 'mbedtls' next to 'lwip' and compile lwip using cmake. Then mbedtls support will automatically enabled. If you don't want that, look at the VC projects and search for "MBEDTLS". :-) Regards, Simon From MAILER-DAEMON Tue Mar 10 16:28:19 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jBlUB-0007Bs-3u for mharc-lwip-users@gnu.org; Tue, 10 Mar 2020 16:28:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57473) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBlU7-00077T-OK for lwip-users@nongnu.org; Tue, 10 Mar 2020 16:28:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBlU6-0001Tv-29 for lwip-users@nongnu.org; Tue, 10 Mar 2020 16:28:15 -0400 Received: from mout.gmx.net ([212.227.15.19]:57053) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jBlU5-00010i-KM for lwip-users@nongnu.org; Tue, 10 Mar 2020 16:28:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1583872091; bh=DG8iPmh0JtNMi54RZnZvabD01zXeJ3owBkeGmKQHqWk=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=S2xI9/9y7QB3VRI2NmLElzgwoIuIBwFxUZ36tp8tDRx8fSahJbdaBT3ZMnszP9Fkt 0d8llG47TB/m8VfEqvhwKr8Z9Vns+19MWrY3AYeYXA42I8qnES4xNUZ4bVQizWX5+T qipLoj0Q7DDaj0Tjd3BlleYyAKOfMd8piRsRrQJs= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.61] ([176.199.210.162]) by mail.gmx.com (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MNKhs-1j07g91a3O-00OmZ6 for ; Tue, 10 Mar 2020 21:28:11 +0100 To: Mailing list for lwIP users References: From: "goldsimon@gmx.de" Autocrypt: addr=goldsimon@gmx.de; keydata= mQENBFDPe/sBCADdhO6Fn+7pnHtmEjiWs14u+n5cFQAhvjZ6EiZLwh0gMl5vYT1HDJ+8HTUA h0xMgXQ2Tsxzizt1TTBWn5DK74SjlIx/dYpM17OHmu6wuIbexKN6hEJSFZjtRlbIlWqEB8px EVeU7//1V/Ukj3QAI3yOrrhIg/s9jmuxMo05fjOsYEkub9PHmvFFdJ7KuApsVss4QRZIpawq HRFv9gY+4DrOvhwMZk6CHlvlAOgqlsMftRMl4699ww2NNbtU2U8n9XFlf2CQxkYAzIJC27Rc +83q+d5xbtcqzxcHhsFXelNTB09ZHEti7NpZZpnP4siVEa8p9BY8n11Nr/97c8lyZUCbABEB AAG0JFNpbW9uIEdvbGRzY2htaWR0IDxnb2xkc2ltb25AZ214LmRlPokBOAQTAQIAIgUCUM97 +wIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQHWthwbhCmfU0tQf+L0m7VG1LNzpt Yvx/1ZZFbqlggespnVuc6HPYqtmbIWxHmlQZgM6Pn61rUWmUl8ilWdcCw8Wuam2pEUSBzlZF z/738kcazWv9SRSbr7ULQi/d/gfOtcfAVUMkTF9jhWpAYR4zmzpR31mvs6Ltfh5rw/bsVJ+/ QbfWLJqdbRG4NykfuGXafQ+o+SDlMlcaBe49whhJsQcCBrvwixeNChUOkV3TY+jgVu4u1MEY c1aJKgVJkBVkAEsJXWFHTkF3TvJf5KdLLGbVBq3I6ItrLgAowI0kC4MzU3eNsCBEroBGJl2/ 7fmut8i+tQNiDfOVP4EHaSD86utnyawQev0TZnY2Qg== Message-ID: Date: Tue, 10 Mar 2020 21:26:53 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:u9Oj4TW4c34+pivM3hRRedk2/k9o56AiI0OGDIBfVB3QBu37XCZ XJic2oXexDkLFo+XhouurwLpUd2FHdJ3GdQEFxKIm0FHBCGAUekGavxAgahiYyYFgYrku5o NSxCfPoZ52HuBc9sotznjhqy5ZbD0wnxxE+LCMQplaPDZnYIa7zUbXO+h1y0S4Exsd1sMFZ ZjPKkRXZF191u1xE61V2g== X-UI-Out-Filterresults: notjunk:1;V03:K0:89KWTscZhb4=:oxw57c9XXB5ELTrdCO7PTJ h2HQPAKE5FxhDAkren5w+5tP8WM//D37ZbQTdYBNeH4wNgSfpFOQVTJ5XpYXaKb1mIPNQDlkl O7dYi7zWeS0H0I1CGDZghAUns1p8WkrOaXf4fZM2itPTJIQYcKgXMYs6cT+TtJOfa8y3ywL+a ZBUyREOTfOjg/YwwkqTHqwdRwynSu80hr5R66wxT/xZ44G6rl9KiFCEXrWlOjTdhPVrXD8CNs ZwKr84xsgR3bMGM0t64zmoCwtGMnehTY52aMH3b6PZxXNHOzpDLNflkycEVOhi0+wjOEvPF3Z vj3CsEEWNtlx+agEpTA116UQb6BM6Rkkza2ebc1eBNwc98trQGM3vpCLAy9fvcemoAL/0aJdu s43GNVCYe4bvr/2DE26/tkkyM0UnZMttMi0IYmddHgE7gmA+lX0VPRT5kEUxR27upI03J3IWt /GARTudMZJyDdKtD0KwDn1+Aq/1FUWRvn43j2Fi5PW9LQAd1RkjOQfDeOONlmf/DE6GSuEw/0 wbF0jZ8o+rLhJM43xECxJh/cHbGGbbDsFUioJ6M0VT8nyz/QKhpW/xXtBuh8UkraIWCw7RKYY VLxwJ6AGKm7MbfC0aqEGSRpeOCC1fhs4EPicNKq7BQCHilx0Z6rN7Ck9EXvIQSqqk6mRKkyvj CLkWvKdg6wZLuxlbu6cxZTRE2g/shC2uKKovSjDDBqZfrJLuTBCLgXSHHThCnKcrcDGvmoyYp cwq6NCwC29zpaQSRNQ2QM1mHHu+toiocwkhYiz3nFW3+10BrIRa6Gh9DV2hHuWRvrw2+4n9R3 /A7qLSbp5Uo2v41fdSbXty9BL2mSey3I2nZILaDpeaWGgi/ClncbK1yutATLjcy7WJY4zDmGj rEEcfyYVh/NoSTqHOkNC0g1MqcvQHT7g40leH5OI2w4/Hh0KaR9S5uh2YeLpv5jEbPSyrzP0X T5oKvkIhUX+xcnxHQIZ7zgny2WgMjsRxD2pmP7OKPeeocOl2VQ54ap0CwSiMeJVgPK2aegrHv 7FQzCzyev5+ZO0RnqZqGVbqAxCqKZhcAdgjx8IP+Ook1JAve1F2V6IrXxIr6+9/7aTc3OdCJN P/7xv4lCSHQ0D/v081Q+zd9UDwF5FXvTPDhD2ouxerQ2/9iried71OXYEwwPvVsyykIKXiNE/ ToQkS4vMBKhORRFOEcJQOBfFTlgKEuuc/TtM5vDdMYcULZeJwt991yfGMwV8AE8gSieHCnI3i WAgX43RizURgbBWB+ X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.15.19 Subject: Re: [lwip-users] Do not fragment (DF) in a UDP transmission. X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Mar 2020 20:28:17 -0000 Am 09.03.2020 um 18:08 schrieb Roger Cover: > Greetings Simon, > > The Linux man pages mention the IP_PMTUDISC_DO flag that "forces the don= 't-fragment flag to be set on all outgoing packets" in the setsockopt() de= scription. That will be for TCP only? Since we don't suppor MTU path discovery (yet?), that's of no use to us. > > The documentation for setsockopt() for BSD 4.3 lists the similar flag "I= P_DONTFRAG", with the qualifier "This option is supported for sockets with= an address family of AF_INET and type of SOCK_DGRAM or SOCK_RAW only." That could be an option for lwIP. The real problem is that there doesn't seem to be a standard way for this, which is why we don't support it yet. But I guess adding this for IPv4 UDP and RAW would be a valid option. Regards, Simon > > The Microsoft documentation at: https://docs.microsoft.com/en-us/windows= /win32/winsock/ipproto-ip-socket-options lists an option called IP_DONTFRA= GMENT, about which they state "Microsoft TCP/IP providers respect this opt= ion for UDP and ICMP." > > There is also a reference for the .NET framework at https://docs.microso= ft.com/en-us/dotnet/api/system.net.sockets.socket.dontfragment?view=3Dnetf= ramework-4.8 if you have any interest in that. > > There is also a comment I do not completely understand in the lwIP ip.c = file (line 790 in the ip_output_if() function, version 1.4.1) that states = "don't fragment if interface has mtu set to 0." > > I am not very familiar with sockets programming. I did some 20 years ago= , but I am sure it has changed since then. I have been using the lwIP call= back API in all my products for the last 14 years. Since I am using the ca= llback API, I will need something that works through that API. I hope this= information is sufficient. I am very willing to patch my system and do te= sting for you. I just need some guidance about where to make the changes. = I have been using lwIP for some time, but I have not paid that much attent= ion to its interior. It has always just worked for me, straight out of the= box. > > Regards, > Roger W. Cover > ________________________________________ > From: lwip-users o= n behalf of goldsimon@gmx.de > Sent: Saturday, March 7, 2020 2:02 AM > To: Mailing list for lwIP users > Subject: Re: [lwip-users] Do not fragment (DF) in a UDP transmission. > > Am 06.03.2020 um 21:37 schrieb Roger Cover: >> Greetings, >> >> I am writing a video transmitter. The protocol I am using requires that= a "test packet" has its do not fragment bit set. This is used to determin= e the maximum usable MTU of the intervening network nodes. >> >> I would like to know the recommended method for setting this bit in my = UDP transmission. I am currently using the ip_output_if() function, and it= does not have any arguments to allow this. > > That's currently not supported (hasn't been requested so far). If you > tell me a standard way to do that (e.g. how is it done on sockets), I > guess adding this should not be too hard. > > Regards, > Simon > > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users > > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users > From MAILER-DAEMON Thu Mar 12 02:35:43 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jCHRW-0007Hc-V1 for mharc-lwip-users@gnu.org; Thu, 12 Mar 2020 02:35:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58551) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCHRS-0007HS-IW for lwip-users@nongnu.org; Thu, 12 Mar 2020 02:35:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCHRR-0002pQ-7L for lwip-users@nongnu.org; Thu, 12 Mar 2020 02:35:38 -0400 Received: from mail-qk1-x743.google.com ([2607:f8b0:4864:20::743]:43006) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jCHRQ-0002nd-Vz for lwip-users@nongnu.org; Thu, 12 Mar 2020 02:35:37 -0400 Received: by mail-qk1-x743.google.com with SMTP id e11so4623871qkg.9 for ; Wed, 11 Mar 2020 23:35:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=zR+u0gwn98DzTsiixNWNpiqqXBEI3tSLsfcOkUqXtHQ=; b=o7tDFY4xpGGQMvOcaB5okQmmR1iZl31tjYvjKYJq/Sg+JwbJ6M74SdPWepOuwIDEE8 77A3R3mIKxQZbX2Z0+V1yc2SdgTtOLEI2YUUAnw8aVAwSydWKAteDh3K45533qHF/Agj TmNbaVcyy373hAH5sb2S9pAZqqh9Mxz8U7+UWT3jGF6UJArmK0Itv++Q/PQtM3Fe0XuF WBKZlMB73x5Ues6w3IM9cJ+QvaOAgraZq6+miQTGz67PQyYuMxlq5e3ZnZ2lwYfekFll Ig6vHykH5QOE5ExhPZnQ0Q0JzBkCWagGP6YOueNOYefn1OgohSV3CWU2zZ/npSaUzvvS mdGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=zR+u0gwn98DzTsiixNWNpiqqXBEI3tSLsfcOkUqXtHQ=; b=o6xG5dZkWhoiTge/ruj3Z3FyTeY8v6USWvecMylLzIVgGQd/veWfn2ZcVck7Xtvj+P A1cNJVk5wJr8VVE3cw8s42zzGC99hq6LpivQ8dpKLnW28I3CA3w+WC/K5tXbGA06wldr 58p0rywUZ2cZMP2mq93Nl1r6VFE6HZ8WmpyuZywR0oYchhb/OEE/HcIXB3YAW7vrt5ZC nrmR69LKrwff9lH+HXKeu3G8414h4eMiOfAEZaRRkX+MFRF1pSDsPGPE+48SD0+FaCi1 FS/DRfg0WZkOVTLR5GduvqdLza7S2HyZ2VrhyAGP4aNegeUbPWdBBXQGeoQJsOuYmPyO p1BA== X-Gm-Message-State: ANhLgQ3AIO1eoouk1b3p+EpicwFfmlvHxqeWwMmhzgytXjbAzH8cHkea d5JJLLqrsB5eaqyQ0Jfe6PunL84B/Cx9YvPi3zwAaf+VumA= X-Google-Smtp-Source: ADFU+vu/wnCBPSoTyy3BkRTDgH0biwRMSZsJ+2mY6h4gg+eEClmL/9BUwjVSBp7Ad0yBBzly309sw14iUr1x1kND+Hw= X-Received: by 2002:a37:8c83:: with SMTP id o125mr6416527qkd.293.1583994935425; Wed, 11 Mar 2020 23:35:35 -0700 (PDT) MIME-Version: 1.0 From: Sachin Gole Date: Thu, 12 Mar 2020 12:05:24 +0530 Message-ID: To: lwip-users@nongnu.org Content-Type: multipart/alternative; boundary="00000000000073bea305a0a28ff6" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::743 Subject: [lwip-users] How to build LWIP test on linux X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Mar 2020 06:35:40 -0000 --00000000000073bea305a0a28ff6 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Package : lwip_2.1.2.orig source folder Building test on Linux with following commands cmake CMakeLists.txt -DCMAKE_C_COMPILER=3D"/usr/bin/gcc" -DCMAKE_CXX_COMPILER=3D"/usr/bin/g++" How to compile further to get unit test ? I=E2=80=99m protected online with Avast Free Antivirus. Get it here =E2=80=94 it=E2=80= =99s free forever. <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> --00000000000073bea305a0a28ff6 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Packa= ge :=C2=A0lwip_2.1.2.orig source folder=
Building = test on Linux with following commands

cmake CMakeLists.txt -DCMAKE_C_COMPILER=3D"/usr/bin/gcc"= -DCMAKE_CXX_COMPILER=3D"/usr/bin/g++"

<= div class=3D"gmail_default" style=3D"color:rgb(11,83,148)">How to compile f= urther to get unit test ?

3D"" I=E2=80=99m protecte= d online with Avast Free Antivirus. Get i= t here =E2=80=94 it=E2=80=99s free forever.
--00000000000073bea305a0a28ff6-- From MAILER-DAEMON Thu Mar 12 05:56:47 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jCKa6-0001ch-Vx for mharc-lwip-users@gnu.org; Thu, 12 Mar 2020 05:56:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33340) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCKa4-0001Gc-4X for lwip-users@nongnu.org; Thu, 12 Mar 2020 05:56:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCKa3-00033i-64 for lwip-users@nongnu.org; Thu, 12 Mar 2020 05:56:44 -0400 Received: from mail-lj1-x234.google.com ([2a00:1450:4864:20::234]:45465) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jCKa2-00032Q-UO for lwip-users@nongnu.org; Thu, 12 Mar 2020 05:56:43 -0400 Received: by mail-lj1-x234.google.com with SMTP id e18so5645308ljn.12 for ; Thu, 12 Mar 2020 02:56:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=xnPPtnI3Zj9DRMije6Bt1AJUEZog9725zlnLojPxH9Q=; b=p61eEVSVKYKnTQdiofKonfC9EeXvHNcglJvz2f0yu1ZCmLAGmJ24GEXooLskOKB1Un 92j6EyKR+87BSIYR6FdtiA2vxfdMU4oCBIuTW/z7fZ8p41FTWzexYrAFq5kc4H0+cG9m zFqiPnFN+eJwSbac8TJabfivZh7HPekFA/nTEHncryNMhBzxXQx3sEEI+uO4dn3Vpjn4 pe46mDjswagHq+J8rMVV86AHlBRP6wK5qgUYY2Au6NSG3c6NRv3pbjBKv2w7iLjHbLS5 6U3JoS6ZEch/OdBBwweM+rfhMrqBxYN6+q7bkZRsucX/ON+zOYdBzlGMtPbndvgWdXqV dwQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=xnPPtnI3Zj9DRMije6Bt1AJUEZog9725zlnLojPxH9Q=; b=KIJ6a+td/4VTkAOee7Ufl62XtMa9+pmATulh/Q/nwBkjMK6Yh2pSNIMbroOGGsPQVs OHBBwBSr1LkrmASOY10CopLl5fGf3jVfky7AJ2dBx7eH60x21Gusm3dzcB0C9W38d46E LQkRD0lCuEcpnqk7N2xZJt/NAJxLs4R1o1X81zvTIp7qycjjjN3hSbv9/c9riWSU5LQq s30M8LbhHK3qyLt+h7xYuq0VX8gx7XEACtoMVfoS1iIFcITgcmRWMDdOQ0GBQv8grbsT AiIUEiqUeXkQHzER6o2lyFzxskP/s8F2/p+HzoJ8sJ3WOvQSA6lw1vv3rKq5AyLhGXLG 0dDw== X-Gm-Message-State: ANhLgQ359p6BV9KJ1pux0sdNY+0TYqdrJ+1RsQyYYS01LmwB6KOpiHGK Ycs95LhgiDuAdLbisUKoB1oYOufThRkqy/pGeQ9iEduG8wE= X-Google-Smtp-Source: ADFU+vsrLQA5RYyCVJ6zLJm/pR+VYGDT5iBp3dGAXvWnGL7JYyhPf+BXiGxPg824glvhEIWi5jIOMW6VCDOrLK9W1n4= X-Received: by 2002:a2e:7018:: with SMTP id l24mr4728492ljc.128.1584007000396; Thu, 12 Mar 2020 02:56:40 -0700 (PDT) MIME-Version: 1.0 From: Harrold Spier Date: Thu, 12 Mar 2020 10:56:34 +0100 Message-ID: To: Mailing list for lwIP users Content-Type: multipart/alternative; boundary="00000000000094957d05a0a55e54" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::234 Subject: [lwip-users] Core locked checking when using the SNMP netconn implementation X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Mar 2020 09:56:45 -0000 --00000000000094957d05a0a55e54 Content-Type: text/plain; charset="UTF-8" Hi, After enabling core locked check (LWIP_ASSERT_CORE_LOCKED and LWIP_MARK_TCPIP_THREAD), I got a lot of asserts in SNMP functions. I use the SNMP netconn implementation (SNMP_USE_NETCONN = 1), so I assume all SNMP functions should be called by the snmp_netconn thread, not by the tcpip_thread. So why does a function like snmp_set_device_enterprise_oid() does a core check (LWIP_ASSERT_CORE_LOCKED())? I assume this would only be valid for the snmp raw implementation. Or do I miss something? Best regards, Harrold --00000000000094957d05a0a55e54 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

After enabling core = locked check (LWIP_ASSERT_CORE_LOCKED and=C2=A0LWIP_MARK_TCPIP_THREAD), I g= ot a lot of asserts in SNMP functions.

I use the S= NMP netconn implementation (SNMP_USE_NETCONN =3D 1), so=20 I assume all SNMP functions should be called by the snmp_netconn thread, n= ot by the=C2=A0tcpip_thread.
So why does a function like=C2=A0snm= p_set_device_enterprise_oid() does a core check (LWIP_ASSERT_CORE_LOCKED())= ?
I assume this would only be valid for the snmp raw implementati= on.

Or do I miss something?

Best regards,
Harrold
--00000000000094957d05a0a55e54-- From MAILER-DAEMON Thu Mar 12 06:16:04 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jCKsm-0005zf-3F for mharc-lwip-users@gnu.org; Thu, 12 Mar 2020 06:16:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36213) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCKsj-0005zO-BZ for lwip-users@nongnu.org; Thu, 12 Mar 2020 06:16:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCKsh-0006rJ-Uq for lwip-users@nongnu.org; Thu, 12 Mar 2020 06:16:01 -0400 Received: from mail-qk1-f180.google.com ([209.85.222.180]:44184) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jCKsh-0006qp-Q1 for lwip-users@nongnu.org; Thu, 12 Mar 2020 06:15:59 -0400 Received: by mail-qk1-f180.google.com with SMTP id f198so5139127qke.11 for ; Thu, 12 Mar 2020 03:15:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=o4g6T2qM9ww2dCpq+DI8WZjkCT13h0v+bcKXV0UKzPE=; b=h3XDwka5yyHxdwO0lCmC16JRCRyAl6sOuaJZ/+KSOIOdK3s8oI3u/vPwRE99OWk6+e 0dAlNNIhF1ypJxmRKCUihil+nThgO/t7VAe4MD+S5M9OmJIrJbE8zTzFeukQDNArR7Ls kW0jCbJvidL78NDybQvg0Lo4KwlSZYD5F7C0zqyMh4xOWrao5T4Agu5Q+N1WlegqAqc0 +EGMglH6/c1ci7U8QAAKWBRqwSxuD4jt6aASgW5h4i7AX8FPC5jEt3mlryb3mpLal+Dj UtUkphzPztINvwpNrvg/BxabAefWSqXf3f6X11BF6Ocu65f4HT60AihvOtjYYPZFQLq9 NXcw== X-Gm-Message-State: ANhLgQ3pFlfdVmHqgnzOLH8+XwiC+5HoybqqwbApP00az3FHrYKY/Cxx 4SmTcJ+vqn8gPT04EUhjdzsNhUj0bEUvFWDVgQWGW2g= X-Google-Smtp-Source: ADFU+vuXlnYRaF1vEpzpPKRO2xpQGINUIC1NBL1Fe8vNhWYdMt8b36mgyZuclyzmnAkGGdYO/+vmxq/EkCAU2tMBwDg= X-Received: by 2002:a25:e08e:: with SMTP id x136mr7551947ybg.238.1584008158719; Thu, 12 Mar 2020 03:15:58 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Dirk Ziegelmeier Date: Thu, 12 Mar 2020 11:15:22 +0100 Message-ID: To: Mailing list for lwIP users Content-Type: multipart/alternative; boundary="0000000000009f331705a0a5a3ec" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.85.222.180 Subject: Re: [lwip-users] Core locked checking when using the SNMP netconn implementation X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Mar 2020 10:16:02 -0000 --0000000000009f331705a0a5a3ec Content-Type: text/plain; charset="UTF-8" The netconn thread receives SNMP packets and processes them in the SNMP stack, nothing else. It never calls snmp_set_device_enterprise_oid(). Put a breakpoint in calls snmp_set_device_enterprise_oid() and check the call stack. I guess it's your application that makes this call from the wrong thread. Ciao Dirk On Thu, Mar 12, 2020 at 10:57 AM Harrold Spier wrote: > Hi, > > After enabling core locked check (LWIP_ASSERT_CORE_LOCKED > and LWIP_MARK_TCPIP_THREAD), I got a lot of asserts in SNMP functions. > > I use the SNMP netconn implementation (SNMP_USE_NETCONN = 1), so I assume > all SNMP functions should be called by the snmp_netconn thread, not by > the tcpip_thread. > So why does a function like snmp_set_device_enterprise_oid() does a core > check (LWIP_ASSERT_CORE_LOCKED())? > I assume this would only be valid for the snmp raw implementation. > > Or do I miss something? > > Best regards, > Harrold > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users --0000000000009f331705a0a5a3ec Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
The netconn thread receives SNMP packets and processes = them in the SNMP stack, nothing else. It never calls=20 snmp_set_device_enterprise_oid(). Put a breakpoint in=20 calls=20 snmp_set_device_enterprise_oid() and check the call stack. I guess it's= your application that makes this call from the wrong thread.=C2=A0

Ciao
Dirk


On Thu, Mar 12= , 2020 at 10:57 AM Harrold Spier <harrold.spier@gmail.com> wrote:
Hi,

After enabling core locked check (LWIP_ASSERT_CORE_LOCKED and=C2=A0= LWIP_MARK_TCPIP_THREAD), I got a lot of asserts in SNMP functions.

I use the SNMP netconn implementation (SNMP_USE_NETCONN = =3D 1), so=20 I assume all SNMP functions should be called by the snmp_netconn thread, n= ot by the=C2=A0tcpip_thread.
So why does a function like=C2=A0snm= p_set_device_enterprise_oid() does a core check (LWIP_ASSERT_CORE_LOCKED())= ?
I assume this would only be valid for the snmp raw implementati= on.

Or do I miss something?

Best regards,
Harrold
_______________________________________________
lwip-users mailing list
lwip-users@nongn= u.org
https://lists.nongnu.org/mailman/listinfo/lwip-u= sers
--0000000000009f331705a0a5a3ec-- From MAILER-DAEMON Thu Mar 12 06:33:48 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jCL9w-0004xD-GQ for mharc-lwip-users@gnu.org; Thu, 12 Mar 2020 06:33:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40727) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCL9t-0004wX-9j for lwip-users@nongnu.org; Thu, 12 Mar 2020 06:33:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCL9r-0000nI-UJ for lwip-users@nongnu.org; Thu, 12 Mar 2020 06:33:45 -0400 Received: from mail-lf1-x136.google.com ([2a00:1450:4864:20::136]:43188) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jCL9r-0000lE-2u for lwip-users@nongnu.org; Thu, 12 Mar 2020 06:33:43 -0400 Received: by mail-lf1-x136.google.com with SMTP id n20so1019946lfl.10 for ; Thu, 12 Mar 2020 03:33:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=U4CEni9bj9ZsuewOg2lFhxT3tjy7my8Gv+aO7OUdQBs=; b=dT5xYXKDB0ZhNhd+Zxt3HcGpVC2J6KFhY15NXtRV7NQ2nsjZC0elzaojOf69wyMaCL BMSGxJ8Ff5hwz2lh/ThtW35KQMYIyEaHn5EruK1E53x11rZaVLXIQawwEdhuAVhzZX+Z YlSBoQu4YLl0SXG5sfaNulTlTBPtoVnqSpU0tgCOY51HOQICqveKEp2Jms5f8CfpE5W0 dyUX/UQUfgNveaznFLxW/5OtxEu8j4qvxMzzDKdJovl2QywMuC3/CVhXP87uAfhiNDf6 L6BfmsD7oGryN2Y28DwKYhejQRLmH7b0jBoivB31Ms0j4Df5csAO9sNAVqt2VUopUtiF xtJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=U4CEni9bj9ZsuewOg2lFhxT3tjy7my8Gv+aO7OUdQBs=; b=Q8rf5ptXaGHaLuem1qROBEiAQzLdy76359asPf9rXtwyW9MPI9HoM8pf9hQVvjtQ0B zHHCTADTg1fwN/hsrP5z1AK9kD3I396XjZTOvqu7CjBsWnoNEQPaZ4fGjRfNz3cpGoYl O8aZ1WzcOcgPu5B+TNTNAT/AO0J0+QTRE47le5h5TmDLvRAPHfJTCEaVZ3mB08KTVc34 2dFwc9JkmC8bNEH+bvtQzoACl2HYw7iY5oryfdkXrd9gEhW9Id1hU+DuV+OtqRUFrQY1 CuzWBKBnkuhfGNcJ0qgy5KJnMAabxwuTcV/t8SC3yzGDObAdXcFC56VA2tQmegEYYd7L mz+g== X-Gm-Message-State: ANhLgQ2+eOq0QOBEUCImaGTiIHdqBbArBessqh3N9pfM+A1vnF2TYKDX O84qvBv0v0NDT7Js2VeDioYAV4MVokZ7DscxuWGGYXsA4pw= X-Google-Smtp-Source: ADFU+vsOL9Ambc+N1vgU3lscK6iqNMENBjo0MKbccAKsXQf4msWRw//ED0FhUJ+7rWxcNytTjPF9cThzVGuKygEOTXQ= X-Received: by 2002:a19:c34e:: with SMTP id t75mr4640888lff.197.1584009220864; Thu, 12 Mar 2020 03:33:40 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Harrold Spier Date: Thu, 12 Mar 2020 11:33:34 +0100 Message-ID: To: Mailing list for lwIP users Content-Type: multipart/related; boundary="000000000000eeaded05a0a5e2ea" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::136 Subject: Re: [lwip-users] Core locked checking when using the SNMP netconn implementation X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Mar 2020 10:33:46 -0000 --000000000000eeaded05a0a5e2ea Content-Type: multipart/alternative; boundary="000000000000eeadeb05a0a5e2e9" --000000000000eeadeb05a0a5e2e9 Content-Type: text/plain; charset="UTF-8" Hi Dirk, Thanks for your quick response. Function snmp_set_device_enterprise_oid() is called by my application, but snmp_get_device_enterprise_oid() for example is called (indirectly) by snmp_receive(), which runs in the snmp_netconn thread. [image: image.png] Best regards, Harrold On Thu, Mar 12, 2020 at 11:16 AM Dirk Ziegelmeier wrote: > The netconn thread receives SNMP packets and processes them in the SNMP > stack, nothing else. It never calls snmp_set_device_enterprise_oid(). Put a > breakpoint in calls snmp_set_device_enterprise_oid() and check the call > stack. I guess it's your application that makes this call from the wrong > thread. > > Ciao > Dirk > > > On Thu, Mar 12, 2020 at 10:57 AM Harrold Spier > wrote: > >> Hi, >> >> After enabling core locked check (LWIP_ASSERT_CORE_LOCKED >> and LWIP_MARK_TCPIP_THREAD), I got a lot of asserts in SNMP functions. >> >> I use the SNMP netconn implementation (SNMP_USE_NETCONN = 1), so I assume >> all SNMP functions should be called by the snmp_netconn thread, not by >> the tcpip_thread. >> So why does a function like snmp_set_device_enterprise_oid() does a core >> check (LWIP_ASSERT_CORE_LOCKED())? >> I assume this would only be valid for the snmp raw implementation. >> >> Or do I miss something? >> >> Best regards, >> Harrold >> _______________________________________________ >> lwip-users mailing list >> lwip-users@nongnu.org >> https://lists.nongnu.org/mailman/listinfo/lwip-users > > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users --000000000000eeadeb05a0a5e2e9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Dirk,

Thanks for your quick response.
<= span style=3D"font-family:arial,helvetica,sans-serif">
Function=C2=A0snmp_set_device_en= terprise_oid(= )=C2=A0is cal= led by my application, but=C2=A0snmp_get_device_enterprise_oid() for= example is called (indirectly) by=C2=A0snmp_receive(), which runs in the s= nmp_netconn thread.

3D"image.png"
Best regards,
Harrold


=
On Thu, Ma= r 12, 2020 at 11:16 AM Dirk Ziegelmeier <dirk@ziegelmeier.net> wrote:
The netconn thread receive= s SNMP packets and processes them in the SNMP stack, nothing else. It never= calls=20 snmp_set_device_enterprise_oid(). Put a breakpoint in=20 calls=20 snmp_set_device_enterprise_oid() and check the call stack. I guess it's= your application that makes this call from the wrong thread.=C2=A0

Ciao
Dirk

=

= On Thu, Mar 12, 2020 at 10:57 AM Harrold Spier <harrold.spier@gmail.com> wrote:=
Hi,

After enabling core locked check (L= WIP_ASSERT_CORE_LOCKED and=C2=A0LWIP_MARK_TCPIP_THREAD), I got a lot of ass= erts in SNMP functions.

I use the SNMP netconn imp= lementation (SNMP_USE_NETCONN =3D 1), so=20 I assume all SNMP functions should be called by the snmp_netconn thread, n= ot by the=C2=A0tcpip_thread.
So why does a function like=C2=A0snm= p_set_device_enterprise_oid() does a core check (LWIP_ASSERT_CORE_LOCKED())= ?
I assume this would only be valid for the snmp raw implementati= on.

Or do I miss something?

Best regards,
Harrold
_______________________________________________
lwip-users mailing list
lwip-users@nongn= u.org
https://lists.nongnu.org/mailman/listinfo/lwip-u= sers
_______________________________________________
lwip-users mailing list
lwip-users@nongn= u.org
https://lists.nongnu.org/mailman/listinfo/lwip-u= sers --000000000000eeadeb05a0a5e2e9-- --000000000000eeaded05a0a5e2ea Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_k7om3z410 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 --000000000000eeaded05a0a5e2ea-- From MAILER-DAEMON Thu Mar 12 06:47:52 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jCLNY-0003JL-4A for mharc-lwip-users@gnu.org; Thu, 12 Mar 2020 06:47:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42781) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCLNU-0003J9-Sv for lwip-users@nongnu.org; Thu, 12 Mar 2020 06:47:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCLNT-0003ZP-3m for lwip-users@nongnu.org; Thu, 12 Mar 2020 06:47:48 -0400 Received: from mail-qk1-f174.google.com ([209.85.222.174]:32889) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jCLNS-0003ZD-6K for lwip-users@nongnu.org; Thu, 12 Mar 2020 06:47:46 -0400 Received: by mail-qk1-f174.google.com with SMTP id p62so5325411qkb.0 for ; Thu, 12 Mar 2020 03:47:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=rQ7zY0nEgx9wkt1OtbNgF4rZTaex5iOZfqIwlokNmYE=; b=lFFLHkFK3K9SXDB6W7E6k52uXlvQxyzYI8o2AgJP87C3u7ABoZwYmCo894kVh2K0mk 6eIl3PYBG1JPxhKujWWsEUuKUtCOKuJKdKCH1xToL2OsNPi3zpiT0eddIRPsRUc6IvQa BtxMX6hNLGRg5+1o256ql54qeBCvbqkHz567N8wvKd725FJWlBG748EP6/P8N8vQnAXt Pbnbi8vY2GtuiiuySU66oNKY7ljCLw68lrJFIAdu8JWGBKLOevopwPkLfNFqyX2Y8+Ss 6i5OJw2Yd/cvH6Df1UqeYDQCqtdDV46DiVNg6xNiyqarlpOOrVHsjvpE53gSOHm6ZDXS OvCg== X-Gm-Message-State: ANhLgQ1YYHcccRoFsHrrQs2LMf9IbStsNk21N1T1roEFlHXu/UdVhtiN 0bG8md48gp39l95tQpk0nylhCkQMe5DArhFu//ULM3M= X-Google-Smtp-Source: ADFU+vuYGY0030XnOeR0uAgeTEW4uJEFky7wBy5+Q5lLD8PYaAQkiXm2UFAvhFvYCR5RsaoD3/B4TXo7z+XVL6ydhqo= X-Received: by 2002:a25:902:: with SMTP id 2mr7607572ybj.78.1584010065311; Thu, 12 Mar 2020 03:47:45 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Dirk Ziegelmeier Date: Thu, 12 Mar 2020 11:47:09 +0100 Message-ID: To: Mailing list for lwIP users Content-Type: multipart/related; boundary="00000000000043af8205a0a6156e" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.85.222.174 Subject: Re: [lwip-users] Core locked checking when using the SNMP netconn implementation X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Mar 2020 10:47:50 -0000 --00000000000043af8205a0a6156e Content-Type: multipart/alternative; boundary="00000000000043af8105a0a6156d" --00000000000043af8105a0a6156d Content-Type: text/plain; charset="UTF-8" you found a bug :-) Try this, and please create a bug entry: static s16_t system_get_value(const struct snmp_scalar_array_node_def *node, void *value) { const u8_t *var = NULL; const s16_t *var_len; u16_t result; switch (node->oid) { case 1: /* sysDescr */ var = sysdescr; var_len = (const s16_t *)sysdescr_len; break; case 2: { /* sysObjectID */ #if SNMP_USE_NETCONN && LWIP_TCPIP_CORE_LOCKING LOCK_TCPIP_CORE(); #endif const struct snmp_obj_id *dev_enterprise_oid = snmp_get_device_enterprise_oid(); #if SNMP_USE_NETCONN && LWIP_TCPIP_CORE_LOCKING UNLOCK_TCPIP_CORE(); #endif MEMCPY(value, dev_enterprise_oid->id, dev_enterprise_oid->len * sizeof(u32_t)); return dev_enterprise_oid->len * sizeof(u32_t); } case 3: /* sysUpTime */ MIB2_COPY_SYSUPTIME_TO((u32_t *)value); return sizeof(u32_t); case 4: /* sysContact */ var = syscontact; var_len = (const s16_t *)syscontact_len; break; case 5: /* sysName */ var = sysname; var_len = (const s16_t *)sysname_len; Ciao Dirk -- Dirk Ziegelmeier * dirk@ziegelmeier.net * http://www.ziegelmeier.net On Thu, Mar 12, 2020 at 11:34 AM Harrold Spier wrote: > Hi Dirk, > > Thanks for your quick response. > > Function snmp_set_device_enterprise_oid() is called by my application, > but snmp_get_device_enterprise_oid() for example is called (indirectly) > by snmp_receive(), which runs in the snmp_netconn thread. > > [image: image.png] > > Best regards, > Harrold > > > On Thu, Mar 12, 2020 at 11:16 AM Dirk Ziegelmeier > wrote: > >> The netconn thread receives SNMP packets and processes them in the SNMP >> stack, nothing else. It never calls snmp_set_device_enterprise_oid(). Put a >> breakpoint in calls snmp_set_device_enterprise_oid() and check the call >> stack. I guess it's your application that makes this call from the wrong >> thread. >> >> Ciao >> Dirk >> >> >> On Thu, Mar 12, 2020 at 10:57 AM Harrold Spier >> wrote: >> >>> Hi, >>> >>> After enabling core locked check (LWIP_ASSERT_CORE_LOCKED >>> and LWIP_MARK_TCPIP_THREAD), I got a lot of asserts in SNMP functions. >>> >>> I use the SNMP netconn implementation (SNMP_USE_NETCONN = 1), so I >>> assume all SNMP functions should be called by the snmp_netconn thread, not >>> by the tcpip_thread. >>> So why does a function like snmp_set_device_enterprise_oid() does a core >>> check (LWIP_ASSERT_CORE_LOCKED())? >>> I assume this would only be valid for the snmp raw implementation. >>> >>> Or do I miss something? >>> >>> Best regards, >>> Harrold >>> _______________________________________________ >>> lwip-users mailing list >>> lwip-users@nongnu.org >>> https://lists.nongnu.org/mailman/listinfo/lwip-users >> >> _______________________________________________ >> lwip-users mailing list >> lwip-users@nongnu.org >> https://lists.nongnu.org/mailman/listinfo/lwip-users > > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users --00000000000043af8105a0a6156d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
you found a bug :-)

Try this, and = please create a bug entry:

static s16_t
system_get_= value(const struct snmp_scalar_array_node_def *node, void *value)
{
= =C2=A0 const u8_t =C2=A0*var =3D NULL;
=C2=A0 const s16_t *var_len;
= =C2=A0 u16_t result;

=C2=A0 switch (node->oid) {
=C2=A0 =C2=A0= case 1: /* sysDescr */
=C2=A0 =C2=A0 =C2=A0 var =C2=A0 =C2=A0 =3D sysde= scr;
=C2=A0 =C2=A0 =C2=A0 var_len =3D (const s16_t *)sysdescr_len;
= =C2=A0 =C2=A0 =C2=A0 break;
=C2=A0 =C2=A0 case 2: { /* sysObjectID */#if SNMP_USE_NETCONN && LWIP_TCPIP_CORE_LOCKING
=C2=A0 =C2=A0 = =C2=A0 LOCK_TCPIP_CORE();
#endif
=C2=A0 =C2=A0 =C2=A0 const struct sn= mp_obj_id *dev_enterprise_oid =3D snmp_get_device_enterprise_oid();
#if = SNMP_USE_NETCONN && LWIP_TCPIP_CORE_LOCKING
=C2=A0 =C2=A0 =C2=A0= UNLOCK_TCPIP_CORE();
#endif
=C2=A0 =C2=A0 =C2=A0 MEMCPY(value, dev_e= nterprise_oid->id, dev_enterprise_oid->len * sizeof(u32_t));
=C2= =A0 =C2=A0 =C2=A0 return dev_enterprise_oid->len * sizeof(u32_t);
=C2= =A0 =C2=A0 }
=C2=A0 =C2=A0 case 3: /* sysUpTime */
=C2=A0 =C2=A0 =C2= =A0 MIB2_COPY_SYSUPTIME_TO((u32_t *)value);
=C2=A0 =C2=A0 =C2=A0 return = sizeof(u32_t);
=C2=A0 =C2=A0 case 4: /* sysContact */
=C2=A0 =C2=A0 = =C2=A0 var =C2=A0 =C2=A0 =3D syscontact;
=C2=A0 =C2=A0 =C2=A0 var_len = =3D (const s16_t *)syscontact_len;
=C2=A0 =C2=A0 =C2=A0 break;
=C2=A0= =C2=A0 case 5: /* sysName */
=C2=A0 =C2=A0 =C2=A0 var =C2=A0 =C2=A0 =3D= sysname;
=C2=A0 =C2=A0 =C2=A0 var_len =3D (const s16_t *)sysname_len;

Ciao
Dirk

--
Dirk Ziegelmeier * dirk@ziegelmeier.net * = http://www.ziegelm= eier.net



<= div class=3D"gmail_quote">
The net= conn thread receives SNMP packets and processes them in the SNMP stack, not= hing else. It never calls=20 snmp_set_device_enterprise_oid(). Put a breakpoint in=20 calls=20 snmp_set_device_enterprise_oid() and check the call stack. I guess it's= your application that makes this call from the wrong thread.=C2=A0

Ciao
Dirk

=

= On Thu, Mar 12, 2020 at 10:57 AM Harrold Spier <harrold.spier@gmail.com> wrote:=
Hi,

After enabling core locked check (L= WIP_ASSERT_CORE_LOCKED and=C2=A0LWIP_MARK_TCPIP_THREAD), I got a lot of ass= erts in SNMP functions.

I use the SNMP netconn imp= lementation (SNMP_USE_NETCONN =3D 1), so=20 I assume all SNMP functions should be called by the snmp_netconn thread, n= ot by the=C2=A0tcpip_thread.
So why does a function like=C2=A0snm= p_set_device_enterprise_oid() does a core check (LWIP_ASSERT_CORE_LOCKED())= ?
I assume this would only be valid for the snmp raw implementati= on.

Or do I miss something?

Best regards,
Harrold
_______________________________________________
lwip-users mailing list
lwip-users@nongn= u.org
https://lists.nongnu.org/mailman/listinfo/lwip-u= sers _______________________________________________
lwip-users mailing list
lwip-users@nongn= u.org
https://lists.nongnu.org/mailman/listinfo/lwip-u= sers _______________________________________________
lwip-users mailing list
lwip-users@nongn= u.org
https://lists.nongnu.org/mailman/listinfo/lwip-u= sers --00000000000043af8105a0a6156d-- --00000000000043af8205a0a6156e Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_k7om3z410 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 --00000000000043af8205a0a6156e-- From MAILER-DAEMON Thu Mar 12 08:42:39 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jCNAd-0004YC-Hd for mharc-lwip-users@gnu.org; Thu, 12 Mar 2020 08:42:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44082) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCNAZ-0004Y5-Cn for lwip-users@nongnu.org; Thu, 12 Mar 2020 08:42:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCNAU-0007Dv-Gt for lwip-users@nongnu.org; Thu, 12 Mar 2020 08:42:35 -0400 Received: from mail-lj1-x232.google.com ([2a00:1450:4864:20::232]:40340) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jCNAT-0007AS-SE for lwip-users@nongnu.org; Thu, 12 Mar 2020 08:42:30 -0400 Received: by mail-lj1-x232.google.com with SMTP id 19so6229013ljj.7 for ; Thu, 12 Mar 2020 05:42:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=58xcgKwQgIDnCgN9KjNSLkcFIvnLM4cENsW6jeU6J64=; b=hmLrTvY9/lPXKlJtDiNgvLGtcnpWXnNfsgq+TisvZlzHj7ItfOIt9R+9Rvuw8yDWIz SQRlng7qUn92CI3h11swg30jAxvecf7jbX5p9dzgX4i39Fv5mB3Sf3xCtuMV5UFUzsmb EzawnG0l0U7VDEcv6uQg+fREOU/hpJYdlTImbp/62hDJTjarOYv0kC98ACleQ6EeeguA /Lnf+WM3KgNXQTegn9VpJ60IV4Foiqx66BlooMszipUhZ7sjKxz+S4/Y7fqAZHAauxzT j9YUrpEfrKgjb/LW+6MPq5utRTpouKGlPEwx+oMln7OftMnfG7NL9RKD1CrrfiBx1FqC RVBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=58xcgKwQgIDnCgN9KjNSLkcFIvnLM4cENsW6jeU6J64=; b=UuaTHlTtXIeBkxvW1MeOOtY8pKVpw8Mn9+efZ8dQRWmDGu/Y6rhkDSN6R1SlkRUBh+ wWMDLeT7P91RgY8FmMczEmTvELaX/t9A56ADQid6j0cjXRlqSCnOdvEqJrYZUl6JF4Fo SCP4TnISJKyGiHNRkNesWPKZmilqvQbc4J79I9xRtyUQtzUKEfZYyAkz+Gx2iXIGDhxY lkvu1nvPLibIlmWFX0PIRr5ohgi1avIi7VhlcwYUkIcZlYC550zGjkoYhs/5zWrMVq6f P0CIs8ZAR8PjClz0kuptpziZDKe8gyQ2iddw4P7091Tno6o51vBy4b3sWaP95+xur+xQ kjpw== X-Gm-Message-State: ANhLgQ3Fnywi9KsZ+Imo+sGt8BSv5aM480czbqNsmJhlTanK5vCBFaKp yKevRcEXl3pWJPq6BGqy2JsPL56uRtWc9K8LUuzfUQsUPOA= X-Google-Smtp-Source: ADFU+vvNdvBjFbjSj+hhEphbNkly828kscuStR2spD0AdvP6bwEqaaxRDdWjwr7SCqPkHxb+9wSDJwPi3EL2jW0PtLA= X-Received: by 2002:a2e:7018:: with SMTP id l24mr5116681ljc.128.1584016947466; Thu, 12 Mar 2020 05:42:27 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Harrold Spier Date: Thu, 12 Mar 2020 13:42:22 +0100 Message-ID: To: Mailing list for lwIP users Content-Type: multipart/related; boundary="0000000000007955da05a0a7afc4" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::232 Subject: Re: [lwip-users] Core locked checking when using the SNMP netconn implementation X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Mar 2020 12:42:38 -0000 --0000000000007955da05a0a7afc4 Content-Type: multipart/alternative; boundary="0000000000007955d905a0a7afc3" --0000000000007955d905a0a7afc3 Content-Type: text/plain; charset="UTF-8" Hi Dirk, Yes, this fixes the reported problem. But there is probably more. Executing snmpwalk using a wrong community may generate an authentication trap: snmpwalk -v1 -c wrongcommunity 192.168.28.2 1.3 [image: image.png] This will also generate the core lock assert, because snmp_send_trap_or_notification_or_inform_generic() checks for it. So I'm a little bit confused :-| Assume I want to generate a coldstart trap at the start of my application, what would be the correct way to do so, using the netconn implementation? - Call snmp_coldstart_trap() directly from any thread you like. - Call snmp_coldstart_trap() only via the tcpip_callback() function. - Call snmp_coldstart_trap() after calling LOCK_TCPIP_CORE() and before UNLOCK_TCPIP_CORE(). Best regards, Harrold On Thu, Mar 12, 2020 at 11:48 AM Dirk Ziegelmeier wrote: > you found a bug :-) > > Try this, and please create a bug entry: > > static s16_t > system_get_value(const struct snmp_scalar_array_node_def *node, void > *value) > { > const u8_t *var = NULL; > const s16_t *var_len; > u16_t result; > > switch (node->oid) { > case 1: /* sysDescr */ > var = sysdescr; > var_len = (const s16_t *)sysdescr_len; > break; > case 2: { /* sysObjectID */ > #if SNMP_USE_NETCONN && LWIP_TCPIP_CORE_LOCKING > LOCK_TCPIP_CORE(); > #endif > const struct snmp_obj_id *dev_enterprise_oid = > snmp_get_device_enterprise_oid(); > #if SNMP_USE_NETCONN && LWIP_TCPIP_CORE_LOCKING > UNLOCK_TCPIP_CORE(); > #endif > MEMCPY(value, dev_enterprise_oid->id, dev_enterprise_oid->len * > sizeof(u32_t)); > return dev_enterprise_oid->len * sizeof(u32_t); > } > case 3: /* sysUpTime */ > MIB2_COPY_SYSUPTIME_TO((u32_t *)value); > return sizeof(u32_t); > case 4: /* sysContact */ > var = syscontact; > var_len = (const s16_t *)syscontact_len; > break; > case 5: /* sysName */ > var = sysname; > var_len = (const s16_t *)sysname_len; > > Ciao > Dirk > > -- > Dirk Ziegelmeier * dirk@ziegelmeier.net * http://www.ziegelmeier.net > > > On Thu, Mar 12, 2020 at 11:34 AM Harrold Spier > wrote: > >> Hi Dirk, >> >> Thanks for your quick response. >> >> Function snmp_set_device_enterprise_oid() is called by my application, >> but snmp_get_device_enterprise_oid() for example is called (indirectly) >> by snmp_receive(), which runs in the snmp_netconn thread. >> >> [image: image.png] >> >> Best regards, >> Harrold >> >> >> On Thu, Mar 12, 2020 at 11:16 AM Dirk Ziegelmeier >> wrote: >> >>> The netconn thread receives SNMP packets and processes them in the SNMP >>> stack, nothing else. It never calls snmp_set_device_enterprise_oid(). Put a >>> breakpoint in calls snmp_set_device_enterprise_oid() and check the call >>> stack. I guess it's your application that makes this call from the wrong >>> thread. >>> >>> Ciao >>> Dirk >>> >>> >>> On Thu, Mar 12, 2020 at 10:57 AM Harrold Spier >>> wrote: >>> >>>> Hi, >>>> >>>> After enabling core locked check (LWIP_ASSERT_CORE_LOCKED >>>> and LWIP_MARK_TCPIP_THREAD), I got a lot of asserts in SNMP functions. >>>> >>>> I use the SNMP netconn implementation (SNMP_USE_NETCONN = 1), so I >>>> assume all SNMP functions should be called by the snmp_netconn thread, not >>>> by the tcpip_thread. >>>> So why does a function like snmp_set_device_enterprise_oid() does a >>>> core check (LWIP_ASSERT_CORE_LOCKED())? >>>> I assume this would only be valid for the snmp raw implementation. >>>> >>>> Or do I miss something? >>>> >>>> Best regards, >>>> Harrold >>>> _______________________________________________ >>>> lwip-users mailing list >>>> lwip-users@nongnu.org >>>> https://lists.nongnu.org/mailman/listinfo/lwip-users >>> >>> _______________________________________________ >>> lwip-users mailing list >>> lwip-users@nongnu.org >>> https://lists.nongnu.org/mailman/listinfo/lwip-users >> >> _______________________________________________ >> lwip-users mailing list >> lwip-users@nongnu.org >> https://lists.nongnu.org/mailman/listinfo/lwip-users > > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users --0000000000007955d905a0a7afc3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Dirk,

Yes, this fixes the reported p= roblem. But there is probably more. Executing snmpwalk using a wrong commun= ity may generate an authentication trap:

snmpwalk -v1 -c wrongcommunity 192.168.28.2 1.3

3D"image.png"=

This will= also generate the core lock assert, because=C2=A0snmp_send_trap_or_notific= ation_or_inform_generic() checks for it.

So I'= m a little bit confused :-|

Assume I want to gener= ate a coldstart=C2=A0trap at the start of my application, what would be the= correct way to do so, using the netconn implementation?
  • = Call=C2=A0snmp_coldstart_trap() directly from any thread you like.
  • = Call=C2=A0snmp_coldstart_trap() only via the tcpip_callback() function.
  • Call=C2=A0snmp_coldstart_trap() after calling=C2=A0LOCK_TCPIP_CORE() and=C2=A0befor= e UNLOCK_TCPIP_CORE(= ).
Best regards,
Harrold

On Thu, Mar 12, 2020 at 11:48 AM Dirk Ziegelm= eier <dirk@ziegelmeier.net&g= t; wrote:
you found a bug :-)

Try this, and plea= se create a bug entry:

static s16_t
system_get_valu= e(const struct snmp_scalar_array_node_def *node, void *value)
{
=C2= =A0 const u8_t =C2=A0*var =3D NULL;
=C2=A0 const s16_t *var_len;
=C2= =A0 u16_t result;

=C2=A0 switch (node->oid) {
=C2=A0 =C2=A0 ca= se 1: /* sysDescr */
=C2=A0 =C2=A0 =C2=A0 var =C2=A0 =C2=A0 =3D sysdescr= ;
=C2=A0 =C2=A0 =C2=A0 var_len =3D (const s16_t *)sysdescr_len;
=C2= =A0 =C2=A0 =C2=A0 break;
=C2=A0 =C2=A0 case 2: { /* sysObjectID */
#i= f SNMP_USE_NETCONN && LWIP_TCPIP_CORE_LOCKING
=C2=A0 =C2=A0 =C2= =A0 LOCK_TCPIP_CORE();
#endif
=C2=A0 =C2=A0 =C2=A0 const struct snmp_= obj_id *dev_enterprise_oid =3D snmp_get_device_enterprise_oid();
#if SNM= P_USE_NETCONN && LWIP_TCPIP_CORE_LOCKING
=C2=A0 =C2=A0 =C2=A0 UN= LOCK_TCPIP_CORE();
#endif
=C2=A0 =C2=A0 =C2=A0 MEMCPY(value, dev_ente= rprise_oid->id, dev_enterprise_oid->len * sizeof(u32_t));
=C2=A0 = =C2=A0 =C2=A0 return dev_enterprise_oid->len * sizeof(u32_t);
=C2=A0 = =C2=A0 }
=C2=A0 =C2=A0 case 3: /* sysUpTime */
=C2=A0 =C2=A0 =C2=A0 M= IB2_COPY_SYSUPTIME_TO((u32_t *)value);
=C2=A0 =C2=A0 =C2=A0 return sizeo= f(u32_t);
=C2=A0 =C2=A0 case 4: /* sysContact */
=C2=A0 =C2=A0 =C2=A0= var =C2=A0 =C2=A0 =3D syscontact;
=C2=A0 =C2=A0 =C2=A0 var_len =3D (con= st s16_t *)syscontact_len;
=C2=A0 =C2=A0 =C2=A0 break;
=C2=A0 =C2=A0 = case 5: /* sysName */
=C2=A0 =C2=A0 =C2=A0 var =C2=A0 =C2=A0 =3D sysname= ;
=C2=A0 =C2=A0 =C2=A0 var_len =3D (const s16_t *)sysname_len;
=

=
On Thu, Mar 12, 2020 at 11:34 AM Harr= old Spier <= harrold.spier@gmail.com> wrote:
Hi Dirk,

Thanks for your quick respo= nse.

Function=C2=A0snmp_set_device_enterprise_oid()=C2=A0is called by my application, but=C2=A0snmp_get_devi= ce_enterprise_oid() for example is called (indirectly) by=C2=A0snmp_receive= (), which runs in the snmp_netconn thread.

=

Best regards,
Harrold


On Thu, Mar 12, 2020 at 11:16 AM Dirk Ziegelmeier <dirk@ziegelmeier.net= > wrote:
The netconn thread receives SNMP packets and processes them= in the SNMP stack, nothing else. It never calls=20 snmp_set_device_enterprise_oid(). Put a breakpoint in=20 calls=20 snmp_set_device_enterprise_oid() and check the call stack. I guess it's= your application that makes this call from the wrong thread.=C2=A0

Ciao
Dirk

=

= On Thu, Mar 12, 2020 at 10:57 AM Harrold Spier <harrold.spier@gmail.com> wrote:=
Hi,

After enabling core locked check (L= WIP_ASSERT_CORE_LOCKED and=C2=A0LWIP_MARK_TCPIP_THREAD), I got a lot of ass= erts in SNMP functions.

I use the SNMP netconn imp= lementation (SNMP_USE_NETCONN =3D 1), so=20 I assume all SNMP functions should be called by the snmp_netconn thread, n= ot by the=C2=A0tcpip_thread.
So why does a function like=C2=A0snm= p_set_device_enterprise_oid() does a core check (LWIP_ASSERT_CORE_LOCKED())= ?
I assume this would only be valid for the snmp raw implementati= on.

Or do I miss something?

Best regards,
Harrold
_______________________________________________
lwip-users mailing list
lwip-users@nongn= u.org
https://lists.nongnu.org/mailman/listinfo/lwip-u= sers
_______________________________________________
lwip-users mailing list
lwip-users@nongn= u.org
https://lists.nongnu.org/mailman/listinfo/lwip-u= sers _______________________________________________
lwip-users mailing list
lwip-users@nongn= u.org
https://lists.nongnu.org/mailman/listinfo/lwip-u= sers _______________________________________________
lwip-users mailing list
lwip-users@nongn= u.org
https://lists.nongnu.org/mailman/listinfo/lwip-u= sers --0000000000007955d905a0a7afc3-- --0000000000007955da05a0a7afc4 Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_k7om3z410 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 --0000000000007955da05a0a7afc4 Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_k7oqj6621 iVBORw0KGgoAAAANSUhEUgAAAesAAACiCAYAAABh0+WxAAAgAElEQVR4Ae193cttTXLX/j8CQowo IkiOoslsMYNzEb3xQlAOBESUsEG8ES9ET6KJRi+EEHdwRPGYwZAZzVzE+MHs4JuBSe70QgwRoycP BDJ6M+i80YkxMxmxpaq7un9V/bHW2nut/eyPeuG8qz+q6+NXvaq6e+1nrV3w/xwBR8ARcAQcAUfg phHY3bR2rpwj4Ag4Ao6AI+AIBE/WPgkcAUfAEXAEHIEbR2B2sv6T3/ntQf7duE2uniPgCDgCjoAj 8FAITCZrSdB0/Y3f+EJO2FQf/Xc67MJuV//bH4/hsNuH48to9Fp9p7Gsl2M4sCKncDictNDTIex2 h2BaFc3LcR92Mo7pxd7xOMXkqpUJPJq6LB1D9IJDvApETfaLGpfqMsH85Rj2Z8xFmtv760zgCQO8 2xFwBJ4FgVnJ+jf/+2eC/TeVrAuANsDaeqFcvzSWRcmWE0lO2qTBSzjud2F3OITDKFlToN8fA685 OOhDgn45huMoy69v6EyOYzzaTJaOMfQWm7aQma2G98xRl5NZuTRHrrXgvFx75+AIOAL3j8AwWcuu +pu//C781I+8DX/2uz8R/vXf+55AdembhsAGOluf5nA+RUeW2gXDLlCSLwuksZCAjRKU6PPuivip sYb4ZqodPIb6LR1j6W19KGyic01eE6JUd0Mu+Xy9IwMlzSuOgCPgCFgEhsn6z//xPxz+37/7U/zv z3zqD4Yv/OTnwvf+0e/IbfN21zbQpfqJjiBjosxJL8S+w2FfjqB5ZyYJtSRPdcyOQRPox0fuL+F4 iDvj06HwLQCRLq12orA7K6JtHY0mW/ORP9bTDj5hEE1I/U1sSGzBrBzRpzFHOra3eOoxFR5NfhNj BKDuAgVtDCGopBb7zvcv8qYynYDQEUZqn4XbLp6msB2W3z4cKxyTnIRtTtCE3V0s0MRhfnUEHIF7 RmCYrCkZ/7k/9kfCb/3cnwg//Tc/Gb73u/9A+Fc/+InwjX/zyQt31ruyE6VgnpNiDIw2eefHg6dD 2c1m1G3ALcGYnyl3n0nKc+qStDNLLhDfXrJu9ZXkW9YOqBsxhbpKYiKZ+gEbTqZy3ApjmZVgkcaI 0Aae0qXxGPNrjxE9UxJuJqukjyQ3hWHsu8y/hEfEWnSMuI5wK3MiLnhamE7hKGMEA6LvzQ+h8asj 4Ag4AusgkJP1l378E+GLP/b7whc/8/vDz3/uU+HnfuK7ws/+2LeHn/mHvyd86Z98Z/j1X/gH4X98 4XvCVz7/Sf43b1dNSlJQw0A3qps+tfNLu2uJ0JyUZMed+Fe7HcOPMStJVXaichXWEVoa2wvGg76k c+Rl5UM90ZXE1cKKNqYp0XSxAJ6sONRHePT4jcZEYCb+D/KJkuWI/1t94sMZ/k1zab+3pxiGL68l EDftx4ypmpuWB9axLObTPBK7pM2vjoAj4Ahsg0BO1l/49O8M3/zGr4avfeWLgcr077f+zy+Fr33l Z7j8Kx/+c/j4378Pf/pTf2jBrpqUtoFuVDd9HOh1oGUYVDsEzQWJJv+4rLlbF70bslkB0rPXR/lJ fiVu7KmwSLQ72flZethBKptZifQ/OwbqIzx6/EZjUGy3DPKZBmyw9o90yPiCf3n8Luz3gq8oMZDZ kLFOsiaZ/TkgmvnVEXAEHIE1EMjJ+l/+3W8LX/+fPxs+/vI/DlSmf9/42s+HX/vyP+Iy7aT/7Ze+ GH70+//SQrk2kI7qrT67izJHsByMZYdD4yXxSSKUPq326RDbc9LW3WmR0QvGmECI9Ah/ihaTU9wx Y6JKeqtThiiUdIj0Uf+821aJxvRlfVuYic0jPEb8ZmBIJxvdY3CRP7GzluSbn3Mko5B35d/ImxJu xsnyaeCWT02qPtF1CkehSzoSn6b92TFecAQcAUdgNQRysv6pv/Ot4ev/7TPh41/624HKXP+vnwm/ 9p9+iMvnSxwFQeKK/VhOEjm4wlEpR92YBPn4en8IBzyOhOPx6gdVi4wgXXrJOi4EbLKQ4/T8IyQ2 r/zwK/45WAr6oKd+Zr8P8QdY0eacZIhXEwuLmamDnAqPJj9ZVET51RjBEBOqtPGV5IO/1OLE6Na1 qedfHJ9oOGHG9nm4YdJFflgmxXSdFgfsX3EI2S9lZb9XHAFHwBFYH4GcrD//t35b+Pqv/Gj46i/8 lUDlz/9QrH/8H/4yl9cXfeccN9lZ6QRx5whdUf1r40YLBUz6VzTVRTkCjsBTIpCT9ef++reEr//q p8NXf/H7ApU/S/Uv//3w8X/8q1x+SnQmjC7PpicIZ3dfO+nMVuzGCa+LG++yfVd943PC1XMEHguB nKx//Pu+JfyLH/lE+Oc//B3hsz/w28Nn/9q3hn/2N35X+Kc/+DvCZ3/g2x7L6pu15rpJ52ZhWKyY 47YYMh/gCDgCd4VATtZf/99fDb/+8Zf53zd+83/dlRGurCPgCDgCjoAj8MgI5GT9yEa6bY6AI+AI OAKOwD0jsFqy/vDhQ/B/joHPAZ8D9zgH7jmIu+7PgYAna19k+CLL58DTz4HnCPdu5T0j4MnaA/XT B+p73Am6zuueYNxzEHfdnwOBzZL17/4LPxGW/PPgs27wcTwdT58D8+fAc4R7t/KeEdgsWX/X9/90 WPLvdgLL+/B29ya8+2j+jd7XfU1ea+iDPC7VrTP+o3fhzUr4ffTuTdi9fR/ev92FN+8+evATgA6e Z578MHb5TXJvw/vEp9Wu2+Ttc2VMnt/v3+bPsM7yR4++196zVejfvAsfffgovHsjOu7C2/c4pz+E D0xrdJfxu/48uucg7ro/BwKbJetPn34xLPmXA0Lvhr1a+5pBc01eJihdjMelul06fsIeSvocnImO AvTSBdTG+l2Mv7V/XX1pgVMlsg8feOHTasf7j5J3nYxJP0mCc3RFGlteygdteR/eS4LmhaHwSkn8 7VvQkzCep/dzhHu38p4R2CxZ/5dffglL/mGweN0yBhYbUJfW1+S1VPYU/aW6XTp+rF+VMGh39Pb9 gt31tvqtP0fX1ff92/biptde7CE9JAGCjwz+lX/s4kUttmCRsJQPJ9u2LToRi65G/5ny7jmIu+7P gcBmyXrJ82qiLcFCbjq82qOvWFc7BLop5xyTqaBi+ZLMFDTf03FuPG5TuwxezcsxHAa1AS8+Uie+ u4mE0+LxIXxQMvUug47s3759E3YSYBUt6od4gp1y3K/GoQyibemVcKpss+1vwrt3neNTkPnm3Tt4 /EDyTIAm2rzT1rbQLjJ/RIUTesJajoGrJG/tifVL51OtR8FZ+WiEZ2/eTc3bPP9rf5X5q+0u7YDn +7eNXfWHUCVnToLv+Eg686l0EB+SP+JcbPORRZjW7+177ccsR7BgHWSs2FBkUUwZy5MxH54j2ruV d43AZsl6yfNqoh0m69ZNadrysZ9p7/ONgaEKAJysdynx22dgFAgkAMW+OH7Ei+hjv0oGEnDydcQD kicnONEhBrNiQ0+/EpQKHkgb+WT9lIyRXi3bar55R0y+kUVFwllkUlDdZWyJh11otNqsXVa24GTo WnPEtC2fTyjD6oHPSkd49uYd8u6MJ/2bixnUBfm02ol3G7N+0iM+5Cu5ggxYjKGfy3xN9xcvpjp2 yeJZFpUpAfPirFqEkWytR19v0PODJ+u7zmJPovxmyXrJ82qiLUlE30Tcnm56dZOrm/J9eCuBqknb 42kTgtzsGLAgqEHwUTs5bu/zevMGg3VDF0rYPR6N9pxIbCDr6ZcXBCjb2qX1zzIa8qOv4vjaNuBr 9cM68RWfsX52nNZn+NyaFwGyuxbfIT+0W7C2PiF6kXnGfCIb5ugxgWf5YWNH/+54YyP4nHyp751I W7UT72YCnNihJrslIed7Fvwr86mbPLt2dXDIeIu/xX7044TegNGTxHs3844R2CxZL3leTbTDZJ1u qrj7KrtMufHlijwsLfblYJKDs9zodLXBAeq9gNJrZ1678OZN/FVzpQMEi/WStSQctKlVHtslwbWr V9c24DuFJQRzjTvxsHa02iTxCi3uDFGPlv0xkNOiS5KMzCO5or+WzaeBHsO5gomno393fNtGsiH7 Eudbo51sFCzQdi5TQoZErjBqJGvVT3JlvFzhnuaFRNeuDg5pfG2bmSc9eQaLO47hrvqTILBZsl73 mXUJRCoI0A3+5m14O/foTt2gc4/dMFhQubVLmeZFQaW1uylBccSjJBSdPFE3wqinX8GvyMOxcVwO 1CpwjvSKyUXbZvn2EpCWSX4tx+AkE8elpKySe7KJgrG0s94yDvVo2R/bVptPs/WYxjP6CPXHcmc8 ysd5rjABHKr2BuYVH1kUoT5Upna5NvySFgZ1UkY+Hbvsgu/9+/xnaHqBJ7YZPdRcRnlCH69PEu/d zDtGYLNkvfoza/mxkNlxUaLAFb8+ipTgom9MnbDk+FQSor2hTZ1v/jKmyCa60h4TH46NwSgnFgyE udziIbtH4S3JiGxC/snGrn4WAzNWjUMZIkfkt3BC25AvloUP8KYEkzDTPzCbf3ypfvxmFm48N4g/ 7AjZ9yC3PEOP+Jw/nxIGJE/pYTEQHEZ4Co1gZXlQ3YxXybrRz3Os1y7yJu4XwC3Ob51gecElCyd8 tmx9UPGJ2MtiU+ZEfQ/Ze0Hmoozv2NGVV8bdcQx31Z8Egc2S9arPrHMyKzeXJFwKrnlHOKATer/W GN4EJmoHZHfSlBQkcW2rv8+nbfG9ibnWiBNPEu/dzDtGYLNkvcUz6+pGpwAPK/mqv7GbiKv2iR1E 42Zu8z4nsOndzfb6XFveOZjE56r21IF3aukNZtXueAsf3eV8Og/v9ebzY8i/4xjuqj8JApsl622D gRw5Xme3ta0tjxHslmMkPpTj3NdcQIkuPp+W+/Ex5u+TxHs3844RuNNk/RgB4lkDo9vt8/fW5sAd x3BX/UkQ8GS9xXGq85z1p3i3FrBdn+ddRDxJvHcz7xiB1ZL1HWPgqjsCjoAj4Ag4AjeNgCfrm3aP K+cIOAKOgCPgCITgydpngSPgCDgCjoAjcOMIbJasf+9f/Mmw5N+N4+TqOQKOgCPgCDgCr4bAZsl6 6RvMXg2BmxF8CofdPhxfbkah11Xk5Rj2iMfpEN92tj+GF9t3iaZr8rpEDzt2iV6IjeXziPUF2Lwc 92F3OIXTYRf2fnO92mxgP9C9ixrwvD2EU257Cce9/CnnLhxKR6bggsz33Uyf9uh77VrasMZ2wdsE 43sz0Kbh8EWdmyXrpW8wW6T1QxJPJeup/nsHZWQf9Q1u3kWmj+QsYnQjxGticyMmraUGJfWcICgR LF0M38tcuXU94xzdKV/swu5wCIcdJrZTOEmC5gUZ9smkIF7SPsdupLHlJXxE/vhKyXurReFmyfob 3/y/Ycm/MQTP0IsTqWXvVH9rzD21jewb9S21cU1eS2VvQf9o9qyHURU4aSfV3a615N4LtretJ/nh cMSFk2BNekvClDa5dvqMDysfy3C5qgVb4BMWngJL+Qi/4bWj83DM/M7NkvWS59VEO/6vdTySJugx HY+qI5HUd6Kj1HisQg4ix8pHAsrqp6YtfS2tWroEYp5l7fIEHOmox+yPx8ExOPEpx0Mx4ETehwPZ FCc8HfWJfSUoLbVP60X8SnyrZdYIJXlNv/R40xire+Lzovuib6RPpLd9UuOheSGO+YRU+bG2/diz S1TB6wQv9B0Oi2W0MZUr2dqePG9ny018Z90ntYbcArKqOQx9MkdD6NmS+A/GFLwSj3ym2vI/tZmd NPHOuzttz7y5gmNaMke2LcG6ps2+RRW4TLTte6fgFZPUstjQss8Kb9BQEkSMCfMYfBvYk+6dZG2S qUiukjPTHfn4PGOkdMB5UOS1+eRtffs4vjk3RbNAIOtddYe+nmvAY1DcLFmv+sy66bg0SSWTEE12 fOqTScN98HxjRMsAm5scAezqAmOy06Z1FPXjQgJ4oEwuEy/sj7zzBFX0SJt0ECym7ONgCklK0Y9k igJJnhjWwFq64gJHbEKdiRfWsWz7YsBo44A6zZUztj0vgpRdIgevEYe+rTAfcVguo82RV1s20tHg JXITX5kbbBPotdBGPYeNXrPvCfETBr+oZ/Ex8u75n2hsImi1ZcBTAXlj2dARNtm50kf0dLybgr7C L/XNwtrQqntQZOHV6hnHF7x6tAM5TfuQTwd3Gic2BkiUZENuFz4kX/soziHAUEjTtZ9khZdcYSDj Fxc04po+n45dKh7h3BQ5YCs3kR6tuSz0dDU02NUob5asV31mncDWk88ainUst0DBfixHhGjlI06t MGvpApNBr14tb6jTGDV5oa8SOmVDGsDBQVbZMlFqvtP26Ruo0Ne8alUtDdQZp7m8YVw1qaGvwTPr NAuPMa++7TAuC4RCQ68+LxiXi8gfy0SAdSzLycU5GFu+rXpWLhZGc5jtl7mYrnxTGX3RlrPHaHuj ciTHttuACvbMmitAn3S9iZiEGLKKFuOYXHJsykmkpstztGmftd/iC/08FeH5LfFT8Y5oWz5KPNgf EsMK336SLTaq2G3kin1dPmx3w66ER8HQLCioHwWP6JtzrdjYK22WrJc8rybaOf8RwARWxMRONKxj mTiP6rYvrqwQ95ZuSpeeg0dyaYyavFYPK9X2m7rSAYOSoePVrmBoZSwN9o3xUzabACo3zzIfgU3K btBHtY/wGPOapx/IlaKSHxv7vGQQXkGvEaa2b5FclEGyp+qoX5orvTnc0COOHshYfYwNuiTbttk5 P5orxv6UkF4/Jg0wJZUVriP7qE/HBhXn0HzFEzukTDqZxRrVq/nS8EdiUe4X4ZkSMgRnlXRTEoRu fvSpFlREQwRyTawzn55dvXYYj3I15qC/4oO+AJpOcbNkve4z66J9BnUYWCYmrxobJ1V2qAKzyG2V tC5wfJiJR3pEueJg4rXLK97MAAojXmkSy43ANsiqdKl9Wi896awOoF4uWhqsL+Ftx4k9JAj7YoDJ /hM96Gbs4tHjda5+IhSvS3jhOCmjjVimfqxjWfog4Kr53KLtYSG8sF90kyvxK7L0HI59lV+U7lbG OWM6/scjWFGXsJA5IW2swty5goNKWccBxAvxxjIL1cekCheDg/JhkVtKE7yH9wLErY6ctn0d3FFW UTAuGCrsSW9I1qcT/BmXtSkxUzoijfCSa6I3+tACgOdkl0/HLvYPYIW2teZajx71YR1wviimVWWz ZL36M+u8ShPnoqPILqxj2fbZeqSNP8aIK0FJoBVaPLT8oK08I5fVK6wkmcmEHuS4ZFf145yGcJpo TN/kHScZ9+8P4ZB/XLPQPpLLk0hswclk7WkoqfzAgOmg1OUNP4Kp7LNyW3XRV5JHD4+RnCW2Wx0a WHRtnTFW4WjpsY7lpMNsuXbsVL1h42gOKz3k2HBCxjljUmCUe0nu35Jkkt6kq3QqU+bOFRgEdpc4 MLJt1Ed8sT+WZ8ckGr12bJhtn7nvaFyVlNN9VbWTnRLP7b0n9zFgLkXQLbpTJ1heNIIsrkv+QP9X fLIAdSqQhzTnpvgO7BA2Tfr+XJNhvetmyXrVZ9Y97Vdpx5tkFYY3xuTR7bsxuJ9ZHQ5OjaD1WpiQ PjloU5DEhedrKTVH7rXu2WvJmWOz00whsFmy3uKZ9ZQx5/X3Jiy1l1VjXLVfIxCtLXcr+9bW8zzv vf6oS3G4dPw1EJinI+/ucnK8hl7TMnhXld5g1t5VT/O4PgXh3VpYzPPDfH17cuZzcMrrIbBZsr6e CZdKevQJ++j2Xep/H38+AnCkxwvbayxmz9f2fkZe6569lpz7Qf6WNfVkfcvecd0cAUfAEXAEHIHg n8j0SeAIOAKOgCPgCNw8Ar6zvnkXuYKOgCPgCDgCz46AJ+tnnwFuvyPgCDgCjsDNI+DJ+uZd5Ao6 Ao6AI+AIPDsCmyXrrd5g9uwOc/sdAUfAEXAEng+BzZL1qm8wewq/PPmfUfALNVp/W1o7H/92tn6d ZU3vLesioN4IhW+gIjH8VijzJ1zwpqiuv+bQoBk9+l47jp1T7vGRdvh78vz2sObfRs8R5jSOwDQC myXr+3mD2TRI16GYStZT/dfR8tWlXPxWqnvB8Xb1pOSUX8GYJ0T6m+vDofEKSUnePZuofYomC2q+ mjN+j3wpH+QJZfUmNtSZytp2wqK7AAGWXnQELkVgs2R9P28wuxTCtcZjUGjxnOpvjXm8NtrVqeBI O506cwwMvxccb1fP02F0AkJ6S+Kl18xrf9k6O8r4sEmDHlULtvhebJ4CS/kgTyhb+aVufXIKB9hh AwsvOgKrI7BZsl73mbV+U1KMzenGOeLHMF4SQKnvdAz79MpQGkM3nbzsvwT8mrb0tfBu6WJfQi/B aqSjHjP+kAfxgVefxsjErySML/uP8spxnHw0gfRfat+EXrzrEF2W22k/elD0T3qKC9OnPMVf0eeE vUkUJnCjx2o8WjjiiJZvk15XnWctPaMeBS/4eAPNjQjQhL9b9qH9VG7QUBLMSUn31/cK6SnzYl6y Lskw6cJJ98ifa8z8Kx1kHhR5bT6nxFTrneFqzGfLJ9aP6h5kvVhPOklI90PGyGLqdUfgcgQ2S9ar PrPmm0JuOjE6BTS564gmB4nUJzcP98Fx1YiWb14JBCILrl1dYMzpkHZ/0zqK+hQQln8iE2wCFXOC 5sRnsJiyL33BqK0X8TrHzv6YHIxlUcE6x8Ba+sQ4kl8SQWxttQm9XFFvLEt/unZ9C8lwNHe4D3wy op3lB8At+aXGhHRHm6gM3w1GOU37EIMO7jRO7iUkV3Klg+SDjxQGbf42OZZvDQsvuYoMvaDEuarw yfa25WrcCMZ033Z1Jj3AJ0xX6n4kDv7x4uoIbJasV31mzQEHgiDDYG4cFThGfTQY+7Ec8aWbTgJA hXhLl9Qmu0C+MgPLG+o0RgVA6KuEWp1b9Rhsig4SRGq+k/b19DrXTtl5yHUONhjwMx5kCyQCbqdA LLZmwljgYCqnAEJT45FHtXyr5gpR4ngs2z5bt7RwfJsVwIKlt/Uz/N20D2Ryv8UX+hvFOkGRnppH XIiSH/aBTgZUQuW8a9pyki02qvuR9IQ5KvO5m/R7diU8yj1TFmVtnY0PUE/CxtYbeHmTI3AuApsl 6y2eWcsNFG9cc+OsFkTjKlwFhwa6SpdeMFA6ERPQ2QQc1deQV/cDL6JXOmACM3TpmLNr30gvJQOV tDKgvvoYnQgiLrZtCR5oRywr36LPuBtsG/YR8Yh2ap7hWMtriX21HG1ftJn/3/UV0JiiJMrSTHo3 /JEIavo6yZF+OaGnBRfOV9VPfCVJyjXJynQ9u3rtxRguFZ2NT4y8rIcZ71VHYA0ENkvW6z6zLqbm G1AFQurHGwnLts/WiRZ27TNvYOKidQEe1Mn/jfSIciUIEa/lx+CyW0wBS3YbbIP0LbVvpJfhJWYq 7KmR6DryZ42JCSYH7DwGFyGpkWwVuzPdFB6iGw7QZe1bpLe29fqIn6WFOTI5z3Cs5TVl37Sctn0d 3CkptTBW80zwI707yXrIR8ag3cJLrkmG4UPJlOeKwhT5dOxi/wBWYgJelSzkSURYjzLkfkYWXnYE 1kBgs2S9+jNrOULNgQBvFIIC61i2fbYeaeMPd+KR6fCGo5u30kV2OnLkKsdpE3oAr/EPzKKrKSj1 j9hjsOD+/SEc8tHwQvsYnmJjpRcHxIV2njMmBVLBWnxSkkzEpL+b6eERj58LjomPsVv//qGXkCf8 25iTs+cZ5+OV/Q3zbWxf8S/jXiUs0w8QxvtQEi+DWn6Ale9dNSBWQLfoa51geTELCwauy30ok4PF lbmLzVGvht7duSm01hacC+a+1wIbRnqTI3A+Apsl61WfWZ9v34yRNuDOGHJXJBfap3YrN2A46ZOD NgV0EzxvQMW2Chf6oc200XotOQ3R3uQIOAKbIbBZst7imfU2KPSCG7XL6lquuMreRhu7A4g7y0vk XmYf7+ZzctzK5mV8eVd1OAXW7W52M5f5YT5CPTnzOTilI+AI3B4CmyXr2zO1p9GjB7el9sHxMS9W Llko9DB/xvalfjgXo2vJOVc/H+cIOALnIODJ+hzUfIwj4Ag4Ao6AI3BFBDxZXxFsF+UIOAKOgCPg CJyDgCfrc1DzMY6AI+AIOAKOwBUR8GR9RbBdlCPgCDgCjoAjcA4CnqzPQc3HOAKOgCPgCDgCV0Rg s2S91RvMroiNi3IEHAFHwBFwBG4Cgc2S9apvMLsJqNZUYuLPa+RtTqO/b+aXlcgLQSb4ram64YV/ 81y/HtQQe3V1BNSbvMwbwvIb7/KrX+HtbfiKXauVzL8RDY7p0ffacezZZf0nhq0/t2dsRvfQ2bJ9 oCNwfQQ2S9b38waza4Buk6mtow7UN/jqF5Lm8ogfEU31Z0bLChe/TWwjvZZZMYP6dvWkhNxKVNRe LZ5ejuGYvzTbs4na5W/rezQIGdLY8hI+yHNO+RROYkvzLXukC3wqdA5Lp3EEbhiBzZL1/bzB7Bre wSBG8mwddRj1IR2Wp8ZM9SOv+WXauaiEQDupVubostxGr664sztuV8/TQU5X0LhTOEzuKDuvajU+ rHyMYqisFmxx585TYCkfy3dRnfwjC4M4kPQ+HPHVtIsYOrEjcHMIbJas131m3TrySgH0WF7cXxJH 6jsdwz69MpQCCB+LpfqItvS1/VWOF+WDHURnA7rU6SqvKxX6Wr8oU9OKHtPyRFZLX80zJtNIHz8q EYPcUAbgKDoF/tSmSRQmcKM2Nf+WXjjiVnze0nMt/Mq8aK9xGhhQEsyJWPdn33CiPJR5l+kRX7JB JzjqrZIz8zqG4x526pUOMg8KzzafvBVmfvYjLfEzr4JJ0a2eO2gHf/FELxJpHsYbHt4jb8Z41RG4 MwQ2S9arPrPmgCE3uiCcgqhEOaLJwSf1SZDiPhNserR8pCbBR2T1riRHaLFM9FjHsvTBEV2lu/C0 cpFPr2zHiDzkSWMBDzXE8gU9FTZEVwJqZGBQv6sAABxiSURBVNFqU8wncAHam/I5YkI6Uv1C/Jr2 gf3pu+M5AUsXjZN5LW18BR15PhV/U7KzfFptxKafZMW3cgXhPC9ikpXbsc8nLjCsPvp+iQl4ioZk 1F9PI/7JdtKriRXo7kVH4E4Q2CxZr/rMOgUDffNCcGKwsY5l6hzVbR8c5fWcyMFQdgASFC0frGN5 uT78Gci8O2/Js/yt4rbf1mNwlJ1O+a52TUdBPgZk6rPJGgJlpUI5ARnxz8NuyucWB1s/A7+mfdn6 eLxc4Qv9jWJOwHYhoOq9ZBkZ9pNssVESMo8wCVHmR5cP223njfnUpMx1EdS83wAA7o/3hZJrdIMR XnQE7g6BzZL1Fs+sZSVdkoUkLsIdAyiWbZ+tW9oYzCROVB5VwQaTk+WDdSxb+bZuaGfJM2MqpW2/ qc+SQUwRG+Jhg26rTQKx0I4wqxTPjy5e1edqbll/LbEP8Yu26jkN9iufQPugKImy+sZ3TtaIfYdR po39KvmlpIn3huqnITJerklMpuvZNau9r3+0neafLKLh6rvrjrO9+Z4Q2CxZr/vMukCab/phADXJ aJIWjgl7QUNUoCAkNz/TyoLBBGIObNK3VB8Zl4JfUx7yxLIoilfbb+pdm4iuh00jcBIeoqsS38PM 6IFjoPzqPh/Onykf9fArBrbti/NJnyYZWYVF2onLvEFcYV6aBIrDc1nNf+RDZVpwyTWNwLnD6iV7 u3w6djFfwEoUQv54v51IE/kP9ZS2tIhqzUcg8aIjcC8IbJasV39mnVfMskOzNyjWsUyuGNVjX/yx lX7u1nZiDDZ8ZLw/hIM8H2MxcNR7oB/4SPCEv2/lbcm0PscXkd6ThzywLOP0lXYe5fmepR/L6GFT kkyS1U0GPf4WF9CZeN2Mz62eK+A3276yQ4xTBxY+KcEJTrjjVT/WSh3kL6GVa7UYIBeAbnFo9J/Q Mh9IgoovKlHxEf8SfsYu6uJkXNrjjyE7c8fQoliRYn+pntu94AjcIQKbJetVn1lvCqwNvJsKuzPm E9hQwMxBm4JqWZzctqETdq2m/LXkrKawM3IEHIEbRWCzZL3FM+ttMOwFVGqHVT6XZVe/jSaXc11b 5x42RVPeVR1OgXfuze1Nob2dUs+u6+N3O5i4Jo6AI3DLCGyWrG/ZaK1bL3BrquesPSo217LrWnKe c3a61Y7AMyHgyfqZvO22OgKOgCPgCNwlAp6s79JtrrQj4Ag4Ao7AMyHgyfqZvO22OgKOgCPgCNwl Ap6s79JtrrQj4Ag4Ao7AMyHgyfqZvO22OgKOgCPgCNwlApsl663eYHaXKLvSjoAj4Ag4Ao7ABQhs lqxXfYPZBQY+5FB87eLQwNf+06EZ8uUtV/nlKkODVu/EvxOXN3StLsQZ1giw33vvLYC3lu3kwzGR RX4TH74Gl19+hm9n6/CVuWbG1sqllh59r73JaMY90Bin3gpXvYO/McCbHh6BzZL1/bzB7JF9fF6g WA+RKfnUr4PxerJncLr4DWxT9s3Q4elIUiLm1/F2kiq9gVxe/M0L00T3cgxHaTevEI4f8hiBSb4S eXP8hjS2fC6fkX66b9oeTe+1x0dgs2R9P28we2QnY5B5DTun5E/1b6sz7V7Ubpp2TIvewva6+m+L ztbcCTtJeiNZPTr9etvTYeJVt8a3le+tCmohF98Nz1NjKR+zqLBievVJe3oDvf1hEdgsWa/7zLp1 LJYC5bF88KEE3tR3OoZ9emUo3Wh4tDSiLX0tv9e8kR6P6Urgj2PiBzEoQLXssR8yGAWypAN/7COV Z+KAutoPJ5Q8hfwJA6yP5Gkb9sej+piJRpP4lNe5Rr0i74ITfECDaLOCSYdZ/tU67XKC0MGedTMB GvWt/ar1L7rJqJaPk94zfbXlnO3zbumtMRz7tTGeElz1mIOwGM3xhKNJjoJunJMyXstUczwNqJIz 8z2G4x6+9KX0JJ6yACi6tvnIdl/rEadr8jnMVaUfnxzIfTBtTz0PCyJeemwENkvWqz6zbt6wdBNA ACeafPOnPgkQ3Gduyh4t3zxyk7acb3h36dNNmhOqkZ8Tj8hA+vjlI3VTCxlfkTbpI/xGOChd4zgZ FhO32I38SSDWp+UJz7g4Ep7KgFRBviIHcFJDkDbpMNu/oMPpkHbTxEOCowhqtUmfXK0ewFtI6HrL c3Z0Pwz0nvZrTFbVvCWe4quM0RjrvLAWoXlcLFDSquRwF/qnDOonWdFDrmUMLmZFjT6fju187+yK /dU9CPMnz03QQd17c9qRxsuPhMBmyXrVZ9Y8we3NaW9KrGOZ3DWq2z448mp6eoI+BcL4CUK5Ec2Y lj2pTT5dyFeJEJUeyA/L1lbbB7axPJ2sKABGkXYc1rFs5BFPFZQtrTXE9tt6Snp5B97Bc+TfLq4k S9sf+MRDZBhd5/gVhyS5OqFY+7COZYMr88V+LEehxXeohJQt/aDe0nuuX3msxVR0sFfSYQYt444+ 6SXFwr+VyPtJtswxdbsZmwXfLp+u7RZrew/KrjpdlRLRJmVPcx4W2730uAhslqy3eGZNNwolsYsS CvsSbyAsU2cMBo17Js2CAb26YYmPBBk7JrJS9qixSVT3gvywTAOwjmXqA9sa8iQgaR5TPEEG8Vwz WSsdR3iCDowZ1BUP7kz/IxqbLFptcgQstCM9kH8sKx8r31A/6KnKts/WcRz1gV+pWv1n6afq5ZER 3wdz/drFulIo2S6YtvpLW5mXiH3pt6VCDz2U5OCmVkk3JUDo5kdmaqEl4+WaWGc+Xdst1uCr7hjQ m9cSKeYp+nlYaE5eu2cENkvW6z6zLhDnm2MY3OwNMqpTH+za1Q1R5JbSgJ5uZElWzGecrImntgf0 KAIbJbQHy0SK9YGuTCcLn1ZCgj4OZj1bankS9Mi23U7GNcxQulrdOUrNxBN1sHwMBlmNRrAjn4n/ Mt0SPXBQKWsfIx6oN5Zp7KhubJo1Z3tyW7Ki7lrvMh+0X1HPmIhUkmP2cF9E1sk+TNbA53QK8hRY 4WASZWaFBXXfQYfCCGQxzqQHtYE+eC/zFEj3ZpdPx3bmC/d1NR76QN1cRHtQJ2zPxF54ZAQ2S9ar P7POR6FyQ+ENRy7COpZtn61H2vijpngUJcmm7fgRfbxh+Qh7fwiH3s6ak58cf4k9kjClHZ7HV4qg fVheaBvf8CIPgzlHJz7FiMfxB/ih2EieHjf+IZLVtVWfiafyfYOPsrPgWpIRjUm6N53f0yMeaTYf WTR9PMJu1MfKVT5YOmeP/PsJy8vUm3qP/NrSW+ZUSvCYZEgc/0fjYO6jD42/xCVxkVB4E+5xYUC8 SrvQi6R8BdsijU6wzB8Wa0oeMq34iISWHhGfrq+MrXH33+JDMvrzUDTw6+MisFmyXvWZ9ab4x5up BLIpYUvpp/h5/6shQIEyB2cKhGbB8mqKTQl+5TnICQYT7ZS+3u8IOAKXIrBZst7imfWlxrbH9wIf tZfVOu+eeCfQo29zv6y1p8NlXK8/+nbt4N3T4RToOSc+07w+Rksk9ubgdXBmrPIiZ4neTusIOALn IrBZsj5XoeuP6wW+niZL6Xt8vN0ROBeBa89BOH7lBazvqs/1nI9zBM5FwJP1ucj5OEfAEXAEHAFH 4EoIeLK+EtAuxhFwBBwBR8AROBcBT9bnIufjHAFHwBFwBByBKyHgyfpKQLsYR8ARcAQcAUfgXAQ8 WZ+LnI9zBBwBR8ARcASuhMBmyXqrN5hdCRcX4wg4Ao6AI+AI3AwCmyXrVd9gdjNwbagIv2jispdy 4N8MV6983FD152Wt/6QJX3IlmNi3Yk21cz+8IWuWH3v0vXZRYsZVvcUrv3cA/nSLZUA98eS/xWb6 y+b0DBWdxBF4CgQ2S9b38wazB/HzxW/juvbf7j4C7qdwkpdYN9/qRZjC5xGzyb12IqA+SX5zfII0 tryET1ZuWKDkHRcQaaFyoFfRipw4lBL1rEXGUJJ3OgKOACKwWbK+nzeYIRz3Wy5BNNlAO57WVq9r Igb6LpF3dBEg/HTSIp8cjvhK0zi41869xm+VX618tUiDzy8u5WP5Nuu1jXpxQYNO4eBvN2ui542O wCUIbJas131m3TpuTMnleMgfnCir+dR3OoZ9OrqjvEWBL742FFf+NW3h04I20scX86fgzLsqeTUp BuyW3vaDHUKf9HiJY1SepcArAbApi8aY40YTxNGSckQpr9gk2aK/tOGIlh1J31fC/zjLty29Nf7j j400xqMvECKTHAPhHycdvH88yW61J15Vcma+x3Dcw5xVOqDvySdxPrX55GMA5if3QplrDXuNjfW9 UWQyKetLu+00n2TeIh8vOwKOwGIENkvWqz6ztoGQzUwJRiIN0eSdTeqTQMF9Jtj1aDkZmsSnYI28 S9CiOtCfDuqYsNAJkx49tBt7KblGM4GG2GVZ1C5JH+XYNumTK/LDsvSnq9EnthI9JPYr458XLyPf DvSWaRMXcOC/bHpMXJX/iKfMK869aQEoDHk8JFC1aOq1Z6HwydTUlm0QH8u1jOGFASxKqaefrDt2 pS86VfZmMaB7bqOC0Yf9UfD0I3EFllccgbMR2CxZr/rMmhMoJFs2l4JECQoxaEh91EeDsR/LEceS HFu4Gvqkm+xS+EqBm9sbybJHX+kkY+FYcThW6EXnXnCNSb7o28NM+JSdqA7kBodKf+FLfJbQwlEu qFCKI15GVsJL6U1tkGxr3ZIkHmsxLVpUJUhSKlGCvF478lI01JGTdfGbXhdoe2Tudvn07Oq1i3LU rwRLB/kDcEJ9rf4yxK+OgCOwGIHNkvUWz6wpAFGSiTFjFLRHfYQR9mOZ+uLOoxmXGF5D3wtyS9uV TmVnpIJujyePhYCZ9bRtknilHRO6sYt56P/dJP4GN+3bqL/SmzDcIllzLqW5STjCIwUp7/f5kUxZ KDV+fGaSnfI/Lwhk/hfb1GJExss1uTDz6c2hXjuMb98TZK/MJ7O4oLFGj8TOL46AI7AQgc2S9brP rItVOegMg7RNPKN6DK454E0ErToZmPFZ1Zj0M9/c3qM3OnJSOYTDHgIh22xPGIgxJt0kiMcfw0uW mwoUPCVZsa2yAzby7bjMVn4NbOmxjmUaOKpTH9h0Fv5iQ0tWVFzPm5LwqH2XT2hQz47/EL/TKchT 4NrGDJhZHMxoz8kP9aEyzQW5Jj6oT1ow8JxTOCKfjl3DY/DG/Erio912joo/oqx2ks8MvOAIOAIz ENgsWa/+zFp2KM1ARpZiQMKy7bP1SBt/MBZ3ROPgYnnLbhV2U5kB0Zb23MyBtLTHX21bvjHQVb/o bo4tO/Hs8+6OJvElvfa0GJDAGo+f8zF+ZpR2R9kOCcxWX6xj2eJt65H2fPwHsgiDSm9tj/6BWYtX 8RP7D5Oj8UX2L2JHNLI4mtPO8BS9I8/oM1n48QIDeMYFR9ITlQD7sTneK8Yu1o3s77WL39EIVlbv rKkJcdGC7WCvOwKOwEwENkvWqz6znmnMeWQ2QJ/H5dVHqaRAwb0k4VfXbajAK+PPiaWXiIaKe6cj 4Ag4AldDYLNkvcUz621Q6SULvcuIO7TbDuq8wzqcAv3IqNqRbwPeClxfF3/GCnapKxjkLBwBR8AR WB2BzZL16ppuxrCXLDYT6IwVAtfGHx4D8JHvbS/AFFRecQQcgadFwJP107reDXcEHAFHwBG4FwQ8 Wd+Lp1xPR8ARcAQcgadFwJP107reDXcEHAFHwBG4FwQ8Wd+Lp1xPR8ARcAQcgadFwJP107reDXcE HAFHwBG4FwQ2S9ZbvcHsXoB1PR0BR8ARcAQcgbUQ2CxZr/oGs7WsfXg+1/wzqFoW/p23vG3r4SF/ MAPV29Dy28zin7fx36Sntq5/4a1pXRrErEffa8exK5TZXv87+xWQdBZbI7BZsr6fN5htDfG5/Otk WHOyNLZej1ivxci6+A1qht96it4Ap/u1jZIZJ92XYzjmF6H37KF2+bv1Hg26A2lseQkf5LmkTDIb H1NZwsJpHYErIbBZsr6fN5hdCenFYjB49QZbGlvvjVujXcvKQV1Y085o0XuhNT9h8xjXe7WN9Jak iZ7ovM7W+LyaE8iCymqBB59GXcrH8p1ZJ/0Ox86722fycDJH4FoIbJas131mrd86FXNACoDH8tGD cuyW+k7H/FlCGkM3p3zYYURb+tpuwONAlZD4PdPxQwj6AxHm4wY5APZsoPbyQQUlI6vUoqntLrbE vvjBjBSAQd9d1gk+6EE6YMIFem1fI3ibQJzVTl+GEj9E/i1bcMQt+T9h3Jx3LT/3bGvZZMeXr4Pl D9U05U7ohFCmr2sJ/uxeSo6to+DTIe6q1XiqkLw6iVfJmZPuMRz38FU1JQvnTeHZ5iPb+g5uLbua cy0ZQ/MzBgXzoZUe/woEb3AErorAZsl61WfWZqUdEUpBUJIJ0eQAkvokAHGfCRg9Wk5Icz+CQXKE NsoUdeLCAPukHL/6FJPolA0wpjktUD4RJH7Kbgmqsc8m76N8Q7MZmJF/HN+3T+SIokRv26RPrpZ/ x96b8n/EIS9iqnkHNmRM0U6yPSaE4gvEAxK0motTcmFhpXQS3gO5RC9zJpNjIs2NXKDFaq376Mtv pDvNBbkCP7YxLkxxbin+2f893HrtIEd9lQ9sI/nZ9jl8kKeXHYHrIbBZsl71mXW6odUNrG4+AgwD IpZtn61bWjiO6/mBg6HsfFNwVje9kQEBSXY0ZUcJwX1oQ0sZq/uobvq6OsXFRNZTFiMj+1hvm5gh IFrVW/gp282ApOtt+N/giHp3MTVjmM7iJbtq3U6JMSYxwwPlqrKZewhlTy7SSJloJXtKW3eREQmG O+Lkc8WSZOREWe67Lp+e/r12Uqsx1xR/1GHEJ2PgBUfgdRDYLFlv8cw67lbXCF4Y+LBMToiraxVU 0DfqhoaEhDc90wNfNQaZAY0dUwVgHCfl0XiiwX4stxMDc1W6zrSP5egk0zsqjd86Flrgr3QV+/T1 Jvxf6Qm4KuxQd6Ch5h5do/21kjVhre8B9BXaBmVKjDBIJcVGslb9xEbGyzWxznQNfJhkVrvoT76Q hTZcadHQ4wMmetEReC0ENkvW6z6zLvDkG3cUNId9xAuDZ7x5865t6oalQCK7AaaVnXHkI7GK9NzJ rpTltY4OUY+WXsK72K9Lo/FT/Izdwvgs+yQQCpOUkAQnaOaALO0VflP24lHryPZRXwsX8M2U/9Xc meCV7bb6EF4gU9HJYtQmdcsD61hu6SS4duSiz1mXhj9NAs0qY0FhhzpRmRZock2DjNx8vN7l09G/ t+NH/mqugdLULvOxxwfIvegIvBYCmyXr1Z9Z59Ww7MowGBB8WMey7bP1SBt/eKWfnbWdEgMGHxPv D+Gwl0CYdgZJT/0DLAm8sJLnrD7Wk4IXy5EVQEMhTTPiZ/t6Op1nX1lEJSW7wb3PX9sCxhKvm/G/ xdHUOSlYP8cjXu1LGlfosovVeJhban4TNigXy3P6jFxMagw78ZP7LPohLj7LOLIlL3AjSfw/+Cra pBMs88nJUf/oE3fleHydscm6FT1KXwvP/lzLKqtkTa0tPpnaC47AqyGwWbJe9Zn1pvDYQLeSMA66 OuCtxPk22aigR0ESE81tqhy12sj/t2yy6+YIOAJ3h8BmyXqLZ9bboNsL1nqFHXd285Mv7xJhB3GZ 7pfpcpns+aN513Q4Bba9bHnmM3gVym38/yqmuFBHwBF4WAQ2S9b3g1gvWC+1AI7c+HhzfmJfKsnp 10RgLf+vqZPzcgQcAUdAI+DJWuPhNUfAEXAEHAFH4OYQ8GR9cy5xhRwBR8ARcAQcAY2AJ2uNh9cc AUfAEXAEHIGbQ8CT9c25xBVyBBwBR8ARcAQ0Ap6sNR5ecwQcAUfAEXAEbg6BzZL1Vm8wuzkEXSFH wBFwBBwBR2BjBDZL1qu+wawLgv3747VexGH5dt7W1NVr3IF/j9x8C9R4+KD3Nf8MSf/p2kV/Zg1v wUJ88hvOem/PImQ6Y7ug9eh77SxC3qDVm29tP9i3d3V18g5HwBFwBAwCmyXr67zBTAfF84Oh5qNf 5WgQu7R68Zu+rK6o0KgP6bYon8Ipf3KYviN+5t+Zqze/gT0vx3AU/upVm2gL0YtcGIskqow0ttzm QwsGXEAodrmCvKSR2nblvfLS7FdHwBFwBGYgsFmyvs4bzGxQtPUZCDCJHWfrc/lM09GCQgV72sEt 2oaOdBv1Teu2HgXpIcluGVeLj61Hbp3XmRos22NBH7Vwiu/vZld0+ZzCYdZb6Wo/kC6HI340AvTw oiPgCDgCEwhslqzXfGZNXyhS+YyCKQdNGxRNnXdpcmSJPCIdfrwjfygiRutwyF/MQgRxXEpGSgYk qGZ7I8mYhKGkyYc8aEeW9Sr21Ek+2X+inW2kUwuDpk7wkYksh7SY4IWK2rJJdrq7cVye/Ylf1Yqj 2gmXdAOsk4CKlvU46i9cgaz4OVQ5yi4823xO8Yj9cCgf4MDEDdg2P+JC/qt83cCCbAFeu4adGk+v OQKOwDMgsFmyXvWZtQn+dBQZk3dKKC/RVRRk8+cr09dzIp0EQAzMeJyp+dgv71AiL/IG406HtGs2 /FS7TTIlSfQnHPLDsh1BfXDUSrjlYG/GZZ2QB9IYXpxABD8cU8qMv0r4pS+WYnJSCwjqwASqdG7T 946iu0mW5wLhTjYZ/CExylzp8mHdCgZFj4gVji+fRyUb0hiVrNu25UVSmtOETYWXhdXrjoAj8PAI bJas131mjUEWjyJTQkm7yJKYJDnrwNxL8lWAlF2lBMw8DUheCdZ6B5R2vBSxIQHUO3atk97dZUGx wMlBdtIi1+ightg+qHd10j/KKkkGxiYZBT8ltK6YpJYJWAdrf+7NhZz0d/tApx8lWfUSXBzaTbLU nbCUhMojVPKMJwzRfSgzjaUO4oEMpG744HxSOiFdDwtuF5/DnMroeMERcASeEYHNkvXaz6wl6Mk1 OqtOKNmJjWBYko0dN1UXroauIYMpe+2tnV2zzS42YHfWXUiQZKMf1ns6qfaRnJgoMVcJKq1rwRp6 lSxoHxQLH9StM0CSZ+pWc6WRrFU/jZHxcrV8THumJ7vwSDzjTv4wiVdOPnpY9No7JnuzI+AIPAcC myXrNZ9Zsys4IB7CYY87M5uc0GkxUObkooKgHTdVF74tOjwWR7pWeyPhsF3HUG/i5bm8JO4Ld9ac QBo6UQKSRMMYoRygV/iJnXA90SGz/Ic4YTkm/LJTTvSog7CgK7bbRIl0UlY6olwq07yRaxqA/Flc snfIR/DBxQvxlUcl8bl7OaEQ5ZIfBevQwaLnJ2DjRUfAEXg+BDZL1qs+s2a/xOCmjiHzDqbjOA66 srORIEu0GMjjWNrB8ZE1Z/e6P1HpY3BqVDLkh2D99u5uLgqA/yd7eSdGi5Siv9YVhlR2GTuauvbk xLH4I7y88EGRUja8C63RISUjeTwQ4YYFg+ovCzPCTcbItUr6pAsl4LSbjTropMh8csKUxIq+TwZV fFI72lmMVHKrH5ghRiA7zkOZnyXZd+eU8PGrI+AIPB0CmyXrdZ9ZP5BfKNjngE2JpCTh27LSJtnb 0s61cQQcAUfgmRDYLFmv/cz6kZzCu7vDKfAOGXdnN2VkL1lTe9kNxl1s2QHflAmujCPgCDgCD4LA Zsn6QfB5YjN6yfqJIXHTHQFHwBF4JQQ8Wb8S8C7WEXAEHAFHwBGYi4An67lIOZ0j4Ag4Ao6AI/BK CPx/oWRixoNo+doAAAAASUVORK5CYII= --0000000000007955da05a0a7afc4-- From MAILER-DAEMON Thu Mar 12 09:06:51 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jCNY3-00009A-Ks for mharc-lwip-users@gnu.org; Thu, 12 Mar 2020 09:06:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48402) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCNXz-0008US-PP for lwip-users@nongnu.org; Thu, 12 Mar 2020 09:06:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCNXx-0006bA-TA for lwip-users@nongnu.org; Thu, 12 Mar 2020 09:06:47 -0400 Received: from mail-qk1-f171.google.com ([209.85.222.171]:45231) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jCNXx-0006aU-KM for lwip-users@nongnu.org; Thu, 12 Mar 2020 09:06:45 -0400 Received: by mail-qk1-f171.google.com with SMTP id c145so5933754qke.12 for ; Thu, 12 Mar 2020 06:06:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=DpTo30fTQoFda8n/qa/fvv677sTf1zuwSOrlFNWltYc=; b=SAA8vCQfzlvwELjCZwGFS9p1boNC7mZen8w9lU31oYbj8083hQRtAoov/KiykM8euK qJ40kfj0RiXH35oHPHJVIH+nH+wYVLYTCK7Tdqrh51Zd4DaX/S9zICvFfWc2rdN4eAUH E4WMDaqcfjKxnm5PON3CvSnnyzzkJaCR0oRM8Zi4HD0NH89WX0Nx4KltpJ9Xb9rMQ+rR 5sv/EsqdiT7xgr2uKJ8rOiCKPowEtJsH/iej9OWelFpUEm9gf0PflPacSMe+9rr5EYeL eFLhMcxCeTFS9dYCuNtoiu7zK90DZxblCdB06s0LV+iiXGpydTrzCobGdKPHTCd7Yd2r 6jiw== X-Gm-Message-State: ANhLgQ1GWP8SUUruwIN4Qg8XR7huUjWuGCumDZLiX0hiuUdSwA+sUZBA ruzwQeOcdUJdA8jZ1d7+sgWuIOhQ0xKOgV5d3u5w X-Google-Smtp-Source: ADFU+vuXhscjCRj6cSBhpiTqjiH4MYJxchlHYBRNS87MuMvK9Dx1XdlYr6utKbsKYypXGYkqCHZvMI2G2E7rVKzbgsM= X-Received: by 2002:a25:e788:: with SMTP id e130mr8201689ybh.419.1584018403505; Thu, 12 Mar 2020 06:06:43 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Dirk Ziegelmeier Date: Thu, 12 Mar 2020 14:06:31 +0100 Message-ID: To: Mailing list for lwIP users Content-Type: multipart/related; boundary="00000000000042c90a05a0a80667" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.85.222.171 Subject: Re: [lwip-users] Core locked checking when using the SNMP netconn implementation X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Mar 2020 13:06:49 -0000 --00000000000042c90a05a0a80667 Content-Type: multipart/alternative; boundary="00000000000042c90905a0a80666" --00000000000042c90905a0a80666 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable The last two options will both work. Read the lwip threading hints in the docs! Harrold Spier schrieb am Do., 12. M=C3=A4rz 2020, 13:42: > Hi Dirk, > > Yes, this fixes the reported problem. But there is probably more. > Executing snmpwalk using a wrong community may generate an authentication > trap: > > snmpwalk -v1 -c wrongcommunity 192.168.28.2 1.3 > > > [image: image.png] > > This will also generate the core lock assert, > because snmp_send_trap_or_notification_or_inform_generic() checks for it. > > So I'm a little bit confused :-| > > Assume I want to generate a coldstart trap at the start of my application= , > what would be the correct way to do so, using the netconn implementation? > > - Call snmp_coldstart_trap() directly from any thread you like. > - Call snmp_coldstart_trap() only via the tcpip_callback() function. > - Call snmp_coldstart_trap() after calling LOCK_TCPIP_CORE() and befor= e > UNLOCK_TCPIP_CORE(). > > Best regards, > Harrold > > > On Thu, Mar 12, 2020 at 11:48 AM Dirk Ziegelmeier > wrote: > >> you found a bug :-) >> >> Try this, and please create a bug entry: >> >> static s16_t >> system_get_value(const struct snmp_scalar_array_node_def *node, void >> *value) >> { >> const u8_t *var =3D NULL; >> const s16_t *var_len; >> u16_t result; >> >> switch (node->oid) { >> case 1: /* sysDescr */ >> var =3D sysdescr; >> var_len =3D (const s16_t *)sysdescr_len; >> break; >> case 2: { /* sysObjectID */ >> #if SNMP_USE_NETCONN && LWIP_TCPIP_CORE_LOCKING >> LOCK_TCPIP_CORE(); >> #endif >> const struct snmp_obj_id *dev_enterprise_oid =3D >> snmp_get_device_enterprise_oid(); >> #if SNMP_USE_NETCONN && LWIP_TCPIP_CORE_LOCKING >> UNLOCK_TCPIP_CORE(); >> #endif >> MEMCPY(value, dev_enterprise_oid->id, dev_enterprise_oid->len * >> sizeof(u32_t)); >> return dev_enterprise_oid->len * sizeof(u32_t); >> } >> case 3: /* sysUpTime */ >> MIB2_COPY_SYSUPTIME_TO((u32_t *)value); >> return sizeof(u32_t); >> case 4: /* sysContact */ >> var =3D syscontact; >> var_len =3D (const s16_t *)syscontact_len; >> break; >> case 5: /* sysName */ >> var =3D sysname; >> var_len =3D (const s16_t *)sysname_len; >> >> Ciao >> Dirk >> >> -- >> Dirk Ziegelmeier * dirk@ziegelmeier.net * http://www.ziegelmeier.net >> >> >> On Thu, Mar 12, 2020 at 11:34 AM Harrold Spier >> wrote: >> >>> Hi Dirk, >>> >>> Thanks for your quick response. >>> >>> Function snmp_set_device_enterprise_oid() is called by my application, >>> but snmp_get_device_enterprise_oid() for example is called (indirectly) >>> by snmp_receive(), which runs in the snmp_netconn thread. >>> >>> [image: image.png] >>> >>> Best regards, >>> Harrold >>> >>> >>> On Thu, Mar 12, 2020 at 11:16 AM Dirk Ziegelmeier >>> wrote: >>> >>>> The netconn thread receives SNMP packets and processes them in the SNM= P >>>> stack, nothing else. It never calls snmp_set_device_enterprise_oid(). = Put a >>>> breakpoint in calls snmp_set_device_enterprise_oid() and check the cal= l >>>> stack. I guess it's your application that makes this call from the wro= ng >>>> thread. >>>> >>>> Ciao >>>> Dirk >>>> >>>> >>>> On Thu, Mar 12, 2020 at 10:57 AM Harrold Spier >>>> wrote: >>>> >>>>> Hi, >>>>> >>>>> After enabling core locked check (LWIP_ASSERT_CORE_LOCKED >>>>> and LWIP_MARK_TCPIP_THREAD), I got a lot of asserts in SNMP functions= . >>>>> >>>>> I use the SNMP netconn implementation (SNMP_USE_NETCONN =3D 1), so I >>>>> assume all SNMP functions should be called by the snmp_netconn thread= , not >>>>> by the tcpip_thread. >>>>> So why does a function like snmp_set_device_enterprise_oid() does a >>>>> core check (LWIP_ASSERT_CORE_LOCKED())? >>>>> I assume this would only be valid for the snmp raw implementation. >>>>> >>>>> Or do I miss something? >>>>> >>>>> Best regards, >>>>> Harrold >>>>> _______________________________________________ >>>>> lwip-users mailing list >>>>> lwip-users@nongnu.org >>>>> https://lists.nongnu.org/mailman/listinfo/lwip-users >>>> >>>> _______________________________________________ >>>> lwip-users mailing list >>>> lwip-users@nongnu.org >>>> https://lists.nongnu.org/mailman/listinfo/lwip-users >>> >>> _______________________________________________ >>> lwip-users mailing list >>> lwip-users@nongnu.org >>> https://lists.nongnu.org/mailman/listinfo/lwip-users >> >> _______________________________________________ >> lwip-users mailing list >> lwip-users@nongnu.org >> https://lists.nongnu.org/mailman/listinfo/lwip-users > > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users --00000000000042c90905a0a80666 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
The last two options will both work. Read the lwip thread= ing hints in the docs!

Harrold Spier <harrold.spier@gmail.com> schrieb am Do., 12. M=C3=A4rz 2020,= 13:42:
Hi Dirk,
Yes, this fixes the reported problem. But there is probab= ly more. Executing snmpwalk using a wrong community may generate an authent= ication trap:

snmpwalk -v1 -c wrongc= ommunity 192.168.28.2 1.3

3D"image.png"

This will also generate the core loc= k assert, because=C2=A0snmp_send_trap_or_notification_or_inform_generic() c= hecks for it.

So I'm a little bit confused :-|=

Assume I want to generate a coldstart=C2=A0trap a= t the start of my application, what would be the correct way to do so, usin= g the netconn implementation?
  • Call=C2=A0snmp_coldstart_tr= ap() directly from any thread you like.
  • Call=C2=A0snmp_coldstart_tr= ap() only via the tcpip_callback() function.
  • Call=C2=A0snmp_coldsta= rt_trap() after calling=C2=A0LOCK_TCPIP_CORE() and=C2=A0before UNLOCK_TCPIP_CORE().
Bes= t regards,
Harrold


On Thu, Mar 12, 2020 at 11:48 AM Dirk Ziegelmeier <dirk@ziegelmeier.= net> wrote:
you found a bug :-)

Try this, a= nd please create a bug entry:

static s16_t
system_g= et_value(const struct snmp_scalar_array_node_def *node, void *value)
{=C2=A0 const u8_t =C2=A0*var =3D NULL;
=C2=A0 const s16_t *var_len;=C2=A0 u16_t result;

=C2=A0 switch (node->oid) {
=C2=A0 =C2= =A0 case 1: /* sysDescr */
=C2=A0 =C2=A0 =C2=A0 var =C2=A0 =C2=A0 =3D sy= sdescr;
=C2=A0 =C2=A0 =C2=A0 var_len =3D (const s16_t *)sysdescr_len;=C2=A0 =C2=A0 =C2=A0 break;
=C2=A0 =C2=A0 case 2: { /* sysObjectID */#if SNMP_USE_NETCONN && LWIP_TCPIP_CORE_LOCKING
=C2=A0 =C2=A0 = =C2=A0 LOCK_TCPIP_CORE();
#endif
=C2=A0 =C2=A0 =C2=A0 const struct sn= mp_obj_id *dev_enterprise_oid =3D snmp_get_device_enterprise_oid();
#if = SNMP_USE_NETCONN && LWIP_TCPIP_CORE_LOCKING
=C2=A0 =C2=A0 =C2=A0= UNLOCK_TCPIP_CORE();
#endif
=C2=A0 =C2=A0 =C2=A0 MEMCPY(value, dev_e= nterprise_oid->id, dev_enterprise_oid->len * sizeof(u32_t));
=C2= =A0 =C2=A0 =C2=A0 return dev_enterprise_oid->len * sizeof(u32_t);
=C2= =A0 =C2=A0 }
=C2=A0 =C2=A0 case 3: /* sysUpTime */
=C2=A0 =C2=A0 =C2= =A0 MIB2_COPY_SYSUPTIME_TO((u32_t *)value);
=C2=A0 =C2=A0 =C2=A0 return = sizeof(u32_t);
=C2=A0 =C2=A0 case 4: /* sysContact */
=C2=A0 =C2=A0 = =C2=A0 var =C2=A0 =C2=A0 =3D syscontact;
=C2=A0 =C2=A0 =C2=A0 var_len = =3D (const s16_t *)syscontact_len;
=C2=A0 =C2=A0 =C2=A0 break;
=C2=A0= =C2=A0 case 5: /* sysName */
=C2=A0 =C2=A0 =C2=A0 var =C2=A0 =C2=A0 =3D= sysname;
=C2=A0 =C2=A0 =C2=A0 var_len =3D (const s16_t *)sysname_len;

Ciao
Dirk

--
Dirk Ziegelmeie= r * dirk@ziegelmeier.net * http://www.ziegelmeier.net
<= /div>

On Thu, Mar 12, 2020 at 11:34 AM Harrold Spier <harrold.sp= ier@gmail.com> wrote:
Hi Dirk,

Thanks for your quick response.

Functi= on=C2=A0snmp_= set_device_enterprise_oid()=C2=A0is called by my application, but=C2=A0snmp_get_device_enterpr= ise_oid() for example is called (indirectly) by=C2=A0snmp_receive(), which = runs in the snmp_netconn thread.

3D"image.png"
=

Best regards,
Harrold


On Thu, Mar 12, 2020 at 11:16 AM Dirk Ziegelmeier <dirk@ziegelmeier= .net> wrote:
The netconn thread receives SNMP packets and proces= ses them in the SNMP stack, nothing else. It never calls=20 snmp_set_device_enterprise_oid(). Put a breakpoint in=20 calls=20 snmp_set_device_enterprise_oid() and check the call stack. I guess it's= your application that makes this call from the wrong thread.=C2=A0

Ciao
Dirk

=

= On Thu, Mar 12, 2020 at 10:57 AM Harrold Spier <harrold.spier@gmail= .com> wrote:
Hi,

After enabling c= ore locked check (LWIP_ASSERT_CORE_LOCKED and=C2=A0LWIP_MARK_TCPIP_THREAD),= I got a lot of asserts in SNMP functions.

I use t= he SNMP netconn implementation (SNMP_USE_NETCONN =3D 1), so=20 I assume all SNMP functions should be called by the snmp_netconn thread, n= ot by the=C2=A0tcpip_thread.
So why does a function like=C2=A0snm= p_set_device_enterprise_oid() does a core check (LWIP_ASSERT_CORE_LOCKED())= ?
I assume this would only be valid for the snmp raw implementati= on.

Or do I miss something?

Best regards,
Harrold
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/list= info/lwip-users
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/list= info/lwip-users
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/list= info/lwip-users
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/list= info/lwip-users _______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/list= info/lwip-users --00000000000042c90905a0a80666-- --00000000000042c90a05a0a80667 Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_k7om3z410 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 --00000000000042c90a05a0a80667 Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_k7oqj6621 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 CPx/oWRixoNo+doAAAAASUVORK5CYII= --00000000000042c90a05a0a80667-- From MAILER-DAEMON Thu Mar 12 09:37:50 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jCO22-0008FH-AT for mharc-lwip-users@gnu.org; Thu, 12 Mar 2020 09:37:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55036) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCO1y-00087a-Qo for lwip-users@nongnu.org; Thu, 12 Mar 2020 09:37:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCO1w-0006lT-Pq for lwip-users@nongnu.org; Thu, 12 Mar 2020 09:37:46 -0400 Received: from mail-lf1-x12d.google.com ([2a00:1450:4864:20::12d]:40546) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jCO1w-0006k7-40 for lwip-users@nongnu.org; Thu, 12 Mar 2020 09:37:44 -0400 Received: by mail-lf1-x12d.google.com with SMTP id j17so4838216lfe.7 for ; Thu, 12 Mar 2020 06:37:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=Vz7kp2MEvs93pqsyV9Jdnnx2V6CYMn348Q5WZLLauAU=; b=cKu+XLxo+dKIm4cmTaW+R5POf/41JbEHzOgZCM58y+8kBha9dECxEl2eNs54kRq/xy P9Q3kxfpWJuO6R5u6WLnUnPZmXLA+eZY5wIuDJR9MkgRQQm+HRck3QSgUuvqg2SNf4cS doyFG6a/Hg2llhAe6+g7XTCT/PgLWluliuhkX43QIHt0hMoX1LEyXtQsM28It8+vj3ld gfZFHCM+DQ5Sg3+DUTQsIAYPP1oqXeYeZ97TCftKJlwn94V1zoUWBynnQyyLIkagvQkE NAcK56uVv1Qqex7LFqni2K4tWYq657j532FaChN+X6c6jIAT7432pStL8RCuDh8CUBPt 98aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=Vz7kp2MEvs93pqsyV9Jdnnx2V6CYMn348Q5WZLLauAU=; b=kZoK1F7WYX7ltnQUAD/VP1VWZS4jb6FWFwmgFT9eH7G7lRe/myDrlk6nNn3RFdt+xr XxBhSlAl5MnN+FrbfS3cH92j5yzQik7rZe7SY4qTvt9nq6gdoNZTvt2UCVOFlHpA3HK6 LI/Q/Oic1dHaQRx0zp1KY/ufKfwGsGikLzfnNA+WqBHLsFlD/PnbfAU8mby3nmwOutKb RzCSrn3rNLMsBcddTuiagwCEpQ2lAaFzkfBLpjiCrIv7N/45dBkosHcR12cTZntA7eZj IHNHqmJKPxjagcyibWVn0DUrenNrAo3opGSPSRlhAFah+a1On2ZttGwL3zz8jwWqyybe NTzw== X-Gm-Message-State: ANhLgQ0TGqg5+h/0oYdDfuAvA3gdZ8+VPC12G4eU+IBZtZIyILrdIEvQ 5zxZyivKUB/bBftgEYHoxbTgnibH5UZWByxYKcuimNSOWu4= X-Google-Smtp-Source: ADFU+vunzNW86jCoY+ZOkv57xmXDqd5KmNp1A7ar7F4VCD5bqdhFep+sJafLzvtHCMhVrL5RhGIytdhQDemgC8F9X64= X-Received: by 2002:ac2:5473:: with SMTP id e19mr5329558lfn.24.1584020261966; Thu, 12 Mar 2020 06:37:41 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Harrold Spier Date: Thu, 12 Mar 2020 14:37:37 +0100 Message-ID: To: Mailing list for lwIP users Content-Type: multipart/related; boundary="0000000000000832a405a0a87577" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::12d Subject: Re: [lwip-users] Core locked checking when using the SNMP netconn implementation X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Mar 2020 13:37:48 -0000 --0000000000000832a405a0a87577 Content-Type: multipart/alternative; boundary="0000000000000832a305a0a87576" --0000000000000832a305a0a87576 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I tried, but unfortunately the last two options both did not work :-( I see function snmp_coldstart_trap() at the end is calling netconn_sendto() to send the packet. So I wonder whether it allowed anyway to call the netconn_sendto() functions in the tcpip thread? The function will probably try to do the core lock itself. This would explain it does not work. Regards, Harrold On Thu, Mar 12, 2020 at 2:07 PM Dirk Ziegelmeier wrote: > The last two options will both work. Read the lwip threading hints in the > docs! > > Harrold Spier schrieb am Do., 12. M=C3=A4rz 202= 0, > 13:42: > >> Hi Dirk, >> >> Yes, this fixes the reported problem. But there is probably more. >> Executing snmpwalk using a wrong community may generate an authenticatio= n >> trap: >> >> snmpwalk -v1 -c wrongcommunity 192.168.28.2 1.3 >> >> >> [image: image.png] >> >> This will also generate the core lock assert, >> because snmp_send_trap_or_notification_or_inform_generic() checks for it= . >> >> So I'm a little bit confused :-| >> >> Assume I want to generate a coldstart trap at the start of my >> application, what would be the correct way to do so, using the netconn >> implementation? >> >> - Call snmp_coldstart_trap() directly from any thread you like. >> - Call snmp_coldstart_trap() only via the tcpip_callback() function. >> - Call snmp_coldstart_trap() after calling LOCK_TCPIP_CORE() and befo= re >> UNLOCK_TCPIP_CORE(). >> >> Best regards, >> Harrold >> >> >> On Thu, Mar 12, 2020 at 11:48 AM Dirk Ziegelmeier >> wrote: >> >>> you found a bug :-) >>> >>> Try this, and please create a bug entry: >>> >>> static s16_t >>> system_get_value(const struct snmp_scalar_array_node_def *node, void >>> *value) >>> { >>> const u8_t *var =3D NULL; >>> const s16_t *var_len; >>> u16_t result; >>> >>> switch (node->oid) { >>> case 1: /* sysDescr */ >>> var =3D sysdescr; >>> var_len =3D (const s16_t *)sysdescr_len; >>> break; >>> case 2: { /* sysObjectID */ >>> #if SNMP_USE_NETCONN && LWIP_TCPIP_CORE_LOCKING >>> LOCK_TCPIP_CORE(); >>> #endif >>> const struct snmp_obj_id *dev_enterprise_oid =3D >>> snmp_get_device_enterprise_oid(); >>> #if SNMP_USE_NETCONN && LWIP_TCPIP_CORE_LOCKING >>> UNLOCK_TCPIP_CORE(); >>> #endif >>> MEMCPY(value, dev_enterprise_oid->id, dev_enterprise_oid->len * >>> sizeof(u32_t)); >>> return dev_enterprise_oid->len * sizeof(u32_t); >>> } >>> case 3: /* sysUpTime */ >>> MIB2_COPY_SYSUPTIME_TO((u32_t *)value); >>> return sizeof(u32_t); >>> case 4: /* sysContact */ >>> var =3D syscontact; >>> var_len =3D (const s16_t *)syscontact_len; >>> break; >>> case 5: /* sysName */ >>> var =3D sysname; >>> var_len =3D (const s16_t *)sysname_len; >>> >>> Ciao >>> Dirk >>> >>> -- >>> Dirk Ziegelmeier * dirk@ziegelmeier.net * http://www.ziegelmeier.net >>> >>> >>> On Thu, Mar 12, 2020 at 11:34 AM Harrold Spier >>> wrote: >>> >>>> Hi Dirk, >>>> >>>> Thanks for your quick response. >>>> >>>> Function snmp_set_device_enterprise_oid() is called by my application, >>>> but snmp_get_device_enterprise_oid() for example is called >>>> (indirectly) by snmp_receive(), which runs in the snmp_netconn thread. >>>> >>>> [image: image.png] >>>> >>>> Best regards, >>>> Harrold >>>> >>>> >>>> On Thu, Mar 12, 2020 at 11:16 AM Dirk Ziegelmeier >>>> wrote: >>>> >>>>> The netconn thread receives SNMP packets and processes them in the >>>>> SNMP stack, nothing else. It never calls snmp_set_device_enterprise_o= id(). >>>>> Put a breakpoint in calls snmp_set_device_enterprise_oid() and check = the >>>>> call stack. I guess it's your application that makes this call from t= he >>>>> wrong thread. >>>>> >>>>> Ciao >>>>> Dirk >>>>> >>>>> >>>>> On Thu, Mar 12, 2020 at 10:57 AM Harrold Spier < >>>>> harrold.spier@gmail.com> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> After enabling core locked check (LWIP_ASSERT_CORE_LOCKED >>>>>> and LWIP_MARK_TCPIP_THREAD), I got a lot of asserts in SNMP function= s. >>>>>> >>>>>> I use the SNMP netconn implementation (SNMP_USE_NETCONN =3D 1), so I >>>>>> assume all SNMP functions should be called by the snmp_netconn threa= d, not >>>>>> by the tcpip_thread. >>>>>> So why does a function like snmp_set_device_enterprise_oid() does a >>>>>> core check (LWIP_ASSERT_CORE_LOCKED())? >>>>>> I assume this would only be valid for the snmp raw implementation. >>>>>> >>>>>> Or do I miss something? >>>>>> >>>>>> Best regards, >>>>>> Harrold >>>>>> _______________________________________________ >>>>>> lwip-users mailing list >>>>>> lwip-users@nongnu.org >>>>>> https://lists.nongnu.org/mailman/listinfo/lwip-users >>>>> >>>>> _______________________________________________ >>>>> lwip-users mailing list >>>>> lwip-users@nongnu.org >>>>> https://lists.nongnu.org/mailman/listinfo/lwip-users >>>> >>>> _______________________________________________ >>>> lwip-users mailing list >>>> lwip-users@nongnu.org >>>> https://lists.nongnu.org/mailman/listinfo/lwip-users >>> >>> _______________________________________________ >>> lwip-users mailing list >>> lwip-users@nongnu.org >>> https://lists.nongnu.org/mailman/listinfo/lwip-users >> >> _______________________________________________ >> lwip-users mailing list >> lwip-users@nongnu.org >> https://lists.nongnu.org/mailman/listinfo/lwip-users > > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users --0000000000000832a305a0a87576 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

I tried, but unfortunately=C2=A0the last two opti= ons both did not work :-(

I see function snmp_cold= start_trap() at the end is calling netconn_sendto() to send the packet.
So I wonder whether it allowed anyway to call the=20 netconn_sendto() functions in the tcpip=C2=A0thread?
The function= will probably try to do the core lock itself.
This would explain= it does not work.

Regards,
Harrold<= /div>


On Thu, Mar 12, 2020 at 2:07 PM Dirk Ziegelmeier <dirk@ziegelmeier.net> wrote:
The last two options will both work. Read the lwip threading hints in the = docs!

Harrold Spier <harrold.spier@gmail.com> schrieb am Do., 12. M=C3=A4rz 2020= , 13:42:
Hi Dirk,

Yes, this fixes the reported problem.= But there is probably more. Executing snmpwalk using a wrong community may= generate an authentication trap:

snmpwalk -v1 -c wrongcommunity 192.168.28.2 1.3

3D"image.png"

This will = also generate the core lock assert, because=C2=A0snmp_send_trap_or_notifica= tion_or_inform_generic() checks for it.

So I'm= a little bit confused :-|

Assume I want to genera= te a coldstart=C2=A0trap at the start of my application, what would be the = correct way to do so, using the netconn implementation?
  • C= all=C2=A0snmp_coldstart_trap() directly from any thread you like.
  • C= all=C2=A0snmp_coldstart_trap() only via the tcpip_callback() function.
  • =
  • Call=C2=A0snmp_coldstart_trap() after calling=C2=A0LOCK_TCPIP_CORE() and=C2=A0before= UNLOCK_TCPIP_CORE()= .
Best regards,
Harrold

=

On Thu, Mar 12, 2020 at 11:48 AM Dirk Ziegelm= eier <dirk@ziegelmeier.net> wrote:
you found a bug :-)

Try this, and please create a bug entry:

static s16_t
system_get_value(const struct snmp_scalar_array_node_= def *node, void *value)
{
=C2=A0 const u8_t =C2=A0*var =3D NULL;
= =C2=A0 const s16_t *var_len;
=C2=A0 u16_t result;

=C2=A0 switch (= node->oid) {
=C2=A0 =C2=A0 case 1: /* sysDescr */
=C2=A0 =C2=A0 = =C2=A0 var =C2=A0 =C2=A0 =3D sysdescr;
=C2=A0 =C2=A0 =C2=A0 var_len =3D = (const s16_t *)sysdescr_len;
=C2=A0 =C2=A0 =C2=A0 break;
=C2=A0 =C2= =A0 case 2: { /* sysObjectID */
#if SNMP_USE_NETCONN && LWIP_TCP= IP_CORE_LOCKING
=C2=A0 =C2=A0 =C2=A0 LOCK_TCPIP_CORE();
#endif
=C2= =A0 =C2=A0 =C2=A0 const struct snmp_obj_id *dev_enterprise_oid =3D snmp_get= _device_enterprise_oid();
#if SNMP_USE_NETCONN && LWIP_TCPIP_COR= E_LOCKING
=C2=A0 =C2=A0 =C2=A0 UNLOCK_TCPIP_CORE();
#endif
=C2=A0 = =C2=A0 =C2=A0 MEMCPY(value, dev_enterprise_oid->id, dev_enterprise_oid-&= gt;len * sizeof(u32_t));
=C2=A0 =C2=A0 =C2=A0 return dev_enterprise_oid-= >len * sizeof(u32_t);
=C2=A0 =C2=A0 }
=C2=A0 =C2=A0 case 3: /* sys= UpTime */
=C2=A0 =C2=A0 =C2=A0 MIB2_COPY_SYSUPTIME_TO((u32_t *)value);=C2=A0 =C2=A0 =C2=A0 return sizeof(u32_t);
=C2=A0 =C2=A0 case 4: /* sy= sContact */
=C2=A0 =C2=A0 =C2=A0 var =C2=A0 =C2=A0 =3D syscontact;
= =C2=A0 =C2=A0 =C2=A0 var_len =3D (const s16_t *)syscontact_len;
=C2=A0 = =C2=A0 =C2=A0 break;
=C2=A0 =C2=A0 case 5: /* sysName */
=C2=A0 =C2= =A0 =C2=A0 var =C2=A0 =C2=A0 =3D sysname;
=C2=A0 =C2=A0 =C2=A0 var_len = =3D (const s16_t *)sysname_len;

Ciao
= Dirk

--
Dirk Ziegelmeier * dirk@ziegelmeier.net * http:/= /www.ziegelmeier.net


On Thu, Mar 12, 2020 at 11:34 A= M Harrold Spier <harrold.spier@gmail.com> wrote:
Hi Dirk,
Th= anks for your quick response.

Function=C2=A0snmp_set_device_enterprise_oid()=C2=A0is called by my application, bu= t=C2=A0snmp_get_device_enterprise_oid() for example is called (indir= ectly) by=C2=A0snmp_receive(), which runs in the snmp_netconn thread.
=

3D"image.png"

Best regards= ,
Harrold


On Thu, Mar 12, 2020 at 11:16 AM Di= rk Ziegelmeier <dirk@ziegelmeier.net> wrote:
The netconn th= read receives SNMP packets and processes them in the SNMP stack, nothing el= se. It never calls=20 snmp_set_device_enterprise_oid(). Put a breakpoint in=20 calls=20 snmp_set_device_enterprise_oid() and check the call stack. I guess it's= your application that makes this call from the wrong thread.=C2=A0

Ciao
Dirk

=

= On Thu, Mar 12, 2020 at 10:57 AM Harrold Spier <harrold.spier@gmail= .com> wrote:
Hi,

After enabling c= ore locked check (LWIP_ASSERT_CORE_LOCKED and=C2=A0LWIP_MARK_TCPIP_THREAD),= I got a lot of asserts in SNMP functions.

I use t= he SNMP netconn implementation (SNMP_USE_NETCONN =3D 1), so=20 I assume all SNMP functions should be called by the snmp_netconn thread, n= ot by the=C2=A0tcpip_thread.
So why does a function like=C2=A0snm= p_set_device_enterprise_oid() does a core check (LWIP_ASSERT_CORE_LOCKED())= ?
I assume this would only be valid for the snmp raw implementati= on.

Or do I miss something?

Best regards,
Harrold
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/list= info/lwip-users
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/list= info/lwip-users
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/list= info/lwip-users
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/list= info/lwip-users
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/list= info/lwip-users
_______________________________________________
lwip-users mailing list
lwip-users@nongn= u.org
https://lists.nongnu.org/mailman/listinfo/lwip-u= sers --0000000000000832a305a0a87576-- --0000000000000832a405a0a87577 Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_k7om3z410 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 --0000000000000832a405a0a87577 Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_k7oqj6621 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 CPx/oWRixoNo+doAAAAASUVORK5CYII= --0000000000000832a405a0a87577-- From MAILER-DAEMON Thu Mar 12 10:33:03 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jCOtR-0002EH-LC for mharc-lwip-users@gnu.org; Thu, 12 Mar 2020 10:33:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35979) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCOtM-000256-Lv for lwip-users@nongnu.org; Thu, 12 Mar 2020 10:32:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCOtJ-0007ei-Ao for lwip-users@nongnu.org; Thu, 12 Mar 2020 10:32:56 -0400 Received: from mail-qk1-f194.google.com ([209.85.222.194]:38327) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jCOtI-0007ds-Vf for lwip-users@nongnu.org; Thu, 12 Mar 2020 10:32:53 -0400 Received: by mail-qk1-f194.google.com with SMTP id h14so6496507qke.5 for ; Thu, 12 Mar 2020 07:32:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=YQ/wrpyPjfRsNRRsIWaAbejfAMNkfvRiHVyW/cu2xF0=; b=Dvw1+YRjdFgvYpjccTDAe61QBmwP/wWEBuQ5WML3xtTl5El0Lb8JBBSdzufj2feI5W uRSW/X+xa3Gvvao9c06IqZySZ+YUw4EqJDlwQN6nEMpsUn+B/TIdLxBGp7zVFzwPNKZr StAvas9eI1f2QaaUb2LlQPh+E83W1SXpsZadgsKx8omC34gwZ+XPFpSJp/0FdgjCI2IA ATmlPNTv2pt6+VTFSN+GoI41wK8GKC7a6KJcWyse5xOHaUvg4t8NSpMHzoP+1UKDegMs ZMSXr2sFGxOfYy2rUs+c7jWUWIxWtp9d0cuSnRRyh57aINaKQttzTZV+k1wFV5JoufHu RBzg== X-Gm-Message-State: ANhLgQ0RiN/WXL2y5c1C7XrNc2qn8I7qi6sgLiz7H3VmbebpDEB+MN2S GzukZmXJ5WMkVEdbURMxXkXZMWXbXlkrrvxjpG/y X-Google-Smtp-Source: ADFU+vtIb92PURYTKubeLaBnsEvIM1f3gifhepgCkifouh/Y65XVF98TywbCS+R8HEVCUpDWUGWxtS9FaTKI/NoS2gE= X-Received: by 2002:a25:8585:: with SMTP id x5mr9278369ybk.81.1584023570635; Thu, 12 Mar 2020 07:32:50 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Dirk Ziegelmeier Date: Thu, 12 Mar 2020 15:32:39 +0100 Message-ID: To: Mailing list for lwIP users Content-Type: multipart/related; boundary="0000000000003eb84d05a0a93ad0" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.85.222.194 Subject: Re: [lwip-users] Core locked checking when using the SNMP netconn implementation X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Mar 2020 14:33:00 -0000 --0000000000003eb84d05a0a93ad0 Content-Type: multipart/alternative; boundary="0000000000003eb84c05a0a93acf" --0000000000003eb84c05a0a93acf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hm, you again found a bug. In this case I don't even have quick fix... We (the company I work for) never used traps so they are basically untested. Sorry Dirk Harrold Spier schrieb am Do., 12. M=C3=A4rz 2020, 14:38: > > I tried, but unfortunately the last two options both did not work :-( > > I see function snmp_coldstart_trap() at the end is calling > netconn_sendto() to send the packet. > So I wonder whether it allowed anyway to call the netconn_sendto() > functions in the tcpip thread? > The function will probably try to do the core lock itself. > This would explain it does not work. > > Regards, > Harrold > > > On Thu, Mar 12, 2020 at 2:07 PM Dirk Ziegelmeier > wrote: > >> The last two options will both work. Read the lwip threading hints in th= e >> docs! >> >> Harrold Spier schrieb am Do., 12. M=C3=A4rz 20= 20, >> 13:42: >> >>> Hi Dirk, >>> >>> Yes, this fixes the reported problem. But there is probably more. >>> Executing snmpwalk using a wrong community may generate an authenticati= on >>> trap: >>> >>> snmpwalk -v1 -c wrongcommunity 192.168.28.2 1.3 >>> >>> >>> [image: image.png] >>> >>> This will also generate the core lock assert, >>> because snmp_send_trap_or_notification_or_inform_generic() checks for i= t. >>> >>> So I'm a little bit confused :-| >>> >>> Assume I want to generate a coldstart trap at the start of my >>> application, what would be the correct way to do so, using the netconn >>> implementation? >>> >>> - Call snmp_coldstart_trap() directly from any thread you like. >>> - Call snmp_coldstart_trap() only via the tcpip_callback() function. >>> - Call snmp_coldstart_trap() after calling LOCK_TCPIP_CORE() and bef= ore >>> UNLOCK_TCPIP_CORE(). >>> >>> Best regards, >>> Harrold >>> >>> >>> On Thu, Mar 12, 2020 at 11:48 AM Dirk Ziegelmeier >>> wrote: >>> >>>> you found a bug :-) >>>> >>>> Try this, and please create a bug entry: >>>> >>>> static s16_t >>>> system_get_value(const struct snmp_scalar_array_node_def *node, void >>>> *value) >>>> { >>>> const u8_t *var =3D NULL; >>>> const s16_t *var_len; >>>> u16_t result; >>>> >>>> switch (node->oid) { >>>> case 1: /* sysDescr */ >>>> var =3D sysdescr; >>>> var_len =3D (const s16_t *)sysdescr_len; >>>> break; >>>> case 2: { /* sysObjectID */ >>>> #if SNMP_USE_NETCONN && LWIP_TCPIP_CORE_LOCKING >>>> LOCK_TCPIP_CORE(); >>>> #endif >>>> const struct snmp_obj_id *dev_enterprise_oid =3D >>>> snmp_get_device_enterprise_oid(); >>>> #if SNMP_USE_NETCONN && LWIP_TCPIP_CORE_LOCKING >>>> UNLOCK_TCPIP_CORE(); >>>> #endif >>>> MEMCPY(value, dev_enterprise_oid->id, dev_enterprise_oid->len * >>>> sizeof(u32_t)); >>>> return dev_enterprise_oid->len * sizeof(u32_t); >>>> } >>>> case 3: /* sysUpTime */ >>>> MIB2_COPY_SYSUPTIME_TO((u32_t *)value); >>>> return sizeof(u32_t); >>>> case 4: /* sysContact */ >>>> var =3D syscontact; >>>> var_len =3D (const s16_t *)syscontact_len; >>>> break; >>>> case 5: /* sysName */ >>>> var =3D sysname; >>>> var_len =3D (const s16_t *)sysname_len; >>>> >>>> Ciao >>>> Dirk >>>> >>>> -- >>>> Dirk Ziegelmeier * dirk@ziegelmeier.net * http://www.ziegelmeier.net >>>> >>>> >>>> On Thu, Mar 12, 2020 at 11:34 AM Harrold Spier >>>> wrote: >>>> >>>>> Hi Dirk, >>>>> >>>>> Thanks for your quick response. >>>>> >>>>> Function snmp_set_device_enterprise_oid() is called by my >>>>> application, but snmp_get_device_enterprise_oid() for example is >>>>> called (indirectly) by snmp_receive(), which runs in the snmp_netconn >>>>> thread. >>>>> >>>>> [image: image.png] >>>>> >>>>> Best regards, >>>>> Harrold >>>>> >>>>> >>>>> On Thu, Mar 12, 2020 at 11:16 AM Dirk Ziegelmeier < >>>>> dirk@ziegelmeier.net> wrote: >>>>> >>>>>> The netconn thread receives SNMP packets and processes them in the >>>>>> SNMP stack, nothing else. It never calls snmp_set_device_enterprise_= oid(). >>>>>> Put a breakpoint in calls snmp_set_device_enterprise_oid() and check= the >>>>>> call stack. I guess it's your application that makes this call from = the >>>>>> wrong thread. >>>>>> >>>>>> Ciao >>>>>> Dirk >>>>>> >>>>>> >>>>>> On Thu, Mar 12, 2020 at 10:57 AM Harrold Spier < >>>>>> harrold.spier@gmail.com> wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> After enabling core locked check (LWIP_ASSERT_CORE_LOCKED >>>>>>> and LWIP_MARK_TCPIP_THREAD), I got a lot of asserts in SNMP functio= ns. >>>>>>> >>>>>>> I use the SNMP netconn implementation (SNMP_USE_NETCONN =3D 1), so = I >>>>>>> assume all SNMP functions should be called by the snmp_netconn thre= ad, not >>>>>>> by the tcpip_thread. >>>>>>> So why does a function like snmp_set_device_enterprise_oid() does a >>>>>>> core check (LWIP_ASSERT_CORE_LOCKED())? >>>>>>> I assume this would only be valid for the snmp raw implementation. >>>>>>> >>>>>>> Or do I miss something? >>>>>>> >>>>>>> Best regards, >>>>>>> Harrold >>>>>>> _______________________________________________ >>>>>>> lwip-users mailing list >>>>>>> lwip-users@nongnu.org >>>>>>> https://lists.nongnu.org/mailman/listinfo/lwip-users >>>>>> >>>>>> _______________________________________________ >>>>>> lwip-users mailing list >>>>>> lwip-users@nongnu.org >>>>>> https://lists.nongnu.org/mailman/listinfo/lwip-users >>>>> >>>>> _______________________________________________ >>>>> lwip-users mailing list >>>>> lwip-users@nongnu.org >>>>> https://lists.nongnu.org/mailman/listinfo/lwip-users >>>> >>>> _______________________________________________ >>>> lwip-users mailing list >>>> lwip-users@nongnu.org >>>> https://lists.nongnu.org/mailman/listinfo/lwip-users >>> >>> _______________________________________________ >>> lwip-users mailing list >>> lwip-users@nongnu.org >>> https://lists.nongnu.org/mailman/listinfo/lwip-users >> >> _______________________________________________ >> lwip-users mailing list >> lwip-users@nongnu.org >> https://lists.nongnu.org/mailman/listinfo/lwip-users > > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users --0000000000003eb84c05a0a93acf Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hm, you again found a bug. In this case I don't even = have quick fix... We (the company I work for) never used traps so they are = basically untested.

Sorry
Dirk


Harrold Spier <= harrold.spier@gmail.com> = schrieb am Do., 12. M=C3=A4rz 2020, 14:38:

I tried, but unfortunately=C2=A0the last = two options both did not work :-(

I see function s= nmp_coldstart_trap() at the end is calling netconn_sendto() to send the pac= ket.
So I wonder whether it allowed anyway to call the=20 netconn_sendto() functions in the tcpip=C2=A0thread?
The function= will probably try to do the core lock itself.
This would explain= it does not work.

Regards,
Harrold<= /div>


On Thu, Mar 12, 2020 at 2:07 PM Dirk Ziegelmeier <= dirk@ziegelmeier.net> wrote:
The last two options will both work. = Read the lwip threading hints in the docs!

Harrold Spier <harrold.sp= ier@gmail.com> schrieb am Do., 12. M=C3=A4rz 2020, 13:42:
<= blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= eft:1px solid rgb(204,204,204);padding-left:1ex">
Hi Dirk,<= div>
Yes, this fixes the reported problem. But there is proba= bly more. Executing snmpwalk using a wrong community may generate an authen= tication trap:

snmpwalk -v1 -c= wrongcommunity 192.168.28.2 1.3

3D"image.png"

This will also generate the c= ore lock assert, because=C2=A0snmp_send_trap_or_notification_or_inform_gene= ric() checks for it.

So I'm a little bit confu= sed :-|

Assume I want to generate a coldstart=C2= =A0trap at the start of my application, what would be the correct way to do= so, using the netconn implementation?
  • Call=C2=A0snmp_col= dstart_trap() directly from any thread you like.
  • Call=C2=A0snmp_col= dstart_trap() only via the tcpip_callback() function.
  • Call=C2=A0snm= p_coldstart_trap() after calling=C2=A0LOCK_TCPIP_CORE() and=C2=A0before UNLOCK_TCPIP_CORE().
  • Best regards,
Harrold

<= /div>

On Thu, Mar 12, 2020 at 11:48 AM Dirk Ziegelmeier <dirk@ziegelmeier.net> wrote:
you found a bug :-)
Try this, and please create a bug entry:

sta= tic s16_t
system_get_value(const struct snmp_scalar_array_node_def *node= , void *value)
{
=C2=A0 const u8_t =C2=A0*var =3D NULL;
=C2=A0 con= st s16_t *var_len;
=C2=A0 u16_t result;

=C2=A0 switch (node->o= id) {
=C2=A0 =C2=A0 case 1: /* sysDescr */
=C2=A0 =C2=A0 =C2=A0 var = =C2=A0 =C2=A0 =3D sysdescr;
=C2=A0 =C2=A0 =C2=A0 var_len =3D (const s16_= t *)sysdescr_len;
=C2=A0 =C2=A0 =C2=A0 break;
=C2=A0 =C2=A0 case 2: {= /* sysObjectID */
#if SNMP_USE_NETCONN && LWIP_TCPIP_CORE_LOCKI= NG
=C2=A0 =C2=A0 =C2=A0 LOCK_TCPIP_CORE();
#endif
=C2=A0 =C2=A0 = =C2=A0 const struct snmp_obj_id *dev_enterprise_oid =3D snmp_get_device_ent= erprise_oid();
#if SNMP_USE_NETCONN && LWIP_TCPIP_CORE_LOCKING=C2=A0 =C2=A0 =C2=A0 UNLOCK_TCPIP_CORE();
#endif
=C2=A0 =C2=A0 =C2= =A0 MEMCPY(value, dev_enterprise_oid->id, dev_enterprise_oid->len * s= izeof(u32_t));
=C2=A0 =C2=A0 =C2=A0 return dev_enterprise_oid->len * = sizeof(u32_t);
=C2=A0 =C2=A0 }
=C2=A0 =C2=A0 case 3: /* sysUpTime */<= br>=C2=A0 =C2=A0 =C2=A0 MIB2_COPY_SYSUPTIME_TO((u32_t *)value);
=C2=A0 = =C2=A0 =C2=A0 return sizeof(u32_t);
=C2=A0 =C2=A0 case 4: /* sysContact = */
=C2=A0 =C2=A0 =C2=A0 var =C2=A0 =C2=A0 =3D syscontact;
=C2=A0 =C2= =A0 =C2=A0 var_len =3D (const s16_t *)syscontact_len;
=C2=A0 =C2=A0 =C2= =A0 break;
=C2=A0 =C2=A0 case 5: /* sysName */
=C2=A0 =C2=A0 =C2=A0 v= ar =C2=A0 =C2=A0 =3D sysname;
=C2=A0 =C2=A0 =C2=A0 var_len =3D (const s1= 6_t *)sysname_len;

Ciao
Dirk

-= -
Dirk Ziegelmeier * dirk@ziegelmeier.net * http://www.ziegelmeier.net


On Thu, Mar 12, 2020 at = 11:34 AM Harrold Spier <harrold.spier@gmail.com>= ; wrote:
Hi Dirk,

Thanks for your quick response.

Function=C2=A0snmp_set_device_enterpris= e_oid()=C2=A0= is called by = my application, but=C2=A0snmp_get_device_enterprise_oid() for exampl= e is called (indirectly) by=C2=A0snmp_receive(), which runs in the snmp_net= conn thread.



Best regards,
Harrold


On Thu, Mar 12, 2= 020 at 11:16 AM Dirk Ziegelmeier <dirk@ziegelmeier.net&= gt; wrote:
The netconn thread receives SNMP packets and processes them = in the SNMP stack, nothing else. It never calls=20 snmp_set_device_enterprise_oid(). Put a breakpoint in=20 calls=20 snmp_set_device_enterprise_oid() and check the call stack. I guess it's= your application that makes this call from the wrong thread.=C2=A0

Ciao
Dirk

=

= On Thu, Mar 12, 2020 at 10:57 AM Harrold Spier <harrold.= spier@gmail.com> wrote:
Hi,

After= enabling core locked check (LWIP_ASSERT_CORE_LOCKED and=C2=A0LWIP_MARK_TCP= IP_THREAD), I got a lot of asserts in SNMP functions.

<= div>I use the SNMP netconn implementation (SNMP_USE_NETCONN =3D 1), so=20 I assume all SNMP functions should be called by the snmp_netconn thread, n= ot by the=C2=A0tcpip_thread.
So why does a function like=C2=A0snm= p_set_device_enterprise_oid() does a core check (LWIP_ASSERT_CORE_LOCKED())= ?
I assume this would only be valid for the snmp raw implementati= on.

Or do I miss something?

Best regards,
Harrold
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/m= ailman/listinfo/lwip-users
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/m= ailman/listinfo/lwip-users
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/m= ailman/listinfo/lwip-users
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/m= ailman/listinfo/lwip-users
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/m= ailman/listinfo/lwip-users
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/list= info/lwip-users _______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/list= info/lwip-users --0000000000003eb84c05a0a93acf-- --0000000000003eb84d05a0a93ad0 Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_k7om3z410 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 --0000000000003eb84d05a0a93ad0 Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_k7oqj6621 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 CPx/oWRixoNo+doAAAAASUVORK5CYII= --0000000000003eb84d05a0a93ad0-- From MAILER-DAEMON Thu Mar 12 10:39:20 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jCOzY-0004ed-Jp for mharc-lwip-users@gnu.org; Thu, 12 Mar 2020 10:39:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37005) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCOzV-0004bp-NH for lwip-users@nongnu.org; Thu, 12 Mar 2020 10:39:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCOzU-0002lq-Lg for lwip-users@nongnu.org; Thu, 12 Mar 2020 10:39:17 -0400 Received: from mout.gmx.net ([212.227.15.18]:39911) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jCOzU-0002l4-9S for lwip-users@nongnu.org; Thu, 12 Mar 2020 10:39:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1584023954; bh=ABlt1bj8/B8fu73Wd/JvLg1GEn/rhmChF0OiS30xenE=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=h0zqO2d62q1+V22rUZU+7u6kEUxxIDfqwbNqq0HTGTD1+PN/eMCbfheu9hOC9vI1S cWLX5DvjvzlQEbstSJb+mvfabRPpTV3wrIfw0nTl6zHjLz4T1FhOylThzcWq90Gutj x5zuOomghvVjR89SaGws6SIsmCc9TeGENhn/bCx0= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [80.150.243.190] ([80.150.243.190]) by web-mail.gmx.net (3c-app-gmx-bs42.server.lan [172.19.170.94]) (via HTTP); Thu, 12 Mar 2020 15:39:14 +0100 MIME-Version: 1.0 Message-ID: From: "Simon Goldschmidt" To: lwip-users@nongnu.org Cc: "Mailing list for lwIP users" Content-Type: text/plain; charset=UTF-8 Date: Thu, 12 Mar 2020 15:39:14 +0100 Importance: normal Sensitivity: Normal In-Reply-To: References: X-UI-Message-Type: mail X-Priority: 3 X-Provags-ID: V03:K1:u6MyMlStzkbjFTMQdKPD66nxZNJhj3S3HBZT88EuhnIorTHsGkTCusoFGIwlbVhKlOoCF HF4zKiloghHF3OBVxE4un0w1bH8Dk2NIrrj817z7fIEGenh7OvNqDrmxImEaAUQRTHXaZpAJ+6Th HrWSinJ+oqPxmRKOS8njdeXDhinAVzM8xDf4VWbJEyh0pLgPwGr+tF96eyETZkzsAwXF8uLaWNwZ tfZcx/EI7K+gBsrBi4Kwy1t4oaTREmOoJswJdSEGnL0dj65zHqOAiXtmNh/kueBSTKKqS5zsTKTz qg= X-UI-Out-Filterresults: notjunk:1;V03:K0:Hq3llxR705A=:9C6zJ2MjGBEN6LXxp8t6Af IucnX6A6uBcitth2lpgnQhyWWxLemRVkdy32+F37DOjuOYai6mQ+JXWQVXicYFDRF8jp1eupw R1bY5SS1DO8YIzgCxDKWI6uALSPjKAcNRIL9hw0u5ey9V1jZ3vaJ1YzCYBjqcGQHGVmM9n+K+ etAJgfzd0AYnCWl47jlRJWl8UO+KJ4Uqg090kJ9RYD72OPOc9xAOmktNXaCpVJi39OsGVLzxY 55MWl4jDSK+6+Ds/9IQvU0x2ZyPayPLYx8F0llxu1L/wW98Es5ARMB5YKxKX8RbdGF1mQlza3 v1GLzQ/Nx6OlalaUUYKDPmwkZc2ZHcYsqat1SJBEfrF7Fj0l2n585PQ/m9DYDyDQbmbxa/+Zp 1tOBPprMiVIdjATA5Kbnkj2/y9+F7bR3G3tqPMa934VdiW5pgBaQYtzFcZX6jJMqQDcAIBjRc y/rQ19D+EX2YhDaSNYg2aFvgSpa86wJ6ckXGwFnwA6VZl3/2TUEmpXXB5+7IgN+oWecQ/uOPe 6m50huDmUIjhXpPS70A2ejkSwuvCipSFTyfTF1NNnfqVv7NqvV8OdpmTxiaZQITIzrMwL9Tzs z7gr0WFzYwDtRTGbglwrc/SGHAOrySWrLlQvQ5K/J2/JbQ+HjGDy1YBBfeVcIhc/rtf4qIxID 1SNp1l5QkAHOazpEjuGnOXnVm9okvj5672IUQnI8iFR9bosLOjUwVxFTgYRskIj8koOk= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.15.18 Subject: Re: [lwip-users] Core locked checking when using the SNMP netconn implementation X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Mar 2020 14:39:18 -0000 Dirk Ziegelmeier wrote: > Hm, you again found a bug. In this case I don't even have quick fix... > We (the company I work for) never used traps so they are basically untested. I don't think traps are untested. But the combination of traps and using SNMP via that netconn API might be untested. In fact, I think SNMP is most often used with the callback API, so bug reports in this area are welcome! Regards, Simon From MAILER-DAEMON Thu Mar 12 16:52:12 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jCUoO-0005sE-Pp for mharc-lwip-users@gnu.org; Thu, 12 Mar 2020 16:52:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34476) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCUoL-0005rV-JA for lwip-users@nongnu.org; Thu, 12 Mar 2020 16:52:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCUoK-0001x2-7e for lwip-users@nongnu.org; Thu, 12 Mar 2020 16:52:09 -0400 Received: from mail-vk1-xa30.google.com ([2607:f8b0:4864:20::a30]:35784) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jCUoK-0001wd-33 for lwip-users@nongnu.org; Thu, 12 Mar 2020 16:52:08 -0400 Received: by mail-vk1-xa30.google.com with SMTP id g25so586004vkl.2 for ; Thu, 12 Mar 2020 13:52:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=Ws1cgXVrFkqegm5UoxEWhQP8OgnqO2moym9PEg995EM=; b=f8CT4W9CYrDxmSZ/Hdhoa/vIeAlNcRDC4dKxO2SzIjkoOpqx0B6pnDG87v4GvjDsox WB71E+NEnBOQT0Q+6N7e48nilPxiJk/Bd9by1AvqZyskTFXoeqMzU7kkUoEcWJpi8V7r BNnYL7UNc6oeCEZDe0lrSAmRd/U8k55aWlM/O+3s4SOw4oYrhF3e8hgIXrvdncdEqhcD POVvm5KDAah0wxDXUxHLtQN16XcTg5NpGACk6b8eis/axaGgmcVfPfQl+/JFLBc38eBi y+1Zjie00LAxqP10YpBbZI4GYR5ZU0XjcFkrXY1NUDdMTPipl+F/g1cupKzUsxUwCMly C2Fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=Ws1cgXVrFkqegm5UoxEWhQP8OgnqO2moym9PEg995EM=; b=iekT1DJIKiFADg/wRBqe44ToqrUCYvKbxbpONymnA0xnM9hAK/XIzom+OsE8Obg/Ap fmTmSrrJotIAoSecavHT/GvqUzzNglvtlo7uZnL8vdurz+0pAKhd7dErJ5LoRVRGi4LC BEsBZgpLtjUsnN6CkWuax9nmGQDiezUzXh5LMOLWDl0Pkk5xjSz3AdlPfSuJP4BQqC1w QDREFPib5o66j02qso/DXf5iPWd7nbBkdY8jDWzmdGl2J0iUtJz1G53Xo2UXg+VOj7nC aGxN6LONDcFa+bWQPHR8uqab44NitOE2V7NGcnP6NO4Bg1BQC1bqPGVUmkptja7jPEJN wq2g== X-Gm-Message-State: ANhLgQ0immXVPHBD8YbaaJWcXMMnmXzlDkjADo3Xm0zO2bV8hNQkoJoB T/hhv8YXx4LUy+aaN4WU1qqFVcSIk/kCAp7arspOMy4pxr0= X-Google-Smtp-Source: ADFU+vvKm9hxRe+82koVs2HjfQHX+ihomdDjRrYaWckZbghSpajO0VYC2hZ2FwTOfpshQOoAXoXseqUdldciYx65co4= X-Received: by 2002:a1f:310d:: with SMTP id x13mr6884939vkx.38.1584046326958; Thu, 12 Mar 2020 13:52:06 -0700 (PDT) MIME-Version: 1.0 From: Trampas Stern Date: Thu, 12 Mar 2020 16:51:56 -0400 Message-ID: To: Mailing list for lwIP users Content-Type: multipart/alternative; boundary="000000000000a04e9805a0ae86c5" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::a30 Subject: [lwip-users] SNMP X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Mar 2020 20:52:10 -0000 --000000000000a04e9805a0ae86c5 Content-Type: text/plain; charset="UTF-8" I am using the latest lwip from git and noticed that my SNMP stopped working, below is by general configuration, does anyone see an issue? If I do SNMP walk it get the generic data but not the private mib... /* sensortable .1.3.6.1.4.1.26381.1.2 */ static const struct snmp_table_node sensor_table = SNMP_TABLE_CREATE( 2, sensor_table_columns, sensor_table_get_cell_instance, sensor_table_get_next_cell_instance, sensor_table_get_value, snmp_set_test_ok, sensor_table_set_value); /* sensorcount .1.3.6.1.4.1.26381.1.1 */ static const struct snmp_scalar_node sensor_count = SNMP_SCALAR_CREATE_NODE_READONLY( 1, SNMP_ASN1_TYPE_INTEGER, sensor_count_get_value); static const struct snmp_node* const example_nodes[] = { &sensor_count.node.node, &sensor_table.node.node }; static const struct snmp_tree_node example_node = SNMP_CREATE_TREE_NODE(1, example_nodes); static const u32_t prvmib_base_oid[] = { 1,3,6,1,4,1,SNMP_LWIP_ENTERPRISE_OID,1 }; const struct snmp_mib mib_private = SNMP_MIB_CREATE(prvmib_base_oid, &example_node.node); void lwip_privmib_init(void); static const struct snmp_mib *mibs[] = { &mib2, &mib_private #if LWIP_SNMP_V3 , &snmpframeworkmib , &snmpusmmib #endif }; char syscontact_str[20] ="root"; u16_t syscontact_len = strlen(syscontact_str); char syslocation_str[20]= "TRIMM EAGLE SNMP"; u16_t syslocation_len = strlen(syslocation_str); u8_t * sysname_str = (u8_t*) "Xilinx"; u8_t sysname_len = sizeof("Xilinx"); u16_t bufsize = 64; const u8_t * sysdescr = (u8_t*) "minimal_example"; const u16_t sysdescr_len = sizeof("minimal_example"); bool TaskSNMP::init(void) { s32_t __attribute__((unused)) req_nr ; ip_addr_t addr; //lwip_privmib_init(); snmp_mib2_set_syscontact((u8_t *)syscontact_str, &syscontact_len,sizeof(syscontact_str)); snmp_mib2_set_syslocation((u8_t *)syslocation_str, &syslocation_len,sizeof(syscontact_str)); snmp_mib2_set_sysdescr((const u8_t*)"View", NULL); //snmp_set_auth_traps_enabled(1); snmp_set_default_trap_version(Trimm::getInstance().getConfig().snmp_version); snmp_set_mibs(mibs, LWIP_ARRAYSIZE(mibs)); snmp_init(); _state=0; xxxx::getInstance().get_snmp_trap_ip_addr(_trap_ip); addr.addr=IPADDR4_INIT_BYTES(_trap_ip[0],_trap_ip[1],_trap_ip[2],_trap_ip[3]); snmp_trap_dst_ip_set(0, &addr); snmp_trap_dst_enable(0, 1); // snmp_send_inform_generic(SNMP_GENTRAP_COLDSTART, NULL, &req_nr); snmp_send_trap_generic(SNMP_GENTRAP_COLDSTART); return true; } --000000000000a04e9805a0ae86c5 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I am using the latest lwip from git and noticed that my SN= MP stopped working, below is by general configuration, does anyone see an i= ssue?=C2=A0

If I do SNMP walk it get the generic=C2=A0da= ta but not the private mib...

/* sensortable .1.3.= 6.1.4.1.26381.1.2 */
static const struct snmp_table_node sensor_table = =3D SNMP_TABLE_CREATE(
2, sensor_table_columns,
sensor_table_get= _cell_instance, sensor_table_get_next_cell_instance,
sensor_table_get= _value, snmp_set_test_ok, sensor_table_set_value);

/* sensorcount .1= .3.6.1.4.1.26381.1.1 */
static const struct snmp_scalar_node sensor_coun= t =3D SNMP_SCALAR_CREATE_NODE_READONLY(
1, SNMP_ASN1_TYPE_INTEGER, sen= sor_count_get_value);

static const struct snmp_node* const example_= nodes[] =3D {
&sensor_count.node.node,
&sensor_table.node= .node

};
static const struct snmp_tree_node example_node =3D SNMP= _CREATE_TREE_NODE(1, example_nodes);

static const u32_t prvmib_base_= oid[] =3D { 1,3,6,1,4,1,SNMP_LWIP_ENTERPRISE_OID,1 };
const struct snmp_= mib mib_private =3D SNMP_MIB_CREATE(prvmib_base_oid, &example_node.node= );

void lwip_privmib_init(void);

static const struct snmp_mib= *mibs[] =3D {
&mib2,
&mib_private
#if LWIP_SNMP_V3 , &snmpframeworkmib
, &snmpusmmib
#endif
};

ch= ar syscontact_str[20] =3D"root";
u16_t syscontact_len =3D strl= en(syscontact_str);
char syslocation_str[20]=3D "TRIMM EAGLE SNMP&q= uot;;
u16_t syslocation_len =3D strlen(syslocation_str);
u8_t * sysna= me_str =3D (u8_t*) "Xilinx";
u8_t sysname_len =3D sizeof("= ;Xilinx");
u16_t bufsize =3D 64;
const u8_t * sysdescr =3D (u8_t= *) "minimal_example";
const u16_t sysdescr_len =3D sizeof(&quo= t;minimal_example");




bool TaskSNMP::init(void)
{=
s32_t __attribute__((unused)) req_nr ;
ip_addr_t addr;

//lwip_privmib_init();
snmp_mib2_set_syscontact((u8_t *)syscontact_st= r, &syscontact_len,sizeof(syscontact_str));
snmp_mib2_set_syslocati= on((u8_t *)syslocation_str, &syslocation_len,sizeof(syscontact_str)); snmp_mib2_set_sysdescr((const u8_t*)"View", NULL);
//snmp_= set_auth_traps_enabled(1);

snmp_set_default_trap_version(Trimm::ge= tInstance().getConfig().snmp_version);


snmp_set_mibs(mibs, LWI= P_ARRAYSIZE(mibs));
snmp_init();

_state=3D0;
xxxx::getInstan= ce().get_snmp_trap_ip_addr(_trap_ip);
addr.addr=3DIPADDR4_INIT_BYTES(_t= rap_ip[0],_trap_ip[1],_trap_ip[2],_trap_ip[3]);
snmp_trap_dst_ip_set(0,= &addr);
snmp_trap_dst_enable(0, 1);

// =C2=A0snmp_send_inf= orm_generic(SNMP_GENTRAP_COLDSTART, NULL, &req_nr);
snmp_send_trap_= generic(SNMP_GENTRAP_COLDSTART);

return true;
}
--000000000000a04e9805a0ae86c5-- From MAILER-DAEMON Fri Mar 13 04:12:58 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jCfRC-0000Fi-2M for mharc-lwip-users@gnu.org; Fri, 13 Mar 2020 04:12:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38581) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCfR8-00005K-Jo for lwip-users@nongnu.org; Fri, 13 Mar 2020 04:12:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCfR7-0000XG-Jq for lwip-users@nongnu.org; Fri, 13 Mar 2020 04:12:54 -0400 Received: from mail-lj1-x232.google.com ([2a00:1450:4864:20::232]:43058) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jCfR5-0000T8-UU for lwip-users@nongnu.org; Fri, 13 Mar 2020 04:12:52 -0400 Received: by mail-lj1-x232.google.com with SMTP id r7so9480644ljp.10 for ; Fri, 13 Mar 2020 01:12:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=tF2TpMAsDq4PBy7/LM6r9+RF3s2Vubx1P0VXOLZAO0s=; b=rS8PtkAO6T7k3CSj04T7Itk9762vrEuobOUsPNe1XlujcgUkw0hJGgqQmE7V+mZyhL QLK1muBX/Zg4PxZRHWtPrd96jn5CXuQ5LWCOAgXPDBg73seRl+G2r/pyuHzmO7dYZEZT qK3QjkUKbQDPRzOenPqZHi7nxGxISvyRhXZzPtpgoT0r53dMOO4Vsdc4z0L9i8/X4W5a +a0sJLJcjmafX2d4uRcTiJvrCw7kjcwXCzqU48l3IWDIdGXaeBcF99hMDFuZDiUhQ/dW dd9PlJ817WF6pdYjkmHLAw0KmB5Pt5E6H7BeSPCgCZOi7r1hoVeMz1He//UdlufXw99g m+Rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=tF2TpMAsDq4PBy7/LM6r9+RF3s2Vubx1P0VXOLZAO0s=; b=HU3mcqX2Q375Ur7dlz3iouyI4yIhGdYFNUrf8tWHG8+3JEytzIxx+LtJbHSn0bchA4 ayln37VLeDknU4x6WO0oQO8FgQwKp8L0/Y4dsv6ONCWThH1K5fB4pYOKiyNRHQjWYjQl UiBkeY13YfuVvj8kJLOEgYGhOlSpSarSze8wA/kumasqCeauT+MbV5j1ZSEE32xV3MSO sWSmRVit4bv8bwWKFohoSM9XZdKyPSMl60vgLy0xNM74PVdAbxQBDv78NdjH8h3c7zoa QjPt2hcX6ToclysPqRBCuoMUIXmlTqMnvJfXC/wtodfMBUig/GqqTK6oJ3egfBf+0cKO dPQQ== X-Gm-Message-State: ANhLgQ2jSqWQJjbjswIPYXKJ2q67uvj0ubLNLvjk361SrmT/gO/kiKaK r8PKIBnz/iWJKbZiEE216quwuf/DDxvRiuZKXiNJt/+fh14= X-Google-Smtp-Source: ADFU+vs7bPqt5qXzzdRZ3kXF3A6aXDNjgEfu16rsrM3KWFtrOoCGX/P25lDzMn13qvjqBlpuUbURgTwQnFjbC6lA0u0= X-Received: by 2002:a2e:a419:: with SMTP id p25mr7127420ljn.206.1584087170034; Fri, 13 Mar 2020 01:12:50 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Harrold Spier Date: Fri, 13 Mar 2020 09:12:41 +0100 Message-ID: To: Mailing list for lwIP users Content-Type: multipart/alternative; boundary="000000000000102dfa05a0b809dc" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::232 Subject: Re: [lwip-users] Core locked checking when using the SNMP netconn implementation X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Mar 2020 08:12:55 -0000 --000000000000102dfa05a0b809dc Content-Type: text/plain; charset="UTF-8" I wonder whether there is something wrong with the current SNMP app implementation. As long as all SNMP API functions are called by the same (SNMP) thread, there should be no problem. In my opinion, only checking for core locked is not valid when using the SNMP netconn API. But maybe I oversee something. The benefits of using the netconn API for SNMP is the possibility to run the SNMP thread on a much lower priority than the tcpip thread. I assume the issue can be solved by replacing all calls to LWIP_ASSERT_CORE_LOCKED() in the SNMP app by a call to LWIP_ASSERT_SNMP_LOCKED() and define LWIP_ASSERT_SNMP_LOCKED as LWIP_ASSERT_CORE_LOCKED only if SNMP_USE_RAW == 1. Best regards, Harrold --000000000000102dfa05a0b809dc Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

I wonder whether there is something w= rong with the current SNMP app implementation.
As lon= g as all SNMP API functions are called by the same (SNMP) thread, there sho= uld be no problem.
In my opinion, only checking for c= ore locked is not valid when using the SNMP netconn API.
But maybe I oversee something.

The benefi= ts of using the netconn API for SNMP is the possibility to run the SNMP thr= ead on a much lower priority than the tcpip thread.

I assume the iss= ue can be solved by replacing all calls to LWIP_ASSERT_CORE_LOCKED() in the= SNMP app by a call to LWIP_ASSERT_SNMP_LOCKED() and define LWIP_ASSERT_SNM= P_LOCKED as LWIP_ASSERT_CORE_LOCKED only if SNMP_USE_RAW =3D=3D 1.

Best regards,
Harrold

--000000000000102dfa05a0b809dc-- From MAILER-DAEMON Fri Mar 13 15:25:18 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jCpvq-00077P-8W for mharc-lwip-users@gnu.org; Fri, 13 Mar 2020 15:25:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52086) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpvo-000761-8R for lwip-users@nongnu.org; Fri, 13 Mar 2020 15:25:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCpvn-0004T8-As for lwip-users@nongnu.org; Fri, 13 Mar 2020 15:25:16 -0400 Received: from mout.gmx.net ([212.227.17.22]:57087) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jCpvn-0004RE-25 for lwip-users@nongnu.org; Fri, 13 Mar 2020 15:25:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1584127513; bh=6h3EUphYH9gBhQIIeq6UK7XeQ/PDRMwaNvxmkVJZ3vQ=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=NUtg9e77Umpwi8dCQFpnbJXp7MhBng74KAVW5Ij47I6kT8XRrdMkf1EzbC3ItDYSI DkmpeYj1+NN1IEY5qh9z3wLcb6/LNFAJ04mpB2a89prBBP9ynu+ZmD2zJCejP+aEem sRL/gv7lLNWhHQg0nl7Za3Xc9EFck6ct0ynkMHFo= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.61] ([176.199.210.162]) by mail.gmx.com (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MK3Vu-1itVKQ3gys-00LWuo for ; Fri, 13 Mar 2020 20:25:12 +0100 To: Mailing list for lwIP users References: From: "goldsimon@gmx.de" Autocrypt: addr=goldsimon@gmx.de; keydata= mQENBFDPe/sBCADdhO6Fn+7pnHtmEjiWs14u+n5cFQAhvjZ6EiZLwh0gMl5vYT1HDJ+8HTUA h0xMgXQ2Tsxzizt1TTBWn5DK74SjlIx/dYpM17OHmu6wuIbexKN6hEJSFZjtRlbIlWqEB8px EVeU7//1V/Ukj3QAI3yOrrhIg/s9jmuxMo05fjOsYEkub9PHmvFFdJ7KuApsVss4QRZIpawq HRFv9gY+4DrOvhwMZk6CHlvlAOgqlsMftRMl4699ww2NNbtU2U8n9XFlf2CQxkYAzIJC27Rc +83q+d5xbtcqzxcHhsFXelNTB09ZHEti7NpZZpnP4siVEa8p9BY8n11Nr/97c8lyZUCbABEB AAG0JFNpbW9uIEdvbGRzY2htaWR0IDxnb2xkc2ltb25AZ214LmRlPokBOAQTAQIAIgUCUM97 +wIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQHWthwbhCmfU0tQf+L0m7VG1LNzpt Yvx/1ZZFbqlggespnVuc6HPYqtmbIWxHmlQZgM6Pn61rUWmUl8ilWdcCw8Wuam2pEUSBzlZF z/738kcazWv9SRSbr7ULQi/d/gfOtcfAVUMkTF9jhWpAYR4zmzpR31mvs6Ltfh5rw/bsVJ+/ QbfWLJqdbRG4NykfuGXafQ+o+SDlMlcaBe49whhJsQcCBrvwixeNChUOkV3TY+jgVu4u1MEY c1aJKgVJkBVkAEsJXWFHTkF3TvJf5KdLLGbVBq3I6ItrLgAowI0kC4MzU3eNsCBEroBGJl2/ 7fmut8i+tQNiDfOVP4EHaSD86utnyawQev0TZnY2Qg== Message-ID: Date: Fri, 13 Mar 2020 20:25:11 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:J2xRaG28OSQtZuMzGD72Ktw5GtLrjVJRvpcS1DAghtyfaHEwvPX Y9acscjbNx1HRhWP7+Dd2mm7+FETt6bF38o5vyUiq5V5B1WEsJPrYjJFcjejzHgpSLiw1hq fCMLHGN4bsKhPhBKgkBJL/TLZpfLv2I+QXaWjKQTPVheJ/UUX4VllwLfCcKfNrbPuhQZmKL Ar3z5dnTNbNN7APPbHzKA== X-UI-Out-Filterresults: notjunk:1;V03:K0:JzFkiiLLVNo=:z4lGxZav9n2GYdx2aK5VZ2 MT1FS6+ol5DDZCMvT2B7DSjdTQJ7mPMR0L9MifV1WqbTGN0l6lGUhIwqu2JpiDQRBJWKpkdIM 53liYDZQ3R0BdRn2NlzF0duMo0odhh64HgMQ7BaNXKiPmo1VZmL/nZQXIRZmYrVB1t3+27O9Q mtqEK1A693rUcJPdLll4e6rDcsOc9UUgI9jPgflHXJSOe5/RBeokgcpzOH3nRHN9giMdfcugH ZOXumZkWmQ+082NDcaWvap0bMDumB4iEsKC1XV2JVpnVp0nNBmPA2hWYS/Yl54Ss9x7gxPMln dtv5pYj0QZxiRHAbtg82gZJUWA8Fj1vYzTVB54Zw3rCzJ34CwCQytqHxatw4E5oKdbgdem2NI mmqsvNxNBVCcCaRpen5jWk9JX2uQZ5kXp3XD9KxWExfbZdwXerMguGgEuqHPxxS/ma/eTrdUI 8fyjhIGkddeN5MdmpvIgYHgGATveAtq3p3tRHS++B7pQWoPOtUYDukFg2mgwTOYTMtp6OB3Xj lSowOreZBnCWuZi/bObxCAn8/dcuW5cLiAKVlzmE+SrYq1wMaSHtBlwZ7vLsHjD32wxTMMyKL JIGJ3+6CtXZbJMcrgPLDNH2JQ8wUz6GvznZXlLvQj+Z72Hnt2i2UpNBd8W/xHboEadn2YHlE6 O4VmX2dfWUJFRb9GmrHBrFHZNx4b6C6BIXE4L4IoMGdFw9igJ/eFhtixOAisRAfKhUHIB7WIp U/ftOB3h0q6N7hJW92+oUIBndLinZzq+wy3aZd2ehB6Hv/jjpkdoDWS3G+p8Bs+emw+qWT2Bu HVP6wsUret3cf+4tea4kkW4Ejs7ZjEGs+W3bU/eoSPWlEENPWjrN2osduaijHly6tLVOZKjZF oIH8U7ShFOCQ56NnWcPE8YIoyrrj4TjfCycL1w4+0aSkMslgB2bKUMkJtFfdIPGjCPLrogTpF RonNEYDnrhfHZPzmHzTLsX692C4M7bEzuDRny9q0sFRFix1NJZo9HjFSS/XEeqwq2d9aLfA2W wVkdc5aPdB71gw5M+NWHcRW6c4oLxzhB+NxMW5SGo37sR0GI2+UD3eWd0pegfkL61X3Cm3Dko LiBFCSE7RCHOY7J7QsZmIQzJQpRYUw7EAA4FtoBvzU2iB632bjEaLdP1auslvx/VjAL+8ina4 tmFnTHXfvsfeavciWx35+Zel/diGvmFwaN6tpeYKNiGDG0W4pcpjrgf8i62z3fVAmIomowYAc 8nEeH1uavHIyLZbAM X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.17.22 Subject: Re: [lwip-users] SNMP X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Mar 2020 19:25:17 -0000 Am 12.03.2020 um 21:51 schrieb Trampas Stern: > I am using the latest lwip from git and noticed that my SNMP stopped > working, below is by general configuration, does anyone see an issue?=C2= =A0 > > If I do SNMP walk it get the generic=C2=A0data but not the private mib..= . Which version were you using before to say it "stopped working"? A git bisect would be ideal ;-) Regards, Simon From MAILER-DAEMON Fri Mar 13 15:25:20 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jCpvs-00077x-4H for mharc-lwip-users@gnu.org; Fri, 13 Mar 2020 15:25:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52113) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpvp-00077O-P1 for lwip-users@nongnu.org; Fri, 13 Mar 2020 15:25:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCpvo-0004XC-Qh for lwip-users@nongnu.org; Fri, 13 Mar 2020 15:25:17 -0400 Received: from mout.gmx.net ([212.227.17.20]:33879) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jCpvo-0004UH-HV for lwip-users@nongnu.org; Fri, 13 Mar 2020 15:25:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1584127515; bh=9oKJumzhq4tE64a8gcSQDnEnmhrUqBitxqRmu6LxL0I=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=TMlDbE8dYGsPjiNMqnSqG7gYCVRGWSL0ICLU7x7BbCb/ER8H+JYA2njViG8INAL5+ ikuiNN/Zdoh7lbuMWew0GMBrW01M1w1leuz2XvCumCRLwuZCrsq6ufJJEobvL5ca73 lZQuZc7pOSUjcPeo0ZsNFdh2ExsNME+6hRiey730= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.61] ([176.199.210.162]) by mail.gmx.com (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MdefJ-1jlciY0yR7-00ZhNu for ; Fri, 13 Mar 2020 20:25:15 +0100 To: Mailing list for lwIP users References: From: "goldsimon@gmx.de" Autocrypt: addr=goldsimon@gmx.de; keydata= mQENBFDPe/sBCADdhO6Fn+7pnHtmEjiWs14u+n5cFQAhvjZ6EiZLwh0gMl5vYT1HDJ+8HTUA h0xMgXQ2Tsxzizt1TTBWn5DK74SjlIx/dYpM17OHmu6wuIbexKN6hEJSFZjtRlbIlWqEB8px EVeU7//1V/Ukj3QAI3yOrrhIg/s9jmuxMo05fjOsYEkub9PHmvFFdJ7KuApsVss4QRZIpawq HRFv9gY+4DrOvhwMZk6CHlvlAOgqlsMftRMl4699ww2NNbtU2U8n9XFlf2CQxkYAzIJC27Rc +83q+d5xbtcqzxcHhsFXelNTB09ZHEti7NpZZpnP4siVEa8p9BY8n11Nr/97c8lyZUCbABEB AAG0JFNpbW9uIEdvbGRzY2htaWR0IDxnb2xkc2ltb25AZ214LmRlPokBOAQTAQIAIgUCUM97 +wIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQHWthwbhCmfU0tQf+L0m7VG1LNzpt Yvx/1ZZFbqlggespnVuc6HPYqtmbIWxHmlQZgM6Pn61rUWmUl8ilWdcCw8Wuam2pEUSBzlZF z/738kcazWv9SRSbr7ULQi/d/gfOtcfAVUMkTF9jhWpAYR4zmzpR31mvs6Ltfh5rw/bsVJ+/ QbfWLJqdbRG4NykfuGXafQ+o+SDlMlcaBe49whhJsQcCBrvwixeNChUOkV3TY+jgVu4u1MEY c1aJKgVJkBVkAEsJXWFHTkF3TvJf5KdLLGbVBq3I6ItrLgAowI0kC4MzU3eNsCBEroBGJl2/ 7fmut8i+tQNiDfOVP4EHaSD86utnyawQev0TZnY2Qg== Message-ID: Date: Fri, 13 Mar 2020 20:25:14 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:C9dCX/wbMYC28pK5krzVBPM6nvnMLYQR5m8XWEkYUARVaGjFtJ2 DBVrnA31dNlvAJubeMyMhPmfIE7pWpyit5m2sarS3xPMUp4YU3SmNo/1x7HAHAnhS0I7Yoa ZR1H6WFUVVsUkr9mX9ys2jfzw9Q+hVwJT2EIMjrN+sDYGtnJgQ5+U9SCw8GBrK06CICnq/s k/waIlNEmLzcLdgrX/cyw== X-UI-Out-Filterresults: notjunk:1;V03:K0:keyFjNCoYwM=:/ezCoiIwEdOrkqn3VAbWsJ JHCx/0kyZ+8qhnWPgVUycQgZYkvmJ2b4EMPtqovL8gMzp6RV8vd7elHE9U3LRGQg9BKSvHlnI 8CYxzB9eJA2xudI1Ehhu9Df1RfuNhS3f4zXMr0fKbhazFyaC/JlkGG+jgJHpflxYw2Rfe8tq3 Ds6EDdeFmVLxNKR2Dx4485XSvUdHc+SgiZwbhwIPQdlgLQGDo+fCgqG67Q7AsgwStK2MoudTr efA81cmj5UgtybxPbZBOf1VyhliLPNDCcMvOPQ9+bOalQvHujftQdCeWmrtPjyeCmGkEl4jjE FIwcJRINz6qSSeGl0V3H9Hk5Y1nua977ZYsApG0GnEKoYekvxI3QN8LosyvHG22kWU1eaFGiw SRzuncxb0Zd+BYENxU2JIcAyrGrBP/yKWDzzd2tjfHC0QngG4XhGK+dh4z1U6SUXCdUvNEi8u th5VUBT1vaEnSarGHL2YdTjKKj3jolbD1ZzejiW8L+dvQ9iT5ICpFPS0OAutSUhQ28LGIMpv/ OFaQNrOhHPBpPkQG91PGB4S0fYLd++DcWkENP5BZZYa4bSBU8spboyjt/07r3b/lxLH0wcKOA +Z79n0d9QukSzmSLX/kcqxMsHPAEwuV7Csv8tpf/TZ8jVeN9xFX7qUx4XDgYjFFjGvyFk+txA W3ycQhmOSMTTSUpWXUuRlDNpjzaFlOa27Hy+//FbbLao21I8cb/6DJJodxaD1C9OY7OCtmU6i 8NNJMugrQZNdDpbxqdyqqciBpn+tha8XuIDJdgqwsZD8VY3Kw6waptfEO9+greh1sImX11XHA 6Z/TFqMBAL4q3GFrq2rw15sCrPEBHRqL9FVFVnO3sc7wfxaMTXcZwMj6CnRorUw+ofXGscAbd dJnhbI0D/Fy403qKQVRVzzk/NIwKqA8+ZigZdCBZvx5zNlVkvTcpXEGZirTFnnkQcU14zAchr 4riyj2jg2zXW+ScZ8esLvlekRsciNaSMM3GAHJiaqdLeHhq+v2CgxKxZjcppJICBf3rVAvazr nKaUscnY6DcNbUqoZvIkplOXfHVlre98Rz4hyHqEhT0ku2GdHkKtF7WNr/wTa4eGQxggtiT6s /SJ5Qbkn2ZXAKjd5A2Wkh79C3xnAWsmJS8en3xlKxPZYcDQAthry/X+i5i2B8JDykIYwusxNm d3c/jmDO9efQ5QOyM88WQMZomknwTtKsdaTJvauLB1msQdd+WiJV57vUzETb0f269Ig2XuuWg CarG+a7v86rl1sRLu X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.17.20 Subject: Re: [lwip-users] Core locked checking when using the SNMP netconn implementation X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Mar 2020 19:25:18 -0000 Am 13.03.2020 um 09:12 schrieb Harrold Spier: > > I wonder whether there is something wrong with the current SNMP app > implementation. > As long as all SNMP API functions are called by the same (SNMP) thread, > there should be no problem. > In my opinion, only checking for core locked is not valid when using the > SNMP netconn API. > But maybe I oversee something. > > The benefits of using the netconn API for SNMP is the possibility to run > the SNMP thread on a much lower priority than the tcpip thread. > > I assume the issue can be solved by replacing all calls to > LWIP_ASSERT_CORE_LOCKED() in the SNMP app by a call to > LWIP_ASSERT_SNMP_LOCKED() and define LWIP_ASSERT_SNMP_LOCKED as > LWIP_ASSERT_CORE_LOCKED only if SNMP_USE_RAW =3D=3D 1. Yes, that might work. We'd lose the check for the netconn case, but better than an invalid error that halts the stack... Regards, Simon From MAILER-DAEMON Fri Mar 13 15:28:41 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jCpz6-0008QG-VB for mharc-lwip-users@gnu.org; Fri, 13 Mar 2020 15:28:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55062) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCpz4-0008MQ-Iw for lwip-users@nongnu.org; Fri, 13 Mar 2020 15:28:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCpz3-00033p-Oe for lwip-users@nongnu.org; Fri, 13 Mar 2020 15:28:38 -0400 Received: from mout.gmx.net ([212.227.17.20]:41449) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jCpz3-0002xs-Fu for lwip-users@nongnu.org; Fri, 13 Mar 2020 15:28:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1584127716; bh=YiVmRjN2lXsM03iBFaWsrGR0ZujV6/zMUQFubP6Hg98=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=L5OJGEOkzuplks5OTSjRcyz2ZMjmHf7CdsOrgOcIj8fblwSagMeKs8mWU+uW/og08 THyc3/sjzedCH6B/DWlie+sQo86U9rTPrt/POWK2AqfTkrLmJAJlWsHtiBo7YNPgFs HDdmyZQ7Mlb0XkS90c/YJz1lRxK2YHLJX3p+gvE8= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.61] ([176.199.210.162]) by mail.gmx.com (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MzQgC-1jYbzw1DyS-00vKrM for ; Fri, 13 Mar 2020 20:28:36 +0100 To: Mailing list for lwIP users References: From: "goldsimon@gmx.de" Autocrypt: addr=goldsimon@gmx.de; keydata= mQENBFDPe/sBCADdhO6Fn+7pnHtmEjiWs14u+n5cFQAhvjZ6EiZLwh0gMl5vYT1HDJ+8HTUA h0xMgXQ2Tsxzizt1TTBWn5DK74SjlIx/dYpM17OHmu6wuIbexKN6hEJSFZjtRlbIlWqEB8px EVeU7//1V/Ukj3QAI3yOrrhIg/s9jmuxMo05fjOsYEkub9PHmvFFdJ7KuApsVss4QRZIpawq HRFv9gY+4DrOvhwMZk6CHlvlAOgqlsMftRMl4699ww2NNbtU2U8n9XFlf2CQxkYAzIJC27Rc +83q+d5xbtcqzxcHhsFXelNTB09ZHEti7NpZZpnP4siVEa8p9BY8n11Nr/97c8lyZUCbABEB AAG0JFNpbW9uIEdvbGRzY2htaWR0IDxnb2xkc2ltb25AZ214LmRlPokBOAQTAQIAIgUCUM97 +wIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQHWthwbhCmfU0tQf+L0m7VG1LNzpt Yvx/1ZZFbqlggespnVuc6HPYqtmbIWxHmlQZgM6Pn61rUWmUl8ilWdcCw8Wuam2pEUSBzlZF z/738kcazWv9SRSbr7ULQi/d/gfOtcfAVUMkTF9jhWpAYR4zmzpR31mvs6Ltfh5rw/bsVJ+/ QbfWLJqdbRG4NykfuGXafQ+o+SDlMlcaBe49whhJsQcCBrvwixeNChUOkV3TY+jgVu4u1MEY c1aJKgVJkBVkAEsJXWFHTkF3TvJf5KdLLGbVBq3I6ItrLgAowI0kC4MzU3eNsCBEroBGJl2/ 7fmut8i+tQNiDfOVP4EHaSD86utnyawQev0TZnY2Qg== Message-ID: <3c6212a1-1f1e-6541-d192-b37e8b07a8bd@gmx.de> Date: Fri, 13 Mar 2020 20:28:35 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:7UZ0nbdLJKWkZ/1Ci/q0Q/gLxdX/YeUYiQCL/eToeNILT5uHNHU vCzT5qZwMswWP2kyH2RHreksBVhplOHLCwElZZZt1a5CohJkc0uKi7eh8x7sc4oN01gBHPe izfJbe7JT9d0EYgMaP2GFoWSHAGEn3lfReiHj0zijG4Cx+qRvBivNibazj/rRb1BVouOKDi F9U7H6qwDTZlzZs87fk/w== X-UI-Out-Filterresults: notjunk:1;V03:K0:7PoTuLLjH5g=:XKE4R6QB+iDnpIzVucS9NJ bVR0Mbjr5QNkxCVkCXdv31Jre0MA2dbaHu8112AqTTyJocgvXWeZZAtboWKgf/oVtepDYcfNc AlcB8DXGmrf7cT0fHqhw70IIQoqYCDVV92WSVh0OfCHIP9l/+bXpq9tEVckLCcldqRnkV2d62 3LZ3eqjO8OReZmLbLKX+hogeVPqznIAmL+ALKvZIXxcjg0xKWpup328AWehCntPtkIbyGpFw9 jPPXlw3bcXjQhEJPBlaSOHzPzK6isQN0h0K/RaN3EUG9Ofvs3Osq1s778QnidhCd2d4+0mNLX CBPCDMI+VyGGrt2U5psv+9J/17bYQGqlqSJQh8BSJ5LPckJAqLiK0a3OHIx/3PCOc6desy5fo 0DR89mRArg+LOuyKlCACKcGPrWx5DVMOVONf9To3nz3rl8qEjoZEvk7qSHT12vgzAFm4USEE0 V8e4vf2WQNTscwu/oHkoY8KA+AKg5WCgJ2Z0l9dWEZe1RKlekevmmngh4ieexv+uqdxU8BUsV u9HIlIo56ujixufSNqdXUGle++fYtevxXNfJzR+xu4C8tCwyMEzmVpDBx8WcHhTAp+f5HaHG9 KDv2t2EHW6YJgWv/AF8BNTmyztozlyymJdh/1NYqwLyT5UOpw6pTPtJcS1hsAuqiiQmtWExWS BHtwhNpdRgQ2vkcPDqGUe13Gq2JTAL6KSaDJGjsR2qej7qPvG3hWhQvky4h5nYIgwNz+6DQjT 65vvHWqyyj2wPNN4odUHazsjR8zGoVzv53Ne4VmazAvvkWYHelqA8kpTkvMSSHLztIqnwKhTm BKVUnK1oUywgka7r6Y7hRI+iLiu8x21yGnY9DrmlYeUR5cl2OmMUumnZG58pTI2b4Ph+zDVku sThQtUZCpTVLalMY/n4GfbwOBkYJ3nwb8f/305fsC3ToQ/SphPrgd9BJF+BqPvNGGWenZMt9P aapLgmkiOW8YHp2Jlu3///+A27336gCdZJzhaK1tgXLEM65Dqit2DNC17qXR7kQBLvU3MRJnz w4s+aU82nFsJT633z1OLV+AmCwxPJVwyXqm9QK5aVIQeQoAbg7vUB0/Xt5qcE6tTl4c68142g nnSuoGy9XZUPapTZHr8GRuoeA0z29JcypEjqPNRVMtPHJTVm8JgJglgEedEHztBp2MCf3Yd9A 6BIcCBpVSWumyKVjw/rHsGXG56Bs/YZ+3BGNwLfLvi+4P37hpttrZFo/7CjMcaZv5o3IQAANk 8GbNZt3TkkgJkv0tM X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.17.20 Subject: Re: [lwip-users] How to build LWIP test on linux X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Mar 2020 19:28:39 -0000 Am 12.03.2020 um 07:35 schrieb Sachin Gole: > Package :=C2=A0lwip_2.1.2.orig source folder > Building test on Linux with following commands > > cmake CMakeLists.txt -DCMAKE_C_COMPILER=3D"/usr/bin/gcc" > -DCMAKE_CXX_COMPILER=3D"/usr/bin/g++" > > How to compile further to get unit test ? My bash history: cd dev/lwip/lwip/contrib/ports/unix/check/ ls mkdir build cd build/ cmake .. cmake --build . ./lwip_unittests Of course you can also use make. See travis.sh in top level directory. Regards, Simon From MAILER-DAEMON Sat Mar 14 13:47:19 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jDAsY-0002bd-To for mharc-lwip-users@gnu.org; Sat, 14 Mar 2020 13:47:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51402) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDAsW-0002bV-By for lwip-users@nongnu.org; Sat, 14 Mar 2020 13:47:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDAsV-0001YM-1d for lwip-users@nongnu.org; Sat, 14 Mar 2020 13:47:16 -0400 Received: from mail-qt1-x842.google.com ([2607:f8b0:4864:20::842]:35911) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jDAsU-0001Tc-RC for lwip-users@nongnu.org; Sat, 14 Mar 2020 13:47:14 -0400 Received: by mail-qt1-x842.google.com with SMTP id m33so10571172qtb.3 for ; Sat, 14 Mar 2020 10:47:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=sfY7SM2tvlrsRik9TVvdO3C2v0rMK963L+9UqPZAiw8=; b=PJ4X6EZMBb2z1kckeCOuuIalMrtiBlcvATj0w0AZPiNiyvwRsxG7Oc6zYjurP1ndj9 uqGUtDNp2CB9OzNfNRkKPEUgHygEXFgZV0kXajyxMjnavr6VkHVuzVskK7oYBebQ61ab 4KnBHPtyuAZFcsYscg5WrPjkbi+wwJFe4NStdYUTftBghFpc+Yo/lY+Pr1NUb2L5NT+m vV/1Jsz/YSJDUC0gGakCGN7GoC/Uq9hek4EIWOxz0/DPpcCtrTIchCdt1mnm9FnYFtev +u92pssVJ4NwWMrb0XCjqH8khgh59WG9hySVSzmvcvLqcSpvOnP3qjzz5t2/a2NpYEAl LpIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=sfY7SM2tvlrsRik9TVvdO3C2v0rMK963L+9UqPZAiw8=; b=TYdT8moJ1+GtVHrQO4KIw9+dYTilveZCaergpa4ieW8xng78DBbehdtyOX9JJ+3ntN ruRsBUnUP1s6IT2p3FY6FlyiOW9eMgMbJADuh0E2oZWdAaUkuO+TV9avqiXihBbrNnSg kF7LkJSgw5xWFn9tcos3/C0/9nNKul3wdNhMitFBLXNdIiV4OsQvR+KGwcnEg9mApOaz 7l3XxLxDvAPjRCnRnzqHjPZi7YB3CfdIoeflMSOhpc3cR/i2UUAQETRKipELvRse7eC9 9ucBma77rOiInq4YHVvOmGvatflmOL2Thna0iSPUAhL/4IlfNOpakuN4R7RPIAf0f6d1 qX2w== X-Gm-Message-State: ANhLgQ2LbLmvfrBuLDKPnzzQoZ7ujIRn9B3HT2m+atrPxcMU2HUOnzot Fv5BhBWg7BL1TIXc0R5YjFiz9SQ9oIyTg17mE7fa/ng1MHw= X-Google-Smtp-Source: ADFU+vvLR5OThC66CJ59wvmyOfYA55TrtcmlJZgRklR9f4XNWziBQgFm7UUteDf8aAWXqQYIUGcC4ndGc/P35uFgw8Y= X-Received: by 2002:ac8:70c3:: with SMTP id g3mr18606056qtp.353.1584208033089; Sat, 14 Mar 2020 10:47:13 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Sachin Gole Date: Sat, 14 Mar 2020 23:17:01 +0530 Message-ID: To: lwip-users@nongnu.org Content-Type: multipart/alternative; boundary="000000000000100a8105a0d42d5f" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::842 Subject: Re: [lwip-users] How to build LWIP test on linux X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Mar 2020 17:47:17 -0000 --000000000000100a8105a0d42d5f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable In 2.1.2 version, There is no dev folder to run lwip_unittest ~/Downloads/lwip-2.1.2$ ls build CMakeCache.txt cmake_install.cmake COPYING CPackSourceConfig.cmake FEATURES Makefile src UPGRADING CHANGELOG CMakeFiles CMakeLists.txt CPackConfig.cmake doc FILES README test Great help if you can suggest. On Thu, Mar 12, 2020 at 12:05 PM Sachin Gole wrote: > Package : lwip_2.1.2.orig source folder > Building test on Linux with following commands > > cmake CMakeLists.txt -DCMAKE_C_COMPILER=3D"/usr/bin/gcc" > -DCMAKE_CXX_COMPILER=3D"/usr/bin/g++" > > How to compile further to get unit test ? > > > I=E2=80=99m > protected online with Avast Free Antivirus. Get it here =E2=80=94 it=E2= =80=99s free > forever. > > <#m_-7456139197348001846_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> > --=20 Best regards, Sachin 9970501145 --000000000000100a8105a0d42d5f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
In 2.= 1.2 version, There is no dev folder to run lwip_unittest


~/Downloads/lwip-2.1.2$ ls
build =C2=A0 =C2=A0 =C2=A0CMa= keCache.txt =C2=A0cmake_install.cmake =C2=A0COPYING =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0CPackSourceConfig.cmake =C2=A0FEATURES =C2=A0Makefile = =C2=A0src =C2=A0 UPGRADING
CHANGELOG =C2=A0CMakeFiles =C2=A0 =C2=A0 =C2= =A0CMakeLists.txt =C2=A0 =C2=A0 =C2=A0 CPackConfig.cmake =C2=A0doc =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FILES = =C2=A0 =C2=A0 README =C2=A0 =C2=A0test


Great help if you can suggest.

On Thu, Mar 12, 2020= at 12:05 PM Sachin Gole <svgole@gma= il.com> wrote:
Package :=C2=A0lwip_2.1.2.orig = source folder
Building test on Linux with following commands

cmake CMakeLists.txt -DCMAKE_C= _COMPILER=3D"/usr/bin/gcc" -DCMAKE_CXX_COMPILER=3D"/usr/bin/= g++"

How to compile further to get unit test ?

3D"" I=E2=80=99m pr= otected online with Avast Free Antivirus. Get it here =E2=80=94 it=E2=80=99s free forever.


--
Best regards,
Sac= hin
9970501145
--000000000000100a8105a0d42d5f-- From MAILER-DAEMON Sat Mar 14 13:50:10 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jDAvK-0004Bf-Cf for mharc-lwip-users@gnu.org; Sat, 14 Mar 2020 13:50:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52868) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDAvI-0004BW-FB for lwip-users@nongnu.org; Sat, 14 Mar 2020 13:50:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDAvH-0002lk-Fy for lwip-users@nongnu.org; Sat, 14 Mar 2020 13:50:08 -0400 Received: from mout.gmx.net ([212.227.15.18]:32985) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jDAvH-0002fW-2Y for lwip-users@nongnu.org; Sat, 14 Mar 2020 13:50:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1584208205; bh=uZe9laQJ23AteVznoh2UDGe3kMojuD/nnEVscRaQ+ew=; h=X-UI-Sender-Class:Date:In-Reply-To:References:Subject:To:From; b=k+oS4pkQTXWsnQB0UUu6Sd5JagwSe6/8oXtiAkEaluQIdd8FUIbNEk6KfrLCKCJYk Hk34n/DnpAOPD36WpcvjE7glov0/l50t2k83C6r5SqL/GgJZcsbuBNT1t3kSm5xyl0 7pbCc5DKwn4vupye5BUHo0kPiI3EkPmzdXe9Ey1Y= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.28] ([176.199.210.162]) by mail.gmx.com (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MpDNl-1jf6IM1G2B-00qjf2 for ; Sat, 14 Mar 2020 18:50:05 +0100 Date: Sat, 14 Mar 2020 18:50:03 +0100 User-Agent: K-9 Mail for Android In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable To: Mailing list for lwIP users From: goldsimon Message-ID: <12BDFCE1-C580-413E-9925-5CC22800AC99@gmx.de> X-Provags-ID: V03:K1:doW46rqMGch4O8zaUXEZklWxCwSqn+HiUob4EOVY2xbhVGawhj8 XF3B7g4DybJfcYe/qWQOq8VOYeZnNzNc3OMLe2eYinuJ8C/BwfCz8eOd8e42DqoW7yZ3cK2 GFR01YuSWE1SOurcDdo8LYQ0zIz5euqaCrYSRWG57iMFWOyl5OcaEOZkbLc3uYh5xpwF5u5 A47rrXjBr3xUaNEpWs/YQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:DcjAhhgGUls=:3bnkJFdqDKY5je4wcXmnez VY8zOJqjUBMzS8sBpATtKFgRWzyp6TNvOc2VImlbMgeNhz7EnIGc3GgtVSJJsbf4HYv2A7iNr JcBX9jbk9EAOWYG276GbnplLGgui1RIzfpDMRa/mPbRox2zRyqJkqWN2MVt3I2XrbW8qXqcAk bMwlz6JLUbAhHxbP8goir86Exgdfq4NgcGsrgJYpV357saK1+qgB0nsBViVF3//iWvJ8NeIpH AovSQ+Iu2YUWIU6nin/NWofZzcNC3s2oD4utag9OzZw/v0Uq4IFmtXZH8NkPt0XUcTZRCJ2tY yyVBxqeEhgPtm9+Kq35leJ4mfwM9eVX6hxw5451Ebpuo5FJHmhjqPrAOt3uj8zmrlJrrw87K9 Fgnvhl45zqaZ7MF2Me0zOxBHzZNUYlbmbd6azMm3gwdHoVjt3l9EIgZIPoCaLLQulrVqF7369 ypTyEC2rcrY7Bo51/WxZCsvL58v5rgWJAlcmbnRTe1PaJU1/pMT/cajecYTIbbVDlx+aQ5GWN 0gP7FFvSsz8ATgFcH9+/9Yh83RMZAdMRbibWgnypkoVOYbNqU/18GxNVmtGX2J8LSs8JgfsD6 JFCCI8rxP5vjwH6Z5L2HYBu08t6WvgdjNyxlRmLf0EjgoaT0VZJ0NXuw9SVSjaRJT1uPYFiWY nnXBYYPF+jKjsyOqrdofXWk7kpGv5dpKQ/rm/UL5TiNYFieF8E6E6oUNDpj3PcAQ4zzrsCBsE hNzfMFj+6l+nh5ZEKfdpl4GMHMYsFwrSnRw1dnb30yiHZ0fQV/nHq22Bac8e2jzvMj16XszS+ CTtGZURTRmkMkvfhSdqFd82d/dss3IfTaHvGhvlnmXsikW6o0SsO0hP0mW9UHiV98mEQTL8WW tYg69bQXfcu6hWRNskCuyKMS6JcEkRSME20rrU0Ub06cNh+YIwsEENkLfmbaDIRBrYGSsOEpe pW09XhTagjS2i5TDjMWiyRxFCh5q/r6dXGvf30swuTWKC1wn8b9JWrTIAAOh4c4XEUyPxh+as zO1/99uIw+Q0ouuuHyYaAlHoIi1xSJqYQ12dnAx9kokV53AOkyhSoZhSGh1WJzXtUhH7L2dPO YAFnp2g734JAEfkCNr2+8fBKv/eKEK7E1/It8y5pBX1LlUKvhPeDtuNItmeX+qYmPuj5ar6Bp gj6QjlE9jh/rXl9TOB9IOwNx8MJGBsyYCMUaG/Vmc4StbCL8Rl917QsMqLDlO174v15ZDM6Sa 4jBnlvtSEOkdTKNJn X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.15.18 Subject: Re: [lwip-users] How to build LWIP test on linux X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Mar 2020 17:50:09 -0000 Am 14=2E M=C3=A4rz 2020 18:47:01 MEZ schrieb Sachin Gole : >In 2=2E1=2E2 version, There is no dev folder to run lwip_unittest > > >~/Downloads/lwip-2=2E1=2E2$ ls >build CMakeCache=2Etxt cmake_install=2Ecmake COPYING > CPackSourceConfig=2Ecmake FEATURES Makefile src UPGRADING >CHANGELOG CMakeFiles CMakeLists=2Etxt CPackConfig=2Ecmake do= c > FILES README test > > >Great help if you can suggest=2E Oh come on, really? I'm sure you can figure out the path from what I wrote= =2E Cheers, Simon From MAILER-DAEMON Sun Mar 15 12:27:18 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jDW6g-0000N2-2G for mharc-lwip-users@gnu.org; Sun, 15 Mar 2020 12:27:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59130) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDW6X-0000MG-FU for lwip-users@nongnu.org; Sun, 15 Mar 2020 12:27:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDW6V-0003R7-GM for lwip-users@nongnu.org; Sun, 15 Mar 2020 12:27:09 -0400 Received: from mail-qk1-x742.google.com ([2607:f8b0:4864:20::742]:38781) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jDW6U-0003JP-Li for lwip-users@nongnu.org; Sun, 15 Mar 2020 12:27:06 -0400 Received: by mail-qk1-x742.google.com with SMTP id h14so21866744qke.5 for ; Sun, 15 Mar 2020 09:27:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=aPBQVcvzLivLGowJMjGu/96jiJQ5NuOCO2Je7TlDCPY=; b=iAiO18+P0bPVYnpPe6gqaT4lkxyJ7DQQ4rJeqcpTtBm8X/05L+fd1ce7IlTT0H1SnS d/nojtjkrEMtYJCnTHwB9sYize2U1+8TqnHsA0ic7jD6z7HxLcunLi5iMUH/zNW5qoeQ QQF9qqAxQTPML+I+ida2d7KnsBYgLGoqCcfsDvL1TpdJH+SFRXxdstyzLp8eChq5sqdI mEg2ydT9ej1P6c4Ry9LpS5ED7zWy98ehWVxbxRlUaVTvH1nGQS3dM6OWweWoGC0/tb4X 1GNXDz+C61VU+LQzdVG/qcR2Px5cWzq5cpG+pbqXLCeim3s4y1qjvB0a06pvqEahPnvk DLUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=aPBQVcvzLivLGowJMjGu/96jiJQ5NuOCO2Je7TlDCPY=; b=BLpEqJts8nXOOUhU9ZTmsB8K6FswrqJ6XFC+BISYzKwcTRmXreSObinYODNqEUSfBo mV4gum4c2SwlVmd99oLGzwAOE+thmyspqehfhgzqc7/jARivBbiCl8qGAEiLNJ0lgMsy hPKkcoEDY0fU7tC8g5uWwvMhxNzQyv0I6h7lL/qeQj8KoskJb5fRiwIh6TZS6kJntZZ8 Z+lQd1KLSNrqkoILhGD3nSPpId2xOIVkd0PJ674mSXCTbemKEUs8sApn87nruRV2aI6V wvKJsRAVqMGRCe0HjWxLNTRbAH3/g+fYq4++W7UxeOcxvITdwkM3hDO7C6t4DD5g1jov bxYQ== X-Gm-Message-State: ANhLgQ2+DpzpZM1wpmfOJR2OAYGpYO7sN6H05kFMNgz3VakPnuOxHEWQ 5qk5W/y4I7beevTMThhlxaJXZA7vxpN7SxuuWvHWQSBnzaw= X-Google-Smtp-Source: ADFU+vszl+hhXyZs46a5NQc+H+VGvGU/Jk61Q7BvNoJXnyrY2InolAuLNXCCEsRwwY9NspPiIZuP1pSWQLqWuQjjThg= X-Received: by 2002:a37:a44a:: with SMTP id n71mr22336519qke.210.1584289622860; Sun, 15 Mar 2020 09:27:02 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Sachin Gole Date: Sun, 15 Mar 2020 21:56:51 +0530 Message-ID: To: lwip-users@nongnu.org Content-Type: multipart/alternative; boundary="0000000000003126c905a0e72c56" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::742 Subject: Re: [lwip-users] How to build LWIP test on linux X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2020 16:27:12 -0000 --0000000000003126c905a0e72c56 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Using lwip-2.1.2 version, below steps doesn't get compiled with these steps= . rajgad:~/Downloads/lwip-2.1.2$ ls CHANGELOG CMakeLists.txt COPYING doc FEATURES FILES README src test UPGRADING rajgad:~/Downloads/lwip-2.1.2$ mkdir build rajgad:~/Downloads/lwip-2.1.2$ cd build/ rajgad:~/Downloads/lwip-2.1.2/build$ cmake ../CMakeLists.txt -DCMAKE_C_COMPILER=3D"/usr/bin/gcc" -DCMAKE_CXX_COMPILER=3D"/usr/bin/g++" -- The C compiler identification is GNU 5.4.0 -- The CXX compiler identification is GNU 5.4.0 -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc - works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/g++ -- Check for working CXX compiler: /usr/bin/g++ - works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found Doxygen: /usr/bin/doxygen (found version "1.8.11") found components: doxygen missing components: dot Doxygen build started -- Configuring done -- Generating done -- Build files have been written to: /home/sachin/Downloads/lwip-2.1.2 rajgad:~/Downloads/lwip-2.1.2/build$ rajgad:~/Downloads/lwip-2.1.2/build$ ls rajgad:~/Downloads/lwip-2.1.2/build$ cd .. rajgad:~/Downloads/lwip-2.1.2$ ls build CMakeCache.txt CMakeDoxygenDefaults.cmake cmake_install.cmake COPYING CPackSourceConfig.cmake FEATURES Makefile src UPGRADING CHANGELOG CMakeDoxyfile.in CMakeFiles CMakeLists.txt CPackConfig.cmake doc FILES README test rajgad:~/Downloads/lwip-2.1.2$ cmake --build . rajgad:~/Downloads/lwip-2.1.2$ New to lwip unix version, not getting unit test executable. On Sat, Mar 14, 2020 at 11:17 PM Sachin Gole wrote: > In 2.1.2 version, There is no dev folder to run lwip_unittest > > > ~/Downloads/lwip-2.1.2$ ls > build CMakeCache.txt cmake_install.cmake COPYING > CPackSourceConfig.cmake FEATURES Makefile src UPGRADING > CHANGELOG CMakeFiles CMakeLists.txt CPackConfig.cmake doc > FILES README test > > > Great help if you can suggest. > > On Thu, Mar 12, 2020 at 12:05 PM Sachin Gole wrote: > >> Package : lwip_2.1.2.orig source folder >> Building test on Linux with following commands >> >> cmake CMakeLists.txt -DCMAKE_C_COMPILER=3D"/usr/bin/gcc" >> -DCMAKE_CXX_COMPILER=3D"/usr/bin/g++" >> >> How to compile further to get unit test ? >> >> >> I=E2=80=99m >> protected online with Avast Free Antivirus. Get it here =E2=80=94 it=E2= =80=99s free >> forever. >> >> <#m_-3031064198876534678_m_-7456139197348001846_DAB4FAD8-2DD7-40BB-A1B8-= 4E2AA1F9FDF2> >> > > > -- > Best regards, > Sachin > 9970501145 > --=20 Best regards, Sachin 9970501145 --0000000000003126c905a0e72c56 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

= Using lwip-2.1.2 version, below steps=C2=A0doesn't=C2=A0get compiled wi= th these steps.
<= br>
rajgad:~/Down= loads/lwip-2.1.2$ ls
CHANGELOG =C2=A0CMakeLists.txt =C2=A0COPYING =C2=A0= doc =C2=A0FEATURES =C2=A0FILES =C2=A0README =C2=A0src =C2=A0test =C2=A0UPGR= ADING
rajgad:~/Downloads/lwip-2.1.2$ mkdir build
rajgad:~/Downloads/l= wip-2.1.2$ cd build/
rajgad:~/Downloads/lwip-2.1.2/build$ cmake ../CMake= Lists.txt -DCMAKE_C_COMPILER=3D"/usr/bin/gcc" -DCMAKE_CXX_COMPILE= R=3D"/usr/bin/g++"
-- The C compiler identification is GNU 5.4= .0
-- The CXX compiler identification is GNU 5.4.0
-- Check for worki= ng C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gc= c - works
-- Detecting C compiler ABI info
-- Detecting C compiler AB= I info - done
-- Detecting C compile features
-- Detecting C compile = features - done
-- Check for working CXX compiler: /usr/bin/g++
-- Ch= eck for working CXX compiler: /usr/bin/g++ - works
-- Detecting CXX comp= iler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting = CXX compile features
-- Detecting CXX compile features - done
-- Foun= d Doxygen: /usr/bin/doxygen (found version "1.8.11") found compon= ents: doxygen missing components: dot
Doxygen build started
-- Config= uring done
-- Generating done
-- Build files have been written to: /h= ome/sachin/Downloads/lwip-2.1.2
rajgad:~/Downloads/lwip-2.1.2/build$ rajgad:~/Downloads/lwip-2.1.2/build$ ls
rajgad:~/Downloads/lwip-2.1.2/b= uild$ cd ..
rajgad:~/Downloads/lwip-2.1.2$ ls
build =C2=A0 =C2=A0 =C2= =A0CMakeCache.txt =C2=A0 =C2=A0CMakeDoxygenDefaults.cmake =C2=A0cmake_insta= ll.cmake =C2=A0COPYING =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0CPackSource= Config.cmake =C2=A0FEATURES =C2=A0Makefile =C2=A0src =C2=A0 UPGRADING
CH= ANGELOG =C2=A0CMakeDoxyfile.in =C2=A0CMakeFiles =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0CMakeLists.txt =C2=A0 =C2=A0 =C2=A0 CPac= kConfig.cmake =C2=A0doc =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0FILES =C2=A0 =C2=A0 README =C2=A0 =C2=A0test
= rajgad:~/Downloads/lwip-2.1.2$ cmake --build .
rajgad:~/Downloads/lwip-2= .1.2$=C2=A0
<= br class=3D"gmail-Apple-interchange-newline">
New to lwip unix version, not getting unit tes= t executable.


On Sat, Mar 14, 2020 at 11:17 PM Sachin G= ole <svgole@gmail.com> wrote:=
In 2.1.2 version, There is no dev fol= der to run lwip_unittest


~/Downloads/lwip-2.1.2$ ls
build =C2=A0 =C2=A0 =C2=A0CMakeCache.= txt =C2=A0cmake_install.cmake =C2=A0COPYING =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0CPackSourceConfig.cmake =C2=A0FEATURES =C2=A0Makefile =C2=A0src = =C2=A0 UPGRADING
CHANGELOG =C2=A0CMakeFiles =C2=A0 =C2=A0 =C2=A0CMakeLis= ts.txt =C2=A0 =C2=A0 =C2=A0 CPackConfig.cmake =C2=A0doc =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FILES =C2=A0 =C2= =A0 README =C2=A0 =C2=A0test


Great help if you can sugg= est.

On Thu, Mar 12, 2020 at 12:05 PM Sachin Gole <svgole@gmail.com> wrote:
Package :=C2=A0lwip_2.1.2.orig source folder
Building test on Linux with following commands

cma= ke CMakeLists.txt -DCMAKE_C_COMPILER=3D"/usr/bin/gcc" -DCMAKE_CXX= _COMPILER=3D"/usr/bin/g++"

How to compile further to get unit test ?

3D"" I=E2=80=99m pr= otected online with Avast Free Antivirus. Get it here =E2=80=94 it=E2=80=99s free forever.


--
Best regards,
Sachin
9970501145


--
Best regards,
Sac= hin
9970501145
--0000000000003126c905a0e72c56-- From MAILER-DAEMON Sun Mar 15 17:06:06 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jDaSU-0005MU-1D for mharc-lwip-users@gnu.org; Sun, 15 Mar 2020 17:06:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60213) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDaSQ-0005LY-MU for lwip-users@nongnu.org; Sun, 15 Mar 2020 17:06:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDaSP-0004Qs-A6 for lwip-users@nongnu.org; Sun, 15 Mar 2020 17:06:02 -0400 Received: from mout.gmx.net ([212.227.15.18]:49521) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jDaSO-0004LN-TR for lwip-users@nongnu.org; Sun, 15 Mar 2020 17:06:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1584306359; bh=+QogFttoSTKC8LRmjsadUy9OHCWZ1WDB0qu89CrKxwE=; h=X-UI-Sender-Class:To:References:From:Subject:Date:In-Reply-To; b=X6Fd1xdAO1dRwQ3XH7232GWMfi1eg2ljpUaCvNBQMtTq67A39UOp2D0BYQSXHdGAD V1xhFDw+lj8KsZr1QmkTKgnoU5AT7GGwAVdL1Oc+ZcIjaVz8GoMTmXlWKRyrEmT9qS PBj1BsfmmknK54dvITraKW34JYkUBCEHxJtl6CCU= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.61] ([176.199.210.162]) by mail.gmx.com (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MBm1e-1j1WA63WeK-00C6vg for ; Sun, 15 Mar 2020 22:05:58 +0100 To: Mailing list for lwIP users References: From: "goldsimon@gmx.de" Autocrypt: addr=goldsimon@gmx.de; keydata= mQENBFDPe/sBCADdhO6Fn+7pnHtmEjiWs14u+n5cFQAhvjZ6EiZLwh0gMl5vYT1HDJ+8HTUA h0xMgXQ2Tsxzizt1TTBWn5DK74SjlIx/dYpM17OHmu6wuIbexKN6hEJSFZjtRlbIlWqEB8px EVeU7//1V/Ukj3QAI3yOrrhIg/s9jmuxMo05fjOsYEkub9PHmvFFdJ7KuApsVss4QRZIpawq HRFv9gY+4DrOvhwMZk6CHlvlAOgqlsMftRMl4699ww2NNbtU2U8n9XFlf2CQxkYAzIJC27Rc +83q+d5xbtcqzxcHhsFXelNTB09ZHEti7NpZZpnP4siVEa8p9BY8n11Nr/97c8lyZUCbABEB AAG0JFNpbW9uIEdvbGRzY2htaWR0IDxnb2xkc2ltb25AZ214LmRlPokBOAQTAQIAIgUCUM97 +wIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQHWthwbhCmfU0tQf+L0m7VG1LNzpt Yvx/1ZZFbqlggespnVuc6HPYqtmbIWxHmlQZgM6Pn61rUWmUl8ilWdcCw8Wuam2pEUSBzlZF z/738kcazWv9SRSbr7ULQi/d/gfOtcfAVUMkTF9jhWpAYR4zmzpR31mvs6Ltfh5rw/bsVJ+/ QbfWLJqdbRG4NykfuGXafQ+o+SDlMlcaBe49whhJsQcCBrvwixeNChUOkV3TY+jgVu4u1MEY c1aJKgVJkBVkAEsJXWFHTkF3TvJf5KdLLGbVBq3I6ItrLgAowI0kC4MzU3eNsCBEroBGJl2/ 7fmut8i+tQNiDfOVP4EHaSD86utnyawQev0TZnY2Qg== Message-ID: <04fde5d0-2a7a-6287-b879-3be4b944fb32@gmx.de> Date: Sun, 15 Mar 2020 22:05:57 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:EtClns2aImgMWSNVXbeSBUSap5dSYi8T5OMlHJrk1jPcgyyTcGO j2YCZA9fQpzKky03tIYRH7vzVc99W97m7x86aJutjsdEoq3mWEFMZKBxJsi12+ibJgQjFB0 H2nXSXRuFtYWUfjRwK2SI5Eopi3ACGel3/I972OkyhicSV82dlrAVNrCYKe0dZTtjLfjuvr GtTl6K166dxDTRbThgp7g== X-UI-Out-Filterresults: notjunk:1;V03:K0:rWlVz9dKbGI=:vXzvIZ6nlIo27V6k/DzC2+ ICwQlH+bHULPlDQ7llGeobIQiXAHc7gZudbj3keKM6YpIRJyl7SZMLCDOSV73SR5naXrhDVXH TakM7vwigXFHhNblRo+n8y0Km01dAWDtOJS7fOyS5JXEySejizEQ6aY5einohaf5xNhhhR4CK Qq374XMlIeVpPI3uPsfz/U2+3aahPfmJCwtBf06n0WJSz3JvYyS3+tL8o/K22yP/6kEvyBm7p HaffhXsWPSRQ0xukqyUeOta+ShmAQYdHR6Z3m2GSD4rug1j4RwYCX1Qk4awnUp9z6yOLKqqdQ iQ/5Eq49M83kGfApFPamCA2aY8x1vf1idVrheKEoHmwcrSz7i2hEaOoxbA9GtAIqkBLcMv2TL bzMX0xgH7uPfgpu45K6UEmrNFcTTkBRjab7y2IQKrXCXEA6Gwi6xuerebF3Gv4gD+on7s09ZA xxAuddmakzUoShXgoW2pKNXKfoG5byUMpWq4ZpTXpaVIxHIGnazyGyz+bC1tL6FYOc7Sw+Jwl jVPX9cq3QqCaSPyID1kJ5ZACy26hLeYw5jggSDxHHEz55xuGjyRPjBwcMgRc05bzn9sPA1aUY fmApMcP8DAu5jx2zc/bO3DfPcesOxwH/ltrNUGly100rw6ue3cyri9zvv6tPyymOP/x2HyBuj 9E9kisYtzStfGBXJGo9aXCVxUhajVrN8bDft/U4zAP9IvQkn4iS4PZo0ULKxBTtp+UBO6OypB nqtCuRlVE0Fi+6aM9g4WFnU9d1rgxCfuAMQAVYaur9HkNk0+CdLQtMti6ynzfgVcyeNpxwmbQ 0hifYCLrnTqQUjtCHfrJEJj2+DtBBhWFMfH1BN/LTYjDJlnI0MQBXg/di/g5r8HATZD0pUujn uem9k5VaDv1jp2Ko5IapYSGjlWCdcJM70gAt6ZHzHBumWE1JKWF9J1H0s/JBjPAI/uDXDCWgc h2DavwQLFphW8ZPMv/e4qya9T/aZKJhF2m0DioArML3oImKLwNlagw6pG3w96ji0RnK+3+D44 0EhGL76ydce0rzQkLF/HqzPa3q42f59fUYffbC0Op/nJGXSNRnWv3/AGpCuamvas6vy7H4zTn AmoI5NxRhq+5VMI6RVJCTFku6gBB8lAeYnT5OdJ3pLdd+ebIt4TCQJ+F0Q4ZwTF3kNr7FxraT Q7IueSItUDZn6/woUGQDdi5MwYHHAUdEPBoWUc5yIxjWOWxZG8BEDxqYyvmmvpdYN9wtJIqhO K0SG2VlWyw09kbo7M X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.15.18 Subject: Re: [lwip-users] How to build LWIP test on linux X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2020 21:06:04 -0000 Am 15.03.2020 um 17:26 schrieb Sachin Gole: > > Using lwip-2.1.2 version, below steps=C2=A0doesn't=C2=A0get compiled wit= h these steps. OK, so it seems I'm in a good mood today, so... What in my mail from 2 days ago have you missed? You complained about not finding a 'dev' directory in lwIP but haven't tried to remove the first parts of the path to find a match? Thats funny. Anyway, let me repeat what I wrote back then, but remove the 'dev/lwip/lwip' part at the start... My bash history: cd contrib/ports/unix/check/ ls mkdir build cd build/ cmake .. cmake --build . ./lwip_unittests Does that work for you? > > rajgad:~/Downloads/lwip-2.1.2$ ls > CHANGELOG =C2=A0CMakeLists.txt =C2=A0COPYING =C2=A0doc =C2=A0FEATURES = =C2=A0FILES =C2=A0README =C2=A0src > =C2=A0test =C2=A0UPGRADING > rajgad:~/Downloads/lwip-2.1.2$ mkdir build > rajgad:~/Downloads/lwip-2.1.2$ cd build/ > rajgad:~/Downloads/lwip-2.1.2/build$ cmake ../CMakeLists.txt make that 'cmake ..', not 'cmake ../CMakeLists.txt' > -DCMAKE_C_COMPILER=3D"/usr/bin/gcc" -DCMAKE_CXX_COMPILER=3D"/usr/bin/g++= " > -- The C compiler identification is GNU 5.4.0 > -- The CXX compiler identification is GNU 5.4.0 > -- Check for working C compiler: /usr/bin/gcc > -- Check for working C compiler: /usr/bin/gcc - works > -- Detecting C compiler ABI info > -- Detecting C compiler ABI info - done > -- Detecting C compile features > -- Detecting C compile features - done > -- Check for working CXX compiler: /usr/bin/g++ > -- Check for working CXX compiler: /usr/bin/g++ - works > -- Detecting CXX compiler ABI info > -- Detecting CXX compiler ABI info - done > -- Detecting CXX compile features > -- Detecting CXX compile features - done > -- Found Doxygen: /usr/bin/doxygen (found version "1.8.11") found > components: doxygen missing components: dot > Doxygen build started > -- Configuring done > -- Generating done > -- Build files have been written to: /home/sachin/Downloads/lwip-2.1.2 > rajgad:~/Downloads/lwip-2.1.2/build$ > rajgad:~/Downloads/lwip-2.1.2/build$ ls Nothing here. You've missed the '--build' phase. Cmake without '--build' creates the build infrastructure but does not compile anything. > rajgad:~/Downloads/lwip-2.1.2/build$ cd .. > rajgad:~/Downloads/lwip-2.1.2$ ls > build =C2=A0 =C2=A0 =C2=A0CMakeCache.txt =C2=A0 =C2=A0CMakeDoxygenDefaul= ts.cmake > =C2=A0cmake_install.cmake =C2=A0COPYING =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0CPackSourceConfig.cmake > =C2=A0FEATURES =C2=A0Makefile =C2=A0src =C2=A0 UPGRADING > CHANGELOG =C2=A0CMakeDoxyfile.in =C2=A0CMakeFiles =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0CMakeLists.txt > =C2=A0 =C2=A0 =C2=A0 CPackConfig.cmake =C2=A0doc =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FILES =C2=A0 =C2=A0= README =C2=A0 =C2=A0test > rajgad:~/Downloads/lwip-2.1.2$ cmake --build . > rajgad:~/Downloads/lwip-2.1.2$=C2=A0 > > New to lwip unix version, not getting unit test executable. Keeping that aside, the unit tests are build from a different path (see above). Regards, Simon From MAILER-DAEMON Mon Mar 16 05:36:09 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jDmAK-0003ja-RF for mharc-lwip-users@gnu.org; Mon, 16 Mar 2020 05:36:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55554) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDmAI-0003ic-4D for lwip-users@nongnu.org; Mon, 16 Mar 2020 05:36:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDmAF-0002mM-Nn for lwip-users@nongnu.org; Mon, 16 Mar 2020 05:36:05 -0400 Received: from n7.nabble.com ([162.253.133.57]:58827) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jDmAF-0002Xp-GD for lwip-users@nongnu.org; Mon, 16 Mar 2020 05:36:03 -0400 Received: from n7.nabble.com (localhost [127.0.0.1]) by n7.nabble.com (Postfix) with ESMTP id 82D6D147FE89A for ; Mon, 16 Mar 2020 02:36:00 -0700 (MST) Date: Mon, 16 Mar 2020 02:36:00 -0700 (MST) From: Jonas97 To: lwip-users@nongnu.org Message-ID: <1584351360479-0.post@n7.nabble.com> In-Reply-To: <1583490189300-0.post@n7.nabble.com> References: <1583490189300-0.post@n7.nabble.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Mac OS X [generic] X-Received-From: 162.253.133.57 Subject: Re: [lwip-users] RAW TCP client gets terminated X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2020 09:36:07 -0000 Found the bug. My implementation of sys_now() wasn't rolling over as a 32 bit variable. -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html From MAILER-DAEMON Mon Mar 16 05:58:18 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jDmVm-0002a2-7P for mharc-lwip-users@gnu.org; Mon, 16 Mar 2020 05:58:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45052) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDmVe-0002Yn-Ax for lwip-users@nongnu.org; Mon, 16 Mar 2020 05:58:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDmVc-0007z8-OD for lwip-users@nongnu.org; Mon, 16 Mar 2020 05:58:09 -0400 Received: from smtp.hosts.co.uk ([85.233.160.19]:46397) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jDmVc-0006uV-Fi for lwip-users@nongnu.org; Mon, 16 Mar 2020 05:58:08 -0400 Received: from [86.149.52.167] (helo=HUGH4KLAPTOP) by smtp.hosts.co.uk with esmtpa (Exim) (envelope-from ) id 1jDmVb-0009ew-4b for lwip-users@nongnu.org; Mon, 16 Mar 2020 09:58:07 +0000 Reply-To: From: "Hugh Reynolds" To: "'Mailing list for lwIP users'" References: <1583490189300-0.post@n7.nabble.com> <1584351360479-0.post@n7.nabble.com> In-Reply-To: <1584351360479-0.post@n7.nabble.com> Date: Mon, 16 Mar 2020 09:58:02 -0000 Organization: Courtyard Electronics Ltd Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Outlook 16.0 Content-Language: en-gb Thread-Index: AQFYfVnOSPaOt/aaZwVurTuCDydFJgKfh5qXqTD38aA= X-Antivirus: Avast (VPS 200315-0, 03/15/2020), Outbound message X-Antivirus-Status: Clean X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-Received-From: 85.233.160.19 Subject: Re: [lwip-users] RAW TCP client gets terminated X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2020 09:58:16 -0000 Jonas, You may have fixed my bug too. Where did you read what the expected behaviour of sys_now() is? https://www.nongnu.org/lwip/2_0_x/group__sys__time.html perhaps isn't expli= cit. Could you post your corrected code? Regards Hugh -----Original Message----- From: lwip-users On = Behalf Of Jonas97 Sent: 16 March 2020 09:36 To: lwip-users@nongnu.org Subject: Re: [lwip-users] RAW TCP client gets terminated Found the bug. My implementation of sys_now() wasn't rolling over as a 32 b= it variable. -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html _______________________________________________ lwip-users mailing list lwip-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/lwip-users -- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus From MAILER-DAEMON Mon Mar 16 08:16:36 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jDofc-00021I-K0 for mharc-lwip-users@gnu.org; Mon, 16 Mar 2020 08:16:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45900) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDofZ-0001zq-0D for lwip-users@nongnu.org; Mon, 16 Mar 2020 08:16:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDofW-0007gE-Lk for lwip-users@nongnu.org; Mon, 16 Mar 2020 08:16:32 -0400 Received: from mail-lj1-x230.google.com ([2a00:1450:4864:20::230]:45588) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jDofW-00076H-9I for lwip-users@nongnu.org; Mon, 16 Mar 2020 08:16:30 -0400 Received: by mail-lj1-x230.google.com with SMTP id e18so18361413ljn.12 for ; Mon, 16 Mar 2020 05:16:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=YNDbw6rlzSjf5NElibsSNH8ey3AyBdEKj6p8bmjICFI=; b=mvUlWxL7+zn3itquuOo3mljOGe4i+6TXmke28V5jZLSGPB9yJ7vKtCEEJ7PX8bmS8X 5zt9GxaQJbDi2pW7VaNYPXcDSM77F5gFkwjOOq1708FPJ+qq1HDdEdLYFZpIEeUsjcrv 7bZ+FHVh0eJz2dBfS9cqRIMjTqyGZMwtpvngnM4DVKIxD8hTPYk85aeRzvo5H6+KJ3u7 iNskettVZJstj7S+tuiipH7f+g+d7wtUP8gMC+DqudG7c8LNqrv1l/3TexcAjNP5fytS X/y0K28rcl/UxU0CVhkGvnt9n5qEJ14UlomPGiTwcnyuT3UP+o+tRE26fsMpecjwEFLk DRCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=YNDbw6rlzSjf5NElibsSNH8ey3AyBdEKj6p8bmjICFI=; b=CtvlFPeCVrTHswuWG5g+ZcCMZU1v8ZL1Rxl4z2IxgI3UABofcX4ys8ZdZuIjB+jdq/ GQ1bRLInTlzhMHWlz3exA7WMubeBvpOD5xyTZ7ouKW201l7oLRxXU9Lfl0MasM4sJ6xs k5KxZkIaQuC7Zw4JsAKUsKRUYChTiySiX8AaiBvtY0VTLk/3n5xSCNXPU13h+f3dmiAF eRp76T0AdEXJjKK9+kSv/uSqKcxi8Acibb7ME8Zo1P9s+WfZHLCWWq4kO8dkp7UxBZkA gZSEkrtTIC9yGtNwc9g4Na0VmCHoV53jc2ZkMT5qwbtekofDTajD1b3e6k4sn7ZbpdFK WbpA== X-Gm-Message-State: ANhLgQ13HI9nk+5tysCVqoklY8CELO6BnjeDP6/rfV+weBOzt9DtEtdn isLxFf134vOXomiI0padDsGBn2uKheByyaDf+t0PIgyJ X-Google-Smtp-Source: ADFU+vvUFYfNAHM7TH6z6TyGVsuHKNdh7CQY0gD749cMeXkjf+v8xatGEShp6411ZL/RhebquKy79L9XUd1P6jjRzAM= X-Received: by 2002:a2e:89c9:: with SMTP id c9mr9935326ljk.181.1584360984337; Mon, 16 Mar 2020 05:16:24 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Harrold Spier Date: Mon, 16 Mar 2020 13:16:13 +0100 Message-ID: To: Mailing list for lwIP users Content-Type: multipart/alternative; boundary="000000000000aade2c05a0f7c980" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::230 Subject: Re: [lwip-users] Core locked checking when using the SNMP netconn implementation X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2020 12:16:35 -0000 --000000000000aade2c05a0f7c980 Content-Type: text/plain; charset="UTF-8" Thanks, I will post a bug report and upload a patch file. Regards, Harrold On Fri, Mar 13, 2020 at 8:26 PM goldsimon@gmx.de wrote: > Am 13.03.2020 um 09:12 schrieb Harrold Spier: > > > > I wonder whether there is something wrong with the current SNMP app > > implementation. > > As long as all SNMP API functions are called by the same (SNMP) thread, > > there should be no problem. > > In my opinion, only checking for core locked is not valid when using the > > SNMP netconn API. > > But maybe I oversee something. > > > > The benefits of using the netconn API for SNMP is the possibility to run > > the SNMP thread on a much lower priority than the tcpip thread. > > > > I assume the issue can be solved by replacing all calls to > > LWIP_ASSERT_CORE_LOCKED() in the SNMP app by a call to > > LWIP_ASSERT_SNMP_LOCKED() and define LWIP_ASSERT_SNMP_LOCKED as > > LWIP_ASSERT_CORE_LOCKED only if SNMP_USE_RAW == 1. > > Yes, that might work. We'd lose the check for the netconn case, but > better than an invalid error that halts the stack... > > Regards, > Simon > > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users --000000000000aade2c05a0f7c980 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

Thanks, I will post a bug report and upload a pat= ch=C2=A0file.

Regards,
Harrold

On F= ri, Mar 13, 2020 at 8:26 PM goldsimon@g= mx.de <goldsimon@gmx.de> = wrote:
Am 13.03.= 2020 um 09:12 schrieb Harrold Spier:
>
> I wonder whether there is something wrong with the current SNMP app > implementation.
> As long as all SNMP API functions are called by the same (SNMP) thread= ,
> there should be no problem.
> In my opinion, only checking for core locked is not valid when using t= he
> SNMP netconn API.
> But maybe I oversee something.
>
> The benefits of using the netconn API for SNMP is the possibility to r= un
> the SNMP thread on a much lower priority than the tcpip thread.
>
> I assume the issue can be solved by replacing all calls to
> LWIP_ASSERT_CORE_LOCKED() in the SNMP app by a call to
> LWIP_ASSERT_SNMP_LOCKED() and define LWIP_ASSERT_SNMP_LOCKED as
> LWIP_ASSERT_CORE_LOCKED only if SNMP_USE_RAW =3D=3D 1.

Yes, that might work. We'd lose the check for the netconn case, but
better than an invalid error that halts the stack...

Regards,
Simon

_______________________________________________
lwip-users mailing list
lwip-users@nongn= u.org
https://lists.nongnu.org/mailman/listinfo/lwip-u= sers
--000000000000aade2c05a0f7c980-- From MAILER-DAEMON Mon Mar 16 10:26:04 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jDqgu-00075w-2T for mharc-lwip-users@gnu.org; Mon, 16 Mar 2020 10:26:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56619) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDo0Z-0003D6-RF for lwip-users@nongnu.org; Mon, 16 Mar 2020 07:34:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDo0Y-0000bd-GG for lwip-users@nongnu.org; Mon, 16 Mar 2020 07:34:11 -0400 Received: from n7.nabble.com ([162.253.133.57]:55858) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jDo0X-0000Pl-PG for lwip-users@nongnu.org; Mon, 16 Mar 2020 07:34:09 -0400 Received: from n7.nabble.com (localhost [127.0.0.1]) by n7.nabble.com (Postfix) with ESMTP id 2E9C81480753D for ; Mon, 16 Mar 2020 04:34:08 -0700 (MST) Date: Mon, 16 Mar 2020 04:34:08 -0700 (MST) From: Fw89 To: lwip-users@nongnu.org Message-ID: <1584358448129-0.post@n7.nabble.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Mac OS X [generic] X-Received-From: 162.253.133.57 X-Mailman-Approved-At: Mon, 16 Mar 2020 10:26:02 -0400 Subject: [lwip-users] NO_SYS and socket X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2020 11:34:14 -0000 Hi, I'm trying to implement an open62541 opc ua server on my mcu and i need to use socket, but when i compile i get this error #if ((LWIP_SOCKET || LWIP_NETCONN) && (NO_SYS==1)) #error "If you want to use Sequential API, you have to define NO_SYS=0 in your lwipopts.h" #endif I have to set NO_SYS = 1, because my mcu doesn't has an OS. What can i do? Thank you very much -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html From MAILER-DAEMON Mon Mar 16 11:38:29 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jDroz-0001w2-9Q for mharc-lwip-users@gnu.org; Mon, 16 Mar 2020 11:38:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38328) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDrov-0001ul-Pq for lwip-users@nongnu.org; Mon, 16 Mar 2020 11:38:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDrou-0007ET-Bw for lwip-users@nongnu.org; Mon, 16 Mar 2020 11:38:25 -0400 Received: from n7.nabble.com ([162.253.133.57]:54526) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jDrou-00074o-41 for lwip-users@nongnu.org; Mon, 16 Mar 2020 11:38:24 -0400 Received: from n7.nabble.com (localhost [127.0.0.1]) by n7.nabble.com (Postfix) with ESMTP id DDF491481A54F for ; Mon, 16 Mar 2020 08:38:21 -0700 (MST) Date: Mon, 16 Mar 2020 08:38:21 -0700 (MST) From: Jonas97 To: lwip-users@nongnu.org Message-ID: <1584373101906-0.post@n7.nabble.com> In-Reply-To: References: <1583490189300-0.post@n7.nabble.com> <1584351360479-0.post@n7.nabble.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Mac OS X [generic] X-Received-From: 162.253.133.57 Subject: Re: [lwip-users] RAW TCP client gets terminated X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2020 15:38:27 -0000 Hi Hugh, I did not find any specific documentation on the way sys_now() should be implemented. After debugging I noticed that sys_check_timeouts was using following macro: /* Check if timer's expiry time is greater than time and care about u32_t wraparounds */ #define TIME_LESS_THAN(t, compare_to) ( (((u32_t)((t)-(compare_to))) > LWIP_MAX_TIMEOUT) ? 1 : 0 ) So I suspect that the timer should run all the way to the unsigned 32 bit wraparound point. This is only hit after 49 days so I didn't dig deeper as my application doesn't run that long. The problem was that the ms function for my microcontroller was wrapping around after 71583 so instead of hitting 71584 it would start at zero again. Below is my quick and dirty fix for this which might contain future bugs, is gcc specific and also specific to the 71583 wrap around point. Feedback always appreciated. u32_t sys_now( void ) { static uint32_t ms = 0; static uint32_t lastMs = 0; uint32_t newMs = cpu_cy_2_ms( Get_sys_count(), sysclk_get_cpu_hz() ); uint32_t diffMs; if( newMs < lastMs ) { diffMs = ( newMs + 4294895712 ) - ( lastMs + 4294895712 ); diffMs -= 4294895712; } else { diffMs = newMs - lastMs; } lastMs = newMs; ms += diffMs; return ms; } -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html From MAILER-DAEMON Mon Mar 16 12:33:11 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jDsfu-0007iq-Qq for mharc-lwip-users@gnu.org; Mon, 16 Mar 2020 12:33:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34215) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDsfs-0007ed-Ga for lwip-users@nongnu.org; Mon, 16 Mar 2020 12:33:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDsfr-0001n4-7e for lwip-users@nongnu.org; Mon, 16 Mar 2020 12:33:08 -0400 Received: from mout.gmx.net ([212.227.17.22]:34189) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jDsfq-0001Sw-NQ for lwip-users@nongnu.org; Mon, 16 Mar 2020 12:33:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1584376385; bh=RkQYXPSIPnrW1PBqo5rvEFv9cYoR8SSHQo7g1p8qqgE=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=OhpKFwP3DcKfSqfbsbaGxCJex5pzGx8DcuIHhBxf+onUQdF0e1CtFXjN6ulV50Qws zSSoTQx1WBt5oHs+ELzRFAfy+yMSR1lHobjAEOWwk/vCr7HooR2umT9QqngJgMDVF0 MGZEqVo43oc5awUjBnIgByR2GoQjiq8Zurs5ApOA= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.61] ([176.199.210.162]) by mail.gmx.com (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MuDbx-1jRpj20DyH-00uXR8 for ; Mon, 16 Mar 2020 17:33:05 +0100 To: Mailing list for lwIP users References: <1584358448129-0.post@n7.nabble.com> From: "goldsimon@gmx.de" Autocrypt: addr=goldsimon@gmx.de; keydata= mQENBFDPe/sBCADdhO6Fn+7pnHtmEjiWs14u+n5cFQAhvjZ6EiZLwh0gMl5vYT1HDJ+8HTUA h0xMgXQ2Tsxzizt1TTBWn5DK74SjlIx/dYpM17OHmu6wuIbexKN6hEJSFZjtRlbIlWqEB8px EVeU7//1V/Ukj3QAI3yOrrhIg/s9jmuxMo05fjOsYEkub9PHmvFFdJ7KuApsVss4QRZIpawq HRFv9gY+4DrOvhwMZk6CHlvlAOgqlsMftRMl4699ww2NNbtU2U8n9XFlf2CQxkYAzIJC27Rc +83q+d5xbtcqzxcHhsFXelNTB09ZHEti7NpZZpnP4siVEa8p9BY8n11Nr/97c8lyZUCbABEB AAG0JFNpbW9uIEdvbGRzY2htaWR0IDxnb2xkc2ltb25AZ214LmRlPokBOAQTAQIAIgUCUM97 +wIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQHWthwbhCmfU0tQf+L0m7VG1LNzpt Yvx/1ZZFbqlggespnVuc6HPYqtmbIWxHmlQZgM6Pn61rUWmUl8ilWdcCw8Wuam2pEUSBzlZF z/738kcazWv9SRSbr7ULQi/d/gfOtcfAVUMkTF9jhWpAYR4zmzpR31mvs6Ltfh5rw/bsVJ+/ QbfWLJqdbRG4NykfuGXafQ+o+SDlMlcaBe49whhJsQcCBrvwixeNChUOkV3TY+jgVu4u1MEY c1aJKgVJkBVkAEsJXWFHTkF3TvJf5KdLLGbVBq3I6ItrLgAowI0kC4MzU3eNsCBEroBGJl2/ 7fmut8i+tQNiDfOVP4EHaSD86utnyawQev0TZnY2Qg== Message-ID: <73ba7425-1456-8085-d77a-05f804ac4409@gmx.de> Date: Mon, 16 Mar 2020 17:33:02 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <1584358448129-0.post@n7.nabble.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:t3a0X0uk3vA/dKfm2Lu2LFJx4F9Wg5VrtZdWb/GpE9wzsELuSZT I9mq0eg4SMpF+MvCLa5GXIj6hyLDFObiQkoR/VHaa5o0K9JDC0umC//D7S4ONxrSYJcavX6 HklwIpJ90eWtGjha1WXmIoqQQN+/vPcPbQJCvseK5zZVbZ3VGlPhQmGl5phq3oU5SGipxuS QcHb34Z2whDL5sG8eJgew== X-UI-Out-Filterresults: notjunk:1;V03:K0:3owdSZIfxVg=:6Og2jwtqWC3CqL7KX94PUB gWDwOZ1un9Ie6MXznfaI11YWIcCbdZ2sRLpD/H99jk/xmepu9YLYKJcEWi/wZjL8pSDB7rLcS RyCXkGALVJVjCYBR5a05BvcC29oKaGHcGhYcNACOkjUT/TRnKJKD6G1cDHPjm2ddNfnkCNZHz 0uevMmP50WEFi3qtKj3WMsKRZvNOzMN6Vbpqk6tIiWYdvFdbX3W2HyVerKKpwOFI7oPwmk+l3 5xLBv1+q7TLtei+CyHI2HRtWAaiQCXapOx6rU3BXlNhW+hvzF0r/rtTGGwFxJu5NxQKfW0Jk4 GziPoCPBYLkxQxtxDHoyD+HZ1AiMO3yUiiDcESprESrSeFq69DpM7Z2hwzK7KQ3mxw5gpqg93 TS4JgEsHxAhD9iliqYUPBhRTnRzVjYmFyymSUsA4RkKh8K3bOK02X/Js6YwBrFQCG6Hf5xr84 AOCgGl5edUEC/+af1fi/U+oHwOQEH2tnd9Nnr1fypEuTwnK6z2Ipmt6C3Pu/J+VOFB6HTfanK yL2/YA4DUXju5fpEl6x819JLxv3Jb8lxgrGrZKX3dgu+5YW+phyxQ0Hn99BELv5oO0nrGdRdE q/yZBhoR6diOe2Wwwi4hsOp1QxkSK+xYPUvex2TGTpa7vjW8IHK4OptZALYYJvQDVBJuLz5Sy zzqv3DHb5/gwEjd1lseOP2o8C0wBLE0/TQaxt1VL+/fXLWvrA0vvNnCOrCHOJFVZCl1vO46L2 E4Lh1W3t8b1UpnwMeaS8uQBxWfnLMGa1HxpchWMz2m5BuNz6XEfVxetlWdxZetZAdMeiz556M MRX/86JfTSTLb8xlEknGv3V19TdTtRDFoNw0dti7M/74JSdYiMg08Ydq1SnegDXfTzYt2It6i aijRoYOvDxb39WL+zLwdxC/mVte3DHNhv11aj+jAe0tmZiMldMV/vrZesyxuLZZHcs9W9oFGi MQu8LtEAZ1dvpRt+UjWnsuuOUH7SIHdjAcht5Nyswv/cxJik1gFW8CCHZyVgp3h1yUCUtRUcW GzmdKtY4KtDdgOQS71SyDA6UvoS2Elo7By4E3bE6Z6w2MGGR81OBUhTLnpzS1tQB4A4MxKDtR 29zZJ7PRfrApU7hj143P+Pu5sh01EOv7KfxxjKfK5jCAb5Tg/QF+5MHgg1K7ymOrJbmaHIVeD /hcY1h8TRPITIgHLbmVXCmHM2SwFRLn5Uk/53cgL0S7Rs7ti5kg8Bew+92Epx6H74dBCy+R5A K9287/HL/xdvXgTku X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.17.22 Subject: Re: [lwip-users] NO_SYS and socket X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2020 16:33:10 -0000 Am 16.03.2020 um 12:34 schrieb Fw89: > Hi, > I'm trying to implement an open62541 opc ua server on my mcu and i need = to > use socket, but when i compile i get this error > > #if ((LWIP_SOCKET || LWIP_NETCONN) && (NO_SYS=3D=3D1)) > #error "If you want to use Sequential API, you have to define NO_SYS= =3D0 in > your lwipopts.h" > #endif > > I have to set NO_SYS =3D 1, because my mcu doesn't has an OS. What can i= do? > Thank you very much The socket API currently needs threads. This *could* be changed to allow non-blocking calls, but that's currently not implemented. The standard socket API does block calling application threads on specific functions like send (if there's no buffer) or recv (if there's no data). That doesn't work without an OS, as you would block the whole stack in absence of multiple execution contexts (a.k.a. threads). Regards, Simon From MAILER-DAEMON Mon Mar 16 12:42:11 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jDsod-0005On-AE for mharc-lwip-users@gnu.org; Mon, 16 Mar 2020 12:42:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47063) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDsoa-0005Hw-7M for lwip-users@nongnu.org; Mon, 16 Mar 2020 12:42:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDsoY-00043F-Pp for lwip-users@nongnu.org; Mon, 16 Mar 2020 12:42:08 -0400 Received: from n7.nabble.com ([162.253.133.57]:53507) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jDsoY-0003t6-JV for lwip-users@nongnu.org; Mon, 16 Mar 2020 12:42:06 -0400 Received: from n7.nabble.com (localhost [127.0.0.1]) by n7.nabble.com (Postfix) with ESMTP id 7B2651481F7D9 for ; Mon, 16 Mar 2020 09:42:04 -0700 (MST) Date: Mon, 16 Mar 2020 09:42:04 -0700 (MST) From: Jonas97 To: lwip-users@nongnu.org Message-ID: <1584376924501-0.post@n7.nabble.com> In-Reply-To: References: <1583490189300-0.post@n7.nabble.com> <1584351360479-0.post@n7.nabble.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Mac OS X [generic] X-Received-From: 162.253.133.57 Subject: Re: [lwip-users] RAW TCP client gets terminated X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2020 16:42:09 -0000 Hi Hugh, I did not find any specific documentation on the way sys_now() should be implemented. After debugging I noticed that sys_check_timeouts was using following macro: /* Check if timer's expiry time is greater than time and care about u32_t wraparounds */ #define TIME_LESS_THAN(t, compare_to) ( (((u32_t)((t)-(compare_to))) > LWIP_MAX_TIMEOUT) ? 1 : 0 ) So I suspect that the timer should run all the way to the unsigned 32 bit wraparound point. This is only hit after 49 days so I didn't dig deeper as my application doesn't run that long. The problem was that the ms function for my microcontroller was wrapping around after 71583 so instead of hitting 71584 it would start at zero again. Below is my quick and dirty fix for this which might contain future bugs, is gcc specific and also specific to the 71583 wrap around point. Feedback always appreciated. u32_t sys_now( void ) { static uint32_t ms = 0; static uint32_t lastMs = 0; uint32_t newMs = cpu_cy_2_ms( Get_sys_count(), sysclk_get_cpu_hz() ); uint32_t diffMs; if( newMs < lastMs ) { diffMs = ( newMs + 4294895712 ) - ( lastMs + 4294895712 ); diffMs -= 4294895712; } else { diffMs = newMs - lastMs; } lastMs = newMs; ms += diffMs; return ms; } -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html From MAILER-DAEMON Mon Mar 16 13:38:48 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jDthQ-000562-P7 for mharc-lwip-users@gnu.org; Mon, 16 Mar 2020 13:38:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34162) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDthN-0004yk-ON for lwip-users@nongnu.org; Mon, 16 Mar 2020 13:38:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDthM-0002tj-8K for lwip-users@nongnu.org; Mon, 16 Mar 2020 13:38:45 -0400 Received: from smtp.hosts.co.uk ([85.233.160.19]:14782) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jDthM-0002jt-0e for lwip-users@nongnu.org; Mon, 16 Mar 2020 13:38:44 -0400 Received: from [86.149.52.167] (helo=HUGH4KLAPTOP) by smtp.hosts.co.uk with esmtpa (Exim) (envelope-from ) id 1jDthJ-0006C7-6e for lwip-users@nongnu.org; Mon, 16 Mar 2020 17:38:41 +0000 Reply-To: From: "Hugh Reynolds" To: "'Mailing list for lwIP users'" References: <1583490189300-0.post@n7.nabble.com> <1584351360479-0.post@n7.nabble.com> <1584373101906-0.post@n7.nabble.com> In-Reply-To: <1584373101906-0.post@n7.nabble.com> Date: Mon, 16 Mar 2020 17:38:40 -0000 Organization: Courtyard Electronics Ltd Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Outlook 16.0 Content-Language: en-gb Thread-Index: AQFYfVnOSPaOt/aaZwVurTuCDydFJgKfh5qXAwdaC6EBe8+uvKkNYvLw X-Antivirus: Avast (VPS 200316-0, 03/16/2020), Outbound message X-Antivirus-Status: Clean X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-Received-From: 85.233.160.19 Subject: Re: [lwip-users] RAW TCP client gets terminated X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2020 17:38:47 -0000 Jonas, many thanks. Regards -----Original Message----- From: lwip-users On = Behalf Of Jonas97 Sent: 16 March 2020 15:38 To: lwip-users@nongnu.org Subject: Re: [lwip-users] RAW TCP client gets terminated Hi Hugh, I did not find any specific documentation on the way sys_now() should be implemented. After debugging I noticed that sys_check_timeouts was using following macro= : /* Check if timer's expiry time is greater than time and care about u32_t wraparounds */ #define TIME_LESS_THAN(t, compare_to) ( (((u32_t)((t)-(compare_to))) > LWIP_MAX_TIMEOUT) ? 1 : 0 ) So I suspect that the timer should run all the way to the unsigned 32 bit wraparound point. This is only hit after 49 days so I didn't dig deeper as my application doesn't run that long. The problem was that the ms function for my microcontroller was wrapping around after 71583 so instead of hitting 71584 it would start at zero again= =2E Below is my quick and dirty fix for this which might contain future bugs, i= s gcc specific and also specific to the 71583 wrap around point. Feedback always appreciated. u32_t sys_now( void ) { static uint32_t ms =3D 0; static uint32_t lastMs =3D 0; uint32_t newMs =3D cpu_cy_2_ms( Get_sys_count(), sysclk_get_cpu_hz() );= uint32_t diffMs; if( newMs < lastMs ) { diffMs =3D ( newMs + 4294895712 ) - ( lastMs + 4294895712 ); diffMs -=3D 4294895712; } else { diffMs =3D newMs - lastMs; } lastMs =3D newMs; ms +=3D diffMs; return ms; } -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html _______________________________________________ lwip-users mailing list lwip-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/lwip-users -- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus From MAILER-DAEMON Mon Mar 16 14:54:57 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jDut7-0008Ou-Mg for mharc-lwip-users@gnu.org; Mon, 16 Mar 2020 14:54:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44338) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDut5-0008Ie-9l for lwip-users@nongnu.org; Mon, 16 Mar 2020 14:54:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDut3-0005Ao-7O for lwip-users@nongnu.org; Mon, 16 Mar 2020 14:54:55 -0400 Received: from mout.gmx.net ([212.227.17.22]:52813) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jDut2-0004uQ-QH for lwip-users@nongnu.org; Mon, 16 Mar 2020 14:54:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1584384891; bh=kcXJ1/dkoQsFBrAKaLDCo9ZwfYBYcwVktVTuqDoteAY=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=SkiULc5bYEuk+hQ828a0e1s/RaQJVqH63Em58r1mfhH5NxxXfVX4YEEo/eSYA/3GS gKrb+44oL0PNsOrR1g9DqVilki6cMz4iz+m1hvVo4eZmqBgBLIAAzBiVc3qXdGpv1/ CE6K09hIw0ISR8XMkl/rwFTjhP8hdkFixkD1Ic4c= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.61] ([176.199.210.162]) by mail.gmx.com (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MSKy8-1ilH6p0DTk-00SiE2 for ; Mon, 16 Mar 2020 19:54:51 +0100 To: Mailing list for lwIP users References: <1583490189300-0.post@n7.nabble.com> <1584351360479-0.post@n7.nabble.com> <1584376924501-0.post@n7.nabble.com> From: "goldsimon@gmx.de" Autocrypt: addr=goldsimon@gmx.de; keydata= mQENBFDPe/sBCADdhO6Fn+7pnHtmEjiWs14u+n5cFQAhvjZ6EiZLwh0gMl5vYT1HDJ+8HTUA h0xMgXQ2Tsxzizt1TTBWn5DK74SjlIx/dYpM17OHmu6wuIbexKN6hEJSFZjtRlbIlWqEB8px EVeU7//1V/Ukj3QAI3yOrrhIg/s9jmuxMo05fjOsYEkub9PHmvFFdJ7KuApsVss4QRZIpawq HRFv9gY+4DrOvhwMZk6CHlvlAOgqlsMftRMl4699ww2NNbtU2U8n9XFlf2CQxkYAzIJC27Rc +83q+d5xbtcqzxcHhsFXelNTB09ZHEti7NpZZpnP4siVEa8p9BY8n11Nr/97c8lyZUCbABEB AAG0JFNpbW9uIEdvbGRzY2htaWR0IDxnb2xkc2ltb25AZ214LmRlPokBOAQTAQIAIgUCUM97 +wIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQHWthwbhCmfU0tQf+L0m7VG1LNzpt Yvx/1ZZFbqlggespnVuc6HPYqtmbIWxHmlQZgM6Pn61rUWmUl8ilWdcCw8Wuam2pEUSBzlZF z/738kcazWv9SRSbr7ULQi/d/gfOtcfAVUMkTF9jhWpAYR4zmzpR31mvs6Ltfh5rw/bsVJ+/ QbfWLJqdbRG4NykfuGXafQ+o+SDlMlcaBe49whhJsQcCBrvwixeNChUOkV3TY+jgVu4u1MEY c1aJKgVJkBVkAEsJXWFHTkF3TvJf5KdLLGbVBq3I6ItrLgAowI0kC4MzU3eNsCBEroBGJl2/ 7fmut8i+tQNiDfOVP4EHaSD86utnyawQev0TZnY2Qg== Message-ID: <25cafd58-f70a-4335-3171-8dd8d23155f3@gmx.de> Date: Mon, 16 Mar 2020 19:54:48 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <1584376924501-0.post@n7.nabble.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:EZJ7XEAgTH91PyREFxg2UaQbmnKkhLcpIvaavLFIuP/fG97z5ZP kGE7g7NPK58fbVyd2tD6ZYKMMAxhXWgu4sKQRgy4w6Ul7T/IQtwm73k/+ughmAanQRIClo9 9HgPTGpmXwVkgwd/GOVMEKaiVx7ctvfr9dSl8HyNLfZvzR+5ZJriNUOMJtQV/cnNYwBQj6B 830b9oPyvWyytTksZOY8w== X-UI-Out-Filterresults: notjunk:1;V03:K0:KKDOP7l1DJ4=:/g9Vhh60eQiyLHwx976w94 jb16olWjwXwdWtzoI+tAHCCCHY8V3IgSp8BzXgncgsBcUwxvNk7NAeLKwE4JcpFoVDNDuVefA C849F5OUwMJ0dmazme2MtQ2/SIyR9KTkHlpv8t/rDYBHyV5rhAhGe9l+/XNN9934S55PxKR/q BIQcohzpB6nC0GherEYWKp0wplYoAljkhEmWOOPS0lo0rBo0oELc29U0rIFWwc/sUFFKbvls7 J6+C84enSVNXlUBA7JKoZQBSeVKU4cxO4EMtO+1PkOsJmoEjKm+HWO7d/rkilUnPjEFwSIln2 y1c6I+7Qrwija2S12FsUGAD2F3DQ308PeNYaDdbI1eWBO8PYVIKjRPVFmQ69e1VZYy1oLsq+W 9QcPcY+0t4w0gA0PEzlsJTUQM2xh+INHtwkslWWzXsA95FBUmNw2Ug4h0viKQIP9oBGoflqZ/ lhuicKYyfWU1M/W7OjZLGeJSvitcaoESjMlshKqx+LCHiK9IueG2ashDQk/nfZxOsxcFhFsBS NMju1olvuAvQi90PreKq5I3lrGLpEjb1fSK+LjSnbT0CmOPF0lxUaEEVD5qPJmhXYs0R7Po/D jS51jgHW+qIRjYElPAA9nhBn+GkPksjg78AKhE4KWXE/+d+maRbMXXnUrIYGheygmUytKzTma CsEAuOTnbbW9DddEZ6bM9HeqHDZXpkcS16KbO4HjX4ZKI2KKj5uU7YW29OBIVdsItTDOiBEaY 5FYvoO+McgILzPEe6xsj2S7mztn+F0a5d7ioI2m7/VevQjpQ6BLA6SWgovYHspZoKojYYopvX do2GIinXNJtpYwZgPHBDyuMb947hmvUag4pKeKEISGwav4xF2qQcM3n9D2eY+QdpEdblTKzGb agFNLzPRkwMAHdna3gn/x/LNXS5/4JH3K159HdCp/dWSS2TvGIXugbNXcCnNnrqD7eCJpU1XY rcs03rhwSNeAVx7wldTuh06TIWMXY4MYaP3ydHpJ5W6VCWm1vJgIQg2D0TyLVjKVqQDDoGvJ0 YRF2xvU2RaRE15VDGwWRF0R8uaw/eHm8KDuZE3JW5HsaGhtz0Z+sB9+AQcLAJ6piRs3nSZjt9 OCcQldoypMagcglHTxg9xyuqeyhCzd0/kEbjKeut7fc3+to5YSDDKUQJnhrezYpcM5dNg5R+H H7hqiAAi2ILodEijRFBxwsRwp0VhgTEfcvmE5c1Ep2Fe0gUvxm8KLbWfluPeIjNabKk8rMK/Z 3W1KxeLYhGoB5OvyA X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.17.22 Subject: Re: [lwip-users] RAW TCP client gets terminated X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2020 18:54:57 -0000 Am 16.03.2020 um 17:42 schrieb Jonas97: > Hi Hugh, > > I did not find any specific documentation on the way sys_now() should be > implemented. For things like this, improved documentation is always welcome. Plus it should be easy to provide it for everyone... > After debugging I noticed that sys_check_timeouts was using following ma= cro: > > /* Check if timer's expiry time is greater than time and care about u32_= t > wraparounds */ > #define TIME_LESS_THAN(t, compare_to) ( (((u32_t)((t)-(compare_to))) > > LWIP_MAX_TIMEOUT) ? 1 : 0 ) > > So I suspect that the timer should run all the way to the unsigned 32 bi= t > wraparound point. This is only hit after 49 days so I didn't dig deeper = as > my application doesn't run that long. Yes, it should just continue. And yes, it's hard to test since this is a purely port-provided function. Regards, Simon > > The problem was that the ms function for my microcontroller was wrapping > around after 71583 so instead of hitting 71584 it would start at zero ag= ain. > > Below is my quick and dirty fix for this which might contain future bugs= , is > gcc specific and also specific to the 71583 wrap around point. Feedback > always appreciated. > > u32_t sys_now( void ) > { > static uint32_t ms =3D 0; > static uint32_t lastMs =3D 0; > > uint32_t newMs =3D cpu_cy_2_ms( Get_sys_count(), sysclk_get_cpu_hz()= ); > uint32_t diffMs; > > if( newMs < lastMs ) > { > diffMs =3D ( newMs + 4294895712 ) - ( lastMs + 4294895712 ); > diffMs -=3D 4294895712; > } > else > { > diffMs =3D newMs - lastMs; > } > > lastMs =3D newMs; > ms +=3D diffMs; > > return ms; > } > > > > > -- > Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html > > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users > From MAILER-DAEMON Tue Mar 17 08:19:43 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jEBCB-0008RF-69 for mharc-lwip-users@gnu.org; Tue, 17 Mar 2020 08:19:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45382) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEBC8-0008O4-1G for lwip-users@nongnu.org; Tue, 17 Mar 2020 08:19:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEBC6-0002vL-7j for lwip-users@nongnu.org; Tue, 17 Mar 2020 08:19:39 -0400 Received: from mail-qv1-xf2d.google.com ([2607:f8b0:4864:20::f2d]:33464) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jEBC5-0002ps-Ty for lwip-users@nongnu.org; Tue, 17 Mar 2020 08:19:38 -0400 Received: by mail-qv1-xf2d.google.com with SMTP id cz10so10678835qvb.0 for ; Tue, 17 Mar 2020 05:19:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=w6BCQf4XTwt92DyswlA7Vz4uOaPONqiF/r6U+fs43C8=; b=giSVqjnOkJpJhNVTyvyimS1h0SFqCt9PL2abIObRBeyCeBQlRSI/NNZ48UcOGXG3lY ahmA4pMRNPPf5k3StlByh0Y2xnc1m/U5p4K6ovRDDECCb5vYpYvV6GRLPXweRr/gdVqa 2ohgjUCY9Cin3sYijqqEVYc7mKi91rCwau6aKOID4G7KcC8Qnjp68rhcwKzx0MW+r5fk /PQxGK7Z8tMz8tEw8/dDOQUThoYB+kE3XS0q+gSQoM+amzk9XE74Rn8FGptjSEQgA3tz M27X5i699rju1G1OFUOiwDYgjWIsuEiTn0ontomFLZs+ddfNEqid2mVl8vBNLVBZxGWW jCyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=w6BCQf4XTwt92DyswlA7Vz4uOaPONqiF/r6U+fs43C8=; b=d3UlJzlG0povLjwHeN1fi5lWCq7yri8DRMJJKTYTM/hURasrDb3ZMskYnptBR3fgwy KbbHGAoVAoePWMtAtulC6gNTFGLkwFNKIm/KFgW9gOYbsS3wizctCmYzfI6JoSak1XSn AJMKPXr+S3ciAwF3Jth6yqQjgRLeiWWLw6n2I0klmyHz+UhOcbINEOp7PpHMPabthxZF i43CJi0wN4IKL4DGRW7IB7O/4k70giXtCO/TYT6IdjyjKvf4yS9rKZsGTrRwFn4T2Xuk PBtLojF4SI3wDm96++F6UaIIXVWfo5wkvD6AkviKeIfdJ7Qpo3mQsgP6mimZN1moz5C2 O8dA== X-Gm-Message-State: ANhLgQ1lHBlwRl9Fr1j4T/QjRXlUM4KHlVocNfWutcJJxuBdBYUroUEu Lnny2XXG+Y3mikl9im7SP3N7CEt9X8043yMrFKHhdLZPI6s= X-Google-Smtp-Source: ADFU+vu+ZMRZ5iXgHH900ZeClD2w6IxingbhtwE4PV26pJzdMRk6oMCDOFawPqUXJK0pII4l/4apf/9oRgtM1iEEr3I= X-Received: by 2002:a05:6214:68f:: with SMTP id r15mr4468029qvz.96.1584447576652; Tue, 17 Mar 2020 05:19:36 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Sachin Gole Date: Tue, 17 Mar 2020 17:49:25 +0530 Message-ID: To: lwip-users@nongnu.org Content-Type: multipart/mixed; boundary="000000000000f9770d05a10bf28b" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::f2d Subject: Re: [lwip-users] How to build LWIP test on linux X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2020 12:19:42 -0000 --000000000000f9770d05a10bf28b Content-Type: multipart/alternative; boundary="000000000000f9770905a10bf289" --000000000000f9770905a10bf289 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Provided commands doesn't work, Looks like needs to be updated in wiki pages or README. Tested logs are attached. On Sun, Mar 15, 2020 at 9:56 PM Sachin Gole wrote: > > Using lwip-2.1.2 version, below steps doesn't get compiled with these > steps. > > rajgad:~/Downloads/lwip-2.1.2$ ls > CHANGELOG CMakeLists.txt COPYING doc FEATURES FILES README src > test UPGRADING > rajgad:~/Downloads/lwip-2.1.2$ mkdir build > rajgad:~/Downloads/lwip-2.1.2$ cd build/ > rajgad:~/Downloads/lwip-2.1.2/build$ cmake ../CMakeLists.txt > -DCMAKE_C_COMPILER=3D"/usr/bin/gcc" -DCMAKE_CXX_COMPILER=3D"/usr/bin/g++" > -- The C compiler identification is GNU 5.4.0 > -- The CXX compiler identification is GNU 5.4.0 > -- Check for working C compiler: /usr/bin/gcc > -- Check for working C compiler: /usr/bin/gcc - works > -- Detecting C compiler ABI info > -- Detecting C compiler ABI info - done > -- Detecting C compile features > -- Detecting C compile features - done > -- Check for working CXX compiler: /usr/bin/g++ > -- Check for working CXX compiler: /usr/bin/g++ - works > -- Detecting CXX compiler ABI info > -- Detecting CXX compiler ABI info - done > -- Detecting CXX compile features > -- Detecting CXX compile features - done > -- Found Doxygen: /usr/bin/doxygen (found version "1.8.11") found > components: doxygen missing components: dot > Doxygen build started > -- Configuring done > -- Generating done > -- Build files have been written to: /home/sachin/Downloads/lwip-2.1.2 > rajgad:~/Downloads/lwip-2.1.2/build$ > rajgad:~/Downloads/lwip-2.1.2/build$ ls > rajgad:~/Downloads/lwip-2.1.2/build$ cd .. > rajgad:~/Downloads/lwip-2.1.2$ ls > build CMakeCache.txt CMakeDoxygenDefaults.cmake > cmake_install.cmake COPYING CPackSourceConfig.cmake FEATURE= S > Makefile src UPGRADING > CHANGELOG CMakeDoxyfile.in CMakeFiles CMakeLists.txt > CPackConfig.cmake doc FILES README test > rajgad:~/Downloads/lwip-2.1.2$ cmake --build . > rajgad:~/Downloads/lwip-2.1.2$ > > New to lwip unix version, not getting unit test executable. > > > On Sat, Mar 14, 2020 at 11:17 PM Sachin Gole wrote: > >> In 2.1.2 version, There is no dev folder to run lwip_unittest >> >> >> ~/Downloads/lwip-2.1.2$ ls >> build CMakeCache.txt cmake_install.cmake COPYING >> CPackSourceConfig.cmake FEATURES Makefile src UPGRADING >> CHANGELOG CMakeFiles CMakeLists.txt CPackConfig.cmake doc >> FILES README test >> >> >> Great help if you can suggest. >> >> On Thu, Mar 12, 2020 at 12:05 PM Sachin Gole wrote: >> >>> Package : lwip_2.1.2.orig source folder >>> Building test on Linux with following commands >>> >>> cmake CMakeLists.txt -DCMAKE_C_COMPILER=3D"/usr/bin/gcc" >>> -DCMAKE_CXX_COMPILER=3D"/usr/bin/g++" >>> >>> How to compile further to get unit test ? >>> >>> >>> I=E2=80=99m >>> protected online with Avast Free Antivirus. Get it here =E2=80=94 it=E2= =80=99s free >>> forever. >>> >>> <#m_6405870859724551637_m_-3031064198876534678_m_-7456139197348001846_D= AB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> >>> >> >> >> -- >> Best regards, >> Sachin >> 9970501145 >> > > > -- > Best regards, > Sachin > 9970501145 > --=20 Best regards, Sachin 9970501145 --000000000000f9770905a10bf289 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Provided commands doesn't=C2=A0work, Looks like needs to be updated i= n wiki pages or README.
Tested logs are attached.

On Sun, Mar 15, 2020 at 9:56 P= M Sachin Gole <svgole@gmail.com&= gt; wrote:

Using lwip-2.1.2 version, below steps=C2=A0doesn't=C2=A0get co= mpiled with these steps.

rajgad:~/Downloads/lwip-2.1.2$ ls
CHANGELOG =C2=A0CMakeLists.t= xt =C2=A0COPYING =C2=A0doc =C2=A0FEATURES =C2=A0FILES =C2=A0README =C2=A0sr= c =C2=A0test =C2=A0UPGRADING
rajgad:~/Downloads/lwip-2.1.2$ mkdir build<= br>rajgad:~/Downloads/lwip-2.1.2$ cd build/
rajgad:~/Downloads/lwip-2.1.= 2/build$ cmake ../CMakeLists.txt -DCMAKE_C_COMPILER=3D"/usr/bin/gcc&qu= ot; -DCMAKE_CXX_COMPILER=3D"/usr/bin/g++"
-- The C compiler id= entification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.= 0
-- Check for working C compiler: /usr/bin/gcc
-- Check for working = C compiler: /usr/bin/gcc - works
-- Detecting C compiler ABI info
-- = Detecting C compiler ABI info - done
-- Detecting C compile features
= -- Detecting C compile features - done
-- Check for working CXX compiler= : /usr/bin/g++
-- Check for working CXX compiler: /usr/bin/g++ - works-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info = - done
-- Detecting CXX compile features
-- Detecting CXX compile fea= tures - done
-- Found Doxygen: /usr/bin/doxygen (found version "1.8= .11") found components: doxygen missing components: dot
Doxygen bui= ld started
-- Configuring done
-- Generating done
-- Build files h= ave been written to: /home/sachin/Downloads/lwip-2.1.2
rajgad:~/Download= s/lwip-2.1.2/build$
rajgad:~/Downloads/lwip-2.1.2/build$ ls
rajgad:~= /Downloads/lwip-2.1.2/build$ cd ..
rajgad:~/Downloads/lwip-2.1.2$ ls
= build =C2=A0 =C2=A0 =C2=A0CMakeCache.txt =C2=A0 =C2=A0CMakeDoxygenDefaults.= cmake =C2=A0cmake_install.cmake =C2=A0COPYING =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0CPackSourceConfig.cmake =C2=A0FEATURES =C2=A0Makefile =C2=A0sr= c =C2=A0 UPGRADING
CHANGELOG =C2=A0CMakeDoxyfile.in =C2=A0CMakeFiles =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0CMakeLists.txt = =C2=A0 =C2=A0 =C2=A0 CPackConfig.cmake =C2=A0doc =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FILES =C2=A0 =C2=A0 REA= DME =C2=A0 =C2=A0test
rajgad:~/Downloads/lwip-2.1.2$ cmake --build .
= rajgad:~/Downloads/lwip-2.1.2$=C2=A0

New to lwip unix version, not getting unit test e= xecutable.


On Sat, Mar 14, 2020 at 11:17 PM Sachin Gole= <svgole@gmail.com= > wrote:
=
In 2.1.2 version, Ther= e is no dev folder to run lwip_unittest


~/Downloads/lwip-2.1.2$ ls
build =C2=A0 =C2=A0 = =C2=A0CMakeCache.txt =C2=A0cmake_install.cmake =C2=A0COPYING =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0CPackSourceConfig.cmake =C2=A0FEATURES =C2=A0Mak= efile =C2=A0src =C2=A0 UPGRADING
CHANGELOG =C2=A0CMakeFiles =C2=A0 =C2= =A0 =C2=A0CMakeLists.txt =C2=A0 =C2=A0 =C2=A0 CPackConfig.cmake =C2=A0doc = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0FILES =C2=A0 =C2=A0 README =C2=A0 =C2=A0test


Great h= elp if you can suggest.



--
Best regards,
Sachin
9970501145


--
Best regards,
Sachin
9970501145


--
Best regards,
Sac= hin
9970501145
--000000000000f9770905a10bf289-- --000000000000f9770d05a10bf28b Content-Type: application/octet-stream; name="contrib-2_1_0.logs" Content-Disposition: attachment; filename="contrib-2_1_0.logs" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k7vuylcz0 c2FjaGluQHNhY2hpbi1WaXJ0dWFsQm94On4vRG93bmxvYWRzJCBjZCBjb250cmliLTIuMS4wLwpz YWNoaW5Ac2FjaGluLVZpcnR1YWxCb3g6fi9Eb3dubG9hZHMvY29udHJpYi0yLjEuMCQgbHMKYWRk b25zICBhcHBzICBDb3Zlcml0eSAgZXhhbXBsZXMgIEZpbGVsaXN0cy5jbWFrZSAgRmlsZWxpc3Rz Lm1rICBwb3J0cwpzYWNoaW5Ac2FjaGluLVZpcnR1YWxCb3g6fi9Eb3dubG9hZHMvY29udHJpYi0y LjEuMCQgCnNhY2hpbkBzYWNoaW4tVmlydHVhbEJveDp+L0Rvd25sb2Fkcy9jb250cmliLTIuMS4w JCBjZCBwb3J0cy91bml4L2NoZWNrLwpzYWNoaW5Ac2FjaGluLVZpcnR1YWxCb3g6fi9Eb3dubG9h ZHMvY29udHJpYi0yLjEuMC9wb3J0cy91bml4L2NoZWNrJCBscwpDTWFrZUxpc3RzLnR4dCAgY29u ZmlnLmggIE1ha2VmaWxlICBSRUFETUUKc2FjaGluQHNhY2hpbi1WaXJ0dWFsQm94On4vRG93bmxv YWRzL2NvbnRyaWItMi4xLjAvcG9ydHMvdW5peC9jaGVjayQgbWtkaXIgYnVpbGQKc2FjaGluQHNh Y2hpbi1WaXJ0dWFsQm94On4vRG93bmxvYWRzL2NvbnRyaWItMi4xLjAvcG9ydHMvdW5peC9jaGVj ayQgY2QgYnVpbGQvCnNhY2hpbkBzYWNoaW4tVmlydHVhbEJveDp+L0Rvd25sb2Fkcy9jb250cmli LTIuMS4wL3BvcnRzL3VuaXgvY2hlY2svYnVpbGQkIGNtYWtlIC4uCi0tIFRoZSBDIGNvbXBpbGVy IGlkZW50aWZpY2F0aW9uIGlzIEdOVSA3LjUuMAotLSBDaGVjayBmb3Igd29ya2luZyBDIGNvbXBp bGVyOiAvdXNyL2Jpbi9jYwotLSBDaGVjayBmb3Igd29ya2luZyBDIGNvbXBpbGVyOiAvdXNyL2Jp bi9jYyAtLSB3b3JrcwotLSBEZXRlY3RpbmcgQyBjb21waWxlciBBQkkgaW5mbwotLSBEZXRlY3Rp bmcgQyBjb21waWxlciBBQkkgaW5mbyAtIGRvbmUKLS0gRGV0ZWN0aW5nIEMgY29tcGlsZSBmZWF0 dXJlcwotLSBEZXRlY3RpbmcgQyBjb21waWxlIGZlYXR1cmVzIC0gZG9uZQpDTWFrZSBFcnJvciBh dCBDTWFrZUxpc3RzLnR4dDozMCAoaW5jbHVkZSk6CiAgaW5jbHVkZSBjb3VsZCBub3QgZmluZCBs b2FkIGZpbGU6CgogICAgL2hvbWUvc2FjaGluL0Rvd25sb2Fkcy9jb250cmliLTIuMS4wL3BvcnRz L3VuaXgvY2hlY2svLi4vLi4vLi4vLi4vbHdpcC9zcmMvRmlsZWxpc3RzLmNtYWtlCgoKQ01ha2Ug RXJyb3IgYXQgQ01ha2VMaXN0cy50eHQ6MzEgKGluY2x1ZGUpOgogIGluY2x1ZGUgY291bGQgbm90 IGZpbmQgbG9hZCBmaWxlOgoKICAgIC9ob21lL3NhY2hpbi9Eb3dubG9hZHMvY29udHJpYi0yLjEu MC9wb3J0cy91bml4L2NoZWNrLy4uLy4uLy4uLy4uL2x3aXAvdGVzdC91bml0L0ZpbGVsaXN0cy5j bWFrZQoKCkNNYWtlIEVycm9yIGF0IENNYWtlTGlzdHMudHh0OjMzIChhZGRfZXhlY3V0YWJsZSk6 CiAgYWRkX2V4ZWN1dGFibGUgY2FsbGVkIHdpdGggaW5jb3JyZWN0IG51bWJlciBvZiBhcmd1bWVu dHMKCgpDTWFrZSBFcnJvciBhdCBDTWFrZUxpc3RzLnR4dDozNCAodGFyZ2V0X2luY2x1ZGVfZGly ZWN0b3JpZXMpOgogIENhbm5vdCBzcGVjaWZ5IGluY2x1ZGUgZGlyZWN0b3JpZXMgZm9yIHRhcmdl dCAibHdpcF91bml0dGVzdHMiIHdoaWNoIGlzIG5vdAogIGJ1aWx0IGJ5IHRoaXMgcHJvamVjdC4K CgpDTWFrZSBFcnJvciBhdCBDTWFrZUxpc3RzLnR4dDozNSAodGFyZ2V0X2NvbXBpbGVfb3B0aW9u cyk6CiAgQ2Fubm90IHNwZWNpZnkgY29tcGlsZSBvcHRpb25zIGZvciB0YXJnZXQgImx3aXBfdW5p dHRlc3RzIiB3aGljaCBpcyBub3QKICBidWlsdCBieSB0aGlzIHByb2plY3QuCgoKQ01ha2UgRXJy b3IgYXQgQ01ha2VMaXN0cy50eHQ6MzYgKHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKToKICBD YW5ub3Qgc3BlY2lmeSBjb21waWxlIGRlZmluaXRpb25zIGZvciB0YXJnZXQgImx3aXBfdW5pdHRl c3RzIiB3aGljaCBpcyBub3QKICBidWlsdCBieSB0aGlzIHByb2plY3QuCgoKQ01ha2UgRXJyb3Ig YXQgQ01ha2VMaXN0cy50eHQ6NDAgKHRhcmdldF9saW5rX2xpYnJhcmllcyk6CiAgQ2Fubm90IHNw ZWNpZnkgbGluayBsaWJyYXJpZXMgZm9yIHRhcmdldCAibHdpcF91bml0dGVzdHMiIHdoaWNoIGlz IG5vdAogIGJ1aWx0IGJ5IHRoaXMgcHJvamVjdC4KCgotLSBDb25maWd1cmluZyBpbmNvbXBsZXRl LCBlcnJvcnMgb2NjdXJyZWQhClNlZSBhbHNvICIvaG9tZS9zYWNoaW4vRG93bmxvYWRzL2NvbnRy aWItMi4xLjAvcG9ydHMvdW5peC9jaGVjay9idWlsZC9DTWFrZUZpbGVzL0NNYWtlT3V0cHV0Lmxv ZyIuCnNhY2hpbkBzYWNoaW4tVmlydHVhbEJveDp+L0Rvd25sb2Fkcy9jb250cmliLTIuMS4wL3Bv cnRzL3VuaXgvY2hlY2svYnVpbGQkIAoK --000000000000f9770d05a10bf28b Content-Type: application/octet-stream; name="lwip_2_1_2.logs" Content-Disposition: attachment; filename="lwip_2_1_2.logs" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k7vuyle61 c2FjaGluQHNhY2hpbi1WaXJ0dWFsQm94On4vRG93bmxvYWRzL2x3aXAtMi4xLjIkIApzYWNoaW5A c2FjaGluLVZpcnR1YWxCb3g6fi9Eb3dubG9hZHMvbHdpcC0yLjEuMiQgbHMKQ0hBTkdFTE9HICBD TWFrZUxpc3RzLnR4dCAgQ09QWUlORyAgZG9jICBGRUFUVVJFUyAgRklMRVMgIFJFQURNRSAgc3Jj ICB0ZXN0ICBVUEdSQURJTkcKc2FjaGluQHNhY2hpbi1WaXJ0dWFsQm94On4vRG93bmxvYWRzL2x3 aXAtMi4xLjIkIG1rZGlyIGJ1aWxkCnNhY2hpbkBzYWNoaW4tVmlydHVhbEJveDp+L0Rvd25sb2Fk cy9sd2lwLTIuMS4yJCBjZCBidWlsZC8Kc2FjaGluQHNhY2hpbi1WaXJ0dWFsQm94On4vRG93bmxv YWRzL2x3aXAtMi4xLjIvYnVpbGQkIApzYWNoaW5Ac2FjaGluLVZpcnR1YWxCb3g6fi9Eb3dubG9h ZHMvbHdpcC0yLjEuMi9idWlsZCQgY21ha2UgLi4KLS0gVGhlIEMgY29tcGlsZXIgaWRlbnRpZmlj YXRpb24gaXMgR05VIDcuNS4wCi0tIFRoZSBDWFggY29tcGlsZXIgaWRlbnRpZmljYXRpb24gaXMg R05VIDcuNS4wCi0tIENoZWNrIGZvciB3b3JraW5nIEMgY29tcGlsZXI6IC91c3IvYmluL2NjCi0t IENoZWNrIGZvciB3b3JraW5nIEMgY29tcGlsZXI6IC91c3IvYmluL2NjIC0tIHdvcmtzCi0tIERl dGVjdGluZyBDIGNvbXBpbGVyIEFCSSBpbmZvCi0tIERldGVjdGluZyBDIGNvbXBpbGVyIEFCSSBp bmZvIC0gZG9uZQotLSBEZXRlY3RpbmcgQyBjb21waWxlIGZlYXR1cmVzCi0tIERldGVjdGluZyBD IGNvbXBpbGUgZmVhdHVyZXMgLSBkb25lCi0tIENoZWNrIGZvciB3b3JraW5nIENYWCBjb21waWxl cjogL3Vzci9iaW4vYysrCi0tIENoZWNrIGZvciB3b3JraW5nIENYWCBjb21waWxlcjogL3Vzci9i aW4vYysrIC0tIHdvcmtzCi0tIERldGVjdGluZyBDWFggY29tcGlsZXIgQUJJIGluZm8KLS0gRGV0 ZWN0aW5nIENYWCBjb21waWxlciBBQkkgaW5mbyAtIGRvbmUKLS0gRGV0ZWN0aW5nIENYWCBjb21w aWxlIGZlYXR1cmVzCi0tIERldGVjdGluZyBDWFggY29tcGlsZSBmZWF0dXJlcyAtIGRvbmUKLS0g Rm91bmQgRG94eWdlbjogL3Vzci9iaW4vZG94eWdlbiAoZm91bmQgdmVyc2lvbiAiMS44LjEzIikg Zm91bmQgY29tcG9uZW50czogIGRveHlnZW4gbWlzc2luZyBjb21wb25lbnRzOiAgZG90CkRveHln ZW4gYnVpbGQgc3RhcnRlZAotLSBDb25maWd1cmluZyBkb25lCi0tIEdlbmVyYXRpbmcgZG9uZQot LSBCdWlsZCBmaWxlcyBoYXZlIGJlZW4gd3JpdHRlbiB0bzogL2hvbWUvc2FjaGluL0Rvd25sb2Fk cy9sd2lwLTIuMS4yL2J1aWxkCnNhY2hpbkBzYWNoaW4tVmlydHVhbEJveDp+L0Rvd25sb2Fkcy9s d2lwLTIuMS4yL2J1aWxkJCBjbWFrZSAtLWJ1aWxkIC4Kc2FjaGluQHNhY2hpbi1WaXJ0dWFsQm94 On4vRG93bmxvYWRzL2x3aXAtMi4xLjIvYnVpbGQkIApzYWNoaW5Ac2FjaGluLVZpcnR1YWxCb3g6 fi9Eb3dubG9hZHMvbHdpcC0yLjEuMi9idWlsZCQgCnNhY2hpbkBzYWNoaW4tVmlydHVhbEJveDp+ L0Rvd25sb2Fkcy9sd2lwLTIuMS4yL2J1aWxkJCAKCg== --000000000000f9770d05a10bf28b-- From MAILER-DAEMON Tue Mar 17 10:34:25 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jEDIX-0001DZ-B2 for mharc-lwip-users@gnu.org; Tue, 17 Mar 2020 10:34:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45093) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEDIT-0001CD-Fb for lwip-users@nongnu.org; Tue, 17 Mar 2020 10:34:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEDIR-0003fr-Ux for lwip-users@nongnu.org; Tue, 17 Mar 2020 10:34:21 -0400 Received: from mout.gmx.net ([212.227.17.22]:54929) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jEDIR-0003WL-Hx for lwip-users@nongnu.org; Tue, 17 Mar 2020 10:34:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1584455657; bh=TPs9AIBrZZqC/07iRCEz7SYBL4yDkglR6ym1ukpApdk=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=i0nJHl/pn6WpPcgXFyndBhez9sVgpDS8jgWBJbmJm6lFMx4uxynlIC+buMyyNB7SO 92CN/wjL8NSQZfFkiFQ71MV46L/gYB7hXtYKDdB3udlE3pMAxKd2o2vxX0a0DiBbvO 1Fvi+wljwwdlcPGfdaDbKTS+cT4tE5IxFxSRmD+I= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.61] ([176.199.210.162]) by mail.gmx.com (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Mw9UK-1jWhWH0E2G-00s6OM for ; Tue, 17 Mar 2020 15:34:17 +0100 To: Mailing list for lwIP users References: From: "goldsimon@gmx.de" Autocrypt: addr=goldsimon@gmx.de; keydata= mQENBFDPe/sBCADdhO6Fn+7pnHtmEjiWs14u+n5cFQAhvjZ6EiZLwh0gMl5vYT1HDJ+8HTUA h0xMgXQ2Tsxzizt1TTBWn5DK74SjlIx/dYpM17OHmu6wuIbexKN6hEJSFZjtRlbIlWqEB8px EVeU7//1V/Ukj3QAI3yOrrhIg/s9jmuxMo05fjOsYEkub9PHmvFFdJ7KuApsVss4QRZIpawq HRFv9gY+4DrOvhwMZk6CHlvlAOgqlsMftRMl4699ww2NNbtU2U8n9XFlf2CQxkYAzIJC27Rc +83q+d5xbtcqzxcHhsFXelNTB09ZHEti7NpZZpnP4siVEa8p9BY8n11Nr/97c8lyZUCbABEB AAG0JFNpbW9uIEdvbGRzY2htaWR0IDxnb2xkc2ltb25AZ214LmRlPokBOAQTAQIAIgUCUM97 +wIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQHWthwbhCmfU0tQf+L0m7VG1LNzpt Yvx/1ZZFbqlggespnVuc6HPYqtmbIWxHmlQZgM6Pn61rUWmUl8ilWdcCw8Wuam2pEUSBzlZF z/738kcazWv9SRSbr7ULQi/d/gfOtcfAVUMkTF9jhWpAYR4zmzpR31mvs6Ltfh5rw/bsVJ+/ QbfWLJqdbRG4NykfuGXafQ+o+SDlMlcaBe49whhJsQcCBrvwixeNChUOkV3TY+jgVu4u1MEY c1aJKgVJkBVkAEsJXWFHTkF3TvJf5KdLLGbVBq3I6ItrLgAowI0kC4MzU3eNsCBEroBGJl2/ 7fmut8i+tQNiDfOVP4EHaSD86utnyawQev0TZnY2Qg== Message-ID: <8944bf4b-5eec-52ba-1a0d-71125e1001ec@gmx.de> Date: Tue, 17 Mar 2020 15:34:13 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:5JTxFBXRJ2w10oFBMY45v4vbhzMntzohu042hAb7teh206X/MhB 7xWCCGObxKlRoVsCxRKhv93vdADW55HgXkKENyuH4CE3Dv1BnHjYMmhQAC8RyQP0zP2ObsB 5wQka4lYcX/1C/YllC9vMzIqX1z1sRGqddIkIhMhimbh4NIUfwK5L8qrB7JReIzPhsGRq4g Y2CtrevzXtMX9GrZYb4wA== X-UI-Out-Filterresults: notjunk:1;V03:K0:6dxoomuPGTc=:G1iHjssi2gcE5yezz/HSPC GGcizZduoTDNqB3WtUDLJm7M+ldCQ1X+v/edj4X7tk/dCCg8OfRz5d5MdOzwfrU2sO2WpkEKH jGyW91t/7+P5hZOzjlT24avpDV5EgO1XznH2lNCwUG7EJ/1Fx5BopDJjSW1W8oYS6yxg25UwW ZU++hhseMWaFe5+A/rcnCir6/yHfy0mgySa3SJDmCZLID5Am8WoJhqJHAUm61k1QEMQUyGdO9 w5KMGOxvyuZSWZGGmrhXG3zHB0QbpdunfUpLwvd6Cd0Sx9Jq/j3jzZcN5qihUKy43/YqCO7R8 kEwBraeGm/3dXbs5F9QRWlq6tPu9XM7Kw5Cv5g5nsMo5uEUkHUpcM4sI8vOFtfDex0XchuBni Qbf4Spa0wzMnmkjcZITVsplZ2giSaPFAHmGBP3yvcV+tH6qZY8dmfzYuyJwDWO2a/s0kYQLtV 8PffuyQQJ+uQq/ejdosW7e6hG9hX1Ulxiyy6Oeaw340ahEuXkw4x6MWywVaffWQN9Yd4kACDZ O3uELiEdg5vztBR+p7VDkmhKd7BVG25HQN4FmEIYNVhpfd4WF0QXiHpgiPuNn0M/7bjkxiQGT 6BJDzETGspmaDtNUkUsf5HQ3Hmx5RfAFk/55jeyhTBkCpecnfUmN1VA2iOX9eELTuxEaSa1Kr MEWqjDj+MXMik7fzO8KctLH4QmSLK12BN10JIZR5A9m62WdunvKfgfk/XbDRksLEcC5XUenah 78h6Cdjkv63eneyXLIvmWlIX29hX4l9ziU3oVSr8CcjRG60rj/6qUCis/7gpuY6GKRygc+gsC nbLI69g7awuj598qxnyVDG6SDd7Z5FUIfm03uRB6anfq1c27VCkausgZP27sNeVBtT504hiHF hp5Od7iCXVIS2RJd7vmZ2xH8QeieiZi47UAH8qPzGa7YSonH/oLxDGswnM7FnH75tY/GR1GUj fR7NfBafecMKOyz9H6HV+hMPR+hyN8GCfMNzTyzZ7bd6vBkCJGWQykYKzYMrMgY5DkCMO8lAE g9uw2Ivcq5p2Vq8RP8H17QIofJ/YO1FQGgzIm83htFBr3q/7oJzb3kjhFFBcMu5t9Et0uWTk8 LIGiwX4QhXiwx/Nb90mplSA8XpJwM8G5jTHry7UmWJVhmjI+fYIGpviKncbBKeeBTyV4KuHp3 pZjQemLsKsDURw155fT0Fz+RlceiEZtU3QMvTCe+vxuG9K31TybR6thyyNZuYYuOwm91xjf0g ZQaMCg1nW+SUmUPim X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.17.22 Subject: Re: [lwip-users] How to build LWIP test on linux X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2020 14:34:23 -0000 Am 17.03.2020 um 13:19 schrieb Sachin Gole: > Provided commands doesn't=C2=A0work, Looks like needs to be updated in w= iki > pages or README. Wiki is not from us. Where did you pull your steps from? Why don't you answer to my latest mail where I tried to help you? I'm getting a bit tired of this by now... Regards, Simon > Tested logs are attached. > > On Sun, Mar 15, 2020 at 9:56 PM Sachin Gole > wrote: > > > Using lwip-2.1.2 version, below steps=C2=A0doesn't=C2=A0get compiled= with > these steps. > > rajgad:~/Downloads/lwip-2.1.2$ ls > CHANGELOG =C2=A0CMakeLists.txt =C2=A0COPYING =C2=A0doc =C2=A0FEATURE= S =C2=A0FILES =C2=A0README > =C2=A0src =C2=A0test =C2=A0UPGRADING > rajgad:~/Downloads/lwip-2.1.2$ mkdir build > rajgad:~/Downloads/lwip-2.1.2$ cd build/ > rajgad:~/Downloads/lwip-2.1.2/build$ cmake ../CMakeLists.txt > -DCMAKE_C_COMPILER=3D"/usr/bin/gcc" -DCMAKE_CXX_COMPILER=3D"/usr/bin= /g++" > -- The C compiler identification is GNU 5.4.0 > -- The CXX compiler identification is GNU 5.4.0 > -- Check for working C compiler: /usr/bin/gcc > -- Check for working C compiler: /usr/bin/gcc - works > -- Detecting C compiler ABI info > -- Detecting C compiler ABI info - done > -- Detecting C compile features > -- Detecting C compile features - done > -- Check for working CXX compiler: /usr/bin/g++ > -- Check for working CXX compiler: /usr/bin/g++ - works > -- Detecting CXX compiler ABI info > -- Detecting CXX compiler ABI info - done > -- Detecting CXX compile features > -- Detecting CXX compile features - done > -- Found Doxygen: /usr/bin/doxygen (found version "1.8.11") found > components: doxygen missing components: dot > Doxygen build started > -- Configuring done > -- Generating done > -- Build files have been written to: /home/sachin/Downloads/lwip-2.1= .2 > rajgad:~/Downloads/lwip-2.1.2/build$ > rajgad:~/Downloads/lwip-2.1.2/build$ ls > rajgad:~/Downloads/lwip-2.1.2/build$ cd .. > rajgad:~/Downloads/lwip-2.1.2$ ls > build =C2=A0 =C2=A0 =C2=A0CMakeCache.txt =C2=A0 =C2=A0CMakeDoxygenDe= faults.cmake > =C2=A0cmake_install.cmake =C2=A0COPYING =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0CPackSourceConfig.cmake > =C2=A0FEATURES =C2=A0Makefile =C2=A0src =C2=A0 UPGRADING > CHANGELOG =C2=A0CMakeDoxyfile.in =C2=A0CMakeFiles =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 > =C2=A0CMakeLists.txt =C2=A0 =C2=A0 =C2=A0 CPackConfig.cmake =C2=A0do= c =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 > =C2=A0FILES =C2=A0 =C2=A0 README =C2=A0 =C2=A0test > rajgad:~/Downloads/lwip-2.1.2$ cmake --build . > rajgad:~/Downloads/lwip-2.1.2$=C2=A0 > > New to lwip unix version, not getting unit test executable. > > > On Sat, Mar 14, 2020 at 11:17 PM Sachin Gole > wrote: > > In 2.1.2 version, There is no dev folder to run lwip_unittest > > > ~/Downloads/lwip-2.1.2$ ls > build =C2=A0 =C2=A0 =C2=A0CMakeCache.txt =C2=A0cmake_install.cma= ke =C2=A0COPYING =C2=A0 =C2=A0 =C2=A0 =C2=A0 > =C2=A0 =C2=A0CPackSourceConfig.cmake =C2=A0FEATURES =C2=A0Makefi= le =C2=A0src =C2=A0 UPGRADING > CHANGELOG =C2=A0CMakeFiles =C2=A0 =C2=A0 =C2=A0CMakeLists.txt = =C2=A0 =C2=A0 =C2=A0 > CPackConfig.cmake =C2=A0doc =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FILES =C2=A0 =C2=A0 README =C2=A0= =C2=A0test > > > Great help if you can suggest. > > On Thu, Mar 12, 2020 at 12:05 PM Sachin Gole > wrote: > > Package :=C2=A0lwip_2.1.2.orig source folder > Building test on Linux with following commands > > cmake CMakeLists.txt -DCMAKE_C_COMPILER=3D"/usr/bin/gcc" > -DCMAKE_CXX_COMPILER=3D"/usr/bin/g++" > > How to compile further to get unit test ? > > > I=E2=80=99m protected online with Avast Free Antivirus. Get= it here > =E2=80=94 it=E2=80=99s free forever. > > > > <#m_6405870859724551637_m_-3031064198876534678_m_-7456139197= 348001846_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> > > > > -- > Best regards, > Sachin > 9970501145 > > > > -- > Best regards, > Sachin > 9970501145 > > > > -- > Best regards, > Sachin > 9970501145 > > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users > From MAILER-DAEMON Tue Mar 17 13:26:21 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jEFyv-0001Wz-7a for mharc-lwip-users@gnu.org; Tue, 17 Mar 2020 13:26:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34642) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEFys-0001UA-M2 for lwip-users@nongnu.org; Tue, 17 Mar 2020 13:26:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEFyr-00075l-NN for lwip-users@nongnu.org; Tue, 17 Mar 2020 13:26:18 -0400 Received: from mail-qt1-x82b.google.com ([2607:f8b0:4864:20::82b]:34284) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jEFyr-00071h-H3 for lwip-users@nongnu.org; Tue, 17 Mar 2020 13:26:17 -0400 Received: by mail-qt1-x82b.google.com with SMTP id 10so5017518qtp.1 for ; Tue, 17 Mar 2020 10:26:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=VzGoNaDzo3EFeHEdKtMvDZlVyIj8ez4kebMFY4SU5qI=; b=X9xn9fbNYLquanvRwWV6OAkRpLt1EJYrhNCl0VS9K6pCpRRLD2kZypafNpkGH+Xhsi CbrKMF9w7Z7atpRPmFjfek8kXhFBofvCcAtmi29DqV/iI+tLgCl9q+tr+2oAg3MY0oFl Wlf1szt6h4/xwb4EdDLatpYdgiPBmvU4ek7d3TQYqDpBXTs2XtARG8dAX3IzMVCO5Tka b0LiWBEcNEfbX3eC+YRI6CzdQd1j8NFdZab38HIRJrc9fSkGFSldeiqKEC9HZCoslJS/ rmSJdu534apRYgtXfoIW0wGCXvviLQrqJU6SfkmHoGtkQtTa1+h7cSogVl+HsVlp3uEU nrTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=VzGoNaDzo3EFeHEdKtMvDZlVyIj8ez4kebMFY4SU5qI=; b=naaieRs2k6xPq1rCnxWkjEb0fpiCDJQ+Mi2QOU9cPZWPPsXOVsWR/sEmmSeBZnBgTS jF4PFo6TIrciAAH1tIU+dO38yZtBPSFLpISCutV4PGNl9Jxqf0RJ3gVQ0NYi5X8DT9J+ onOL3ijn/uBVe2aqDdcPA7s1TOFkYn8xq6hcKMD4v9LA8RfXHAj+LCNv7yRg25/NoGcV sJQM5NDtyyYtSog8/UXduwM/H5aTiwqb9ukR0BjPk2UcSRS6gfHw7XZvUwCdyitv9MeV JsBPzQznqx/UMf2CcVbSnwMITaWompg8UTfsRQXUFiuxxqMYolwR8w+zcCP4qqNIFvWg 9Mjg== X-Gm-Message-State: ANhLgQ1ReqCAxyja4bkJIicKDE+0NK4hGjPWvv289GMwL1VhE4auLNHM bhW/m8p39mV9Ub7jvQ/1pU5p3S71PPu7lxNIwUAkT6Mt X-Google-Smtp-Source: ADFU+vuO7aOXqV++6gigpLWS/pTPwaQXdUlhtKL9N+ldBMB0U/pRzbmQxSoHFOYv4k/2mNIsqyGMPkcoIPnX8pycVgE= X-Received: by 2002:aed:234a:: with SMTP id i10mr188499qtc.155.1584465976471; Tue, 17 Mar 2020 10:26:16 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Sachin Gole Date: Tue, 17 Mar 2020 22:56:04 +0530 Message-ID: To: lwip-users@nongnu.org Content-Type: multipart/mixed; boundary="000000000000b0e0e805a1103b07" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::82b Subject: Re: [lwip-users] How to build LWIP test on linux X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2020 17:26:19 -0000 --000000000000b0e0e805a1103b07 Content-Type: multipart/alternative; boundary="000000000000b0e0e505a1103b05" --000000000000b0e0e505a1103b05 Content-Type: text/plain; charset="UTF-8" I have tried steps which you have provided, please see attached logs. --000000000000b0e0e505a1103b05 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

I = have tried steps which you have provided, please see attached logs.



--000000000000b0e0e505a1103b05-- --000000000000b0e0e805a1103b07 Content-Type: application/octet-stream; name="contrib-2_1_0.logs" Content-Disposition: attachment; filename="contrib-2_1_0.logs" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k7w64goc0 c2FjaGluQHNhY2hpbi1WaXJ0dWFsQm94On4vRG93bmxvYWRzJCBjZCBjb250cmliLTIuMS4wLwpz YWNoaW5Ac2FjaGluLVZpcnR1YWxCb3g6fi9Eb3dubG9hZHMvY29udHJpYi0yLjEuMCQgbHMKYWRk b25zICBhcHBzICBDb3Zlcml0eSAgZXhhbXBsZXMgIEZpbGVsaXN0cy5jbWFrZSAgRmlsZWxpc3Rz Lm1rICBwb3J0cwpzYWNoaW5Ac2FjaGluLVZpcnR1YWxCb3g6fi9Eb3dubG9hZHMvY29udHJpYi0y LjEuMCQgCnNhY2hpbkBzYWNoaW4tVmlydHVhbEJveDp+L0Rvd25sb2Fkcy9jb250cmliLTIuMS4w JCBjZCBwb3J0cy91bml4L2NoZWNrLwpzYWNoaW5Ac2FjaGluLVZpcnR1YWxCb3g6fi9Eb3dubG9h ZHMvY29udHJpYi0yLjEuMC9wb3J0cy91bml4L2NoZWNrJCBscwpDTWFrZUxpc3RzLnR4dCAgY29u ZmlnLmggIE1ha2VmaWxlICBSRUFETUUKc2FjaGluQHNhY2hpbi1WaXJ0dWFsQm94On4vRG93bmxv YWRzL2NvbnRyaWItMi4xLjAvcG9ydHMvdW5peC9jaGVjayQgbWtkaXIgYnVpbGQKc2FjaGluQHNh Y2hpbi1WaXJ0dWFsQm94On4vRG93bmxvYWRzL2NvbnRyaWItMi4xLjAvcG9ydHMvdW5peC9jaGVj ayQgY2QgYnVpbGQvCnNhY2hpbkBzYWNoaW4tVmlydHVhbEJveDp+L0Rvd25sb2Fkcy9jb250cmli LTIuMS4wL3BvcnRzL3VuaXgvY2hlY2svYnVpbGQkIGNtYWtlIC4uCi0tIFRoZSBDIGNvbXBpbGVy IGlkZW50aWZpY2F0aW9uIGlzIEdOVSA3LjUuMAotLSBDaGVjayBmb3Igd29ya2luZyBDIGNvbXBp bGVyOiAvdXNyL2Jpbi9jYwotLSBDaGVjayBmb3Igd29ya2luZyBDIGNvbXBpbGVyOiAvdXNyL2Jp bi9jYyAtLSB3b3JrcwotLSBEZXRlY3RpbmcgQyBjb21waWxlciBBQkkgaW5mbwotLSBEZXRlY3Rp bmcgQyBjb21waWxlciBBQkkgaW5mbyAtIGRvbmUKLS0gRGV0ZWN0aW5nIEMgY29tcGlsZSBmZWF0 dXJlcwotLSBEZXRlY3RpbmcgQyBjb21waWxlIGZlYXR1cmVzIC0gZG9uZQpDTWFrZSBFcnJvciBh dCBDTWFrZUxpc3RzLnR4dDozMCAoaW5jbHVkZSk6CiAgaW5jbHVkZSBjb3VsZCBub3QgZmluZCBs b2FkIGZpbGU6CgogICAgL2hvbWUvc2FjaGluL0Rvd25sb2Fkcy9jb250cmliLTIuMS4wL3BvcnRz L3VuaXgvY2hlY2svLi4vLi4vLi4vLi4vbHdpcC9zcmMvRmlsZWxpc3RzLmNtYWtlCgoKQ01ha2Ug RXJyb3IgYXQgQ01ha2VMaXN0cy50eHQ6MzEgKGluY2x1ZGUpOgogIGluY2x1ZGUgY291bGQgbm90 IGZpbmQgbG9hZCBmaWxlOgoKICAgIC9ob21lL3NhY2hpbi9Eb3dubG9hZHMvY29udHJpYi0yLjEu MC9wb3J0cy91bml4L2NoZWNrLy4uLy4uLy4uLy4uL2x3aXAvdGVzdC91bml0L0ZpbGVsaXN0cy5j bWFrZQoKCkNNYWtlIEVycm9yIGF0IENNYWtlTGlzdHMudHh0OjMzIChhZGRfZXhlY3V0YWJsZSk6 CiAgYWRkX2V4ZWN1dGFibGUgY2FsbGVkIHdpdGggaW5jb3JyZWN0IG51bWJlciBvZiBhcmd1bWVu dHMKCgpDTWFrZSBFcnJvciBhdCBDTWFrZUxpc3RzLnR4dDozNCAodGFyZ2V0X2luY2x1ZGVfZGly ZWN0b3JpZXMpOgogIENhbm5vdCBzcGVjaWZ5IGluY2x1ZGUgZGlyZWN0b3JpZXMgZm9yIHRhcmdl dCAibHdpcF91bml0dGVzdHMiIHdoaWNoIGlzIG5vdAogIGJ1aWx0IGJ5IHRoaXMgcHJvamVjdC4K CgpDTWFrZSBFcnJvciBhdCBDTWFrZUxpc3RzLnR4dDozNSAodGFyZ2V0X2NvbXBpbGVfb3B0aW9u cyk6CiAgQ2Fubm90IHNwZWNpZnkgY29tcGlsZSBvcHRpb25zIGZvciB0YXJnZXQgImx3aXBfdW5p dHRlc3RzIiB3aGljaCBpcyBub3QKICBidWlsdCBieSB0aGlzIHByb2plY3QuCgoKQ01ha2UgRXJy b3IgYXQgQ01ha2VMaXN0cy50eHQ6MzYgKHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKToKICBD YW5ub3Qgc3BlY2lmeSBjb21waWxlIGRlZmluaXRpb25zIGZvciB0YXJnZXQgImx3aXBfdW5pdHRl c3RzIiB3aGljaCBpcyBub3QKICBidWlsdCBieSB0aGlzIHByb2plY3QuCgoKQ01ha2UgRXJyb3Ig YXQgQ01ha2VMaXN0cy50eHQ6NDAgKHRhcmdldF9saW5rX2xpYnJhcmllcyk6CiAgQ2Fubm90IHNw ZWNpZnkgbGluayBsaWJyYXJpZXMgZm9yIHRhcmdldCAibHdpcF91bml0dGVzdHMiIHdoaWNoIGlz IG5vdAogIGJ1aWx0IGJ5IHRoaXMgcHJvamVjdC4KCgotLSBDb25maWd1cmluZyBpbmNvbXBsZXRl LCBlcnJvcnMgb2NjdXJyZWQhClNlZSBhbHNvICIvaG9tZS9zYWNoaW4vRG93bmxvYWRzL2NvbnRy aWItMi4xLjAvcG9ydHMvdW5peC9jaGVjay9idWlsZC9DTWFrZUZpbGVzL0NNYWtlT3V0cHV0Lmxv ZyIuCnNhY2hpbkBzYWNoaW4tVmlydHVhbEJveDp+L0Rvd25sb2Fkcy9jb250cmliLTIuMS4wL3Bv cnRzL3VuaXgvY2hlY2svYnVpbGQkIAoK --000000000000b0e0e805a1103b07 Content-Type: application/octet-stream; name="lwip_2_1_2.logs" Content-Disposition: attachment; filename="lwip_2_1_2.logs" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k7w64goi1 c2FjaGluQHNhY2hpbi1WaXJ0dWFsQm94On4vRG93bmxvYWRzL2x3aXAtMi4xLjIkIApzYWNoaW5A c2FjaGluLVZpcnR1YWxCb3g6fi9Eb3dubG9hZHMvbHdpcC0yLjEuMiQgbHMKQ0hBTkdFTE9HICBD TWFrZUxpc3RzLnR4dCAgQ09QWUlORyAgZG9jICBGRUFUVVJFUyAgRklMRVMgIFJFQURNRSAgc3Jj ICB0ZXN0ICBVUEdSQURJTkcKc2FjaGluQHNhY2hpbi1WaXJ0dWFsQm94On4vRG93bmxvYWRzL2x3 aXAtMi4xLjIkIG1rZGlyIGJ1aWxkCnNhY2hpbkBzYWNoaW4tVmlydHVhbEJveDp+L0Rvd25sb2Fk cy9sd2lwLTIuMS4yJCBjZCBidWlsZC8Kc2FjaGluQHNhY2hpbi1WaXJ0dWFsQm94On4vRG93bmxv YWRzL2x3aXAtMi4xLjIvYnVpbGQkIApzYWNoaW5Ac2FjaGluLVZpcnR1YWxCb3g6fi9Eb3dubG9h ZHMvbHdpcC0yLjEuMi9idWlsZCQgY21ha2UgLi4KLS0gVGhlIEMgY29tcGlsZXIgaWRlbnRpZmlj YXRpb24gaXMgR05VIDcuNS4wCi0tIFRoZSBDWFggY29tcGlsZXIgaWRlbnRpZmljYXRpb24gaXMg R05VIDcuNS4wCi0tIENoZWNrIGZvciB3b3JraW5nIEMgY29tcGlsZXI6IC91c3IvYmluL2NjCi0t IENoZWNrIGZvciB3b3JraW5nIEMgY29tcGlsZXI6IC91c3IvYmluL2NjIC0tIHdvcmtzCi0tIERl dGVjdGluZyBDIGNvbXBpbGVyIEFCSSBpbmZvCi0tIERldGVjdGluZyBDIGNvbXBpbGVyIEFCSSBp bmZvIC0gZG9uZQotLSBEZXRlY3RpbmcgQyBjb21waWxlIGZlYXR1cmVzCi0tIERldGVjdGluZyBD IGNvbXBpbGUgZmVhdHVyZXMgLSBkb25lCi0tIENoZWNrIGZvciB3b3JraW5nIENYWCBjb21waWxl cjogL3Vzci9iaW4vYysrCi0tIENoZWNrIGZvciB3b3JraW5nIENYWCBjb21waWxlcjogL3Vzci9i aW4vYysrIC0tIHdvcmtzCi0tIERldGVjdGluZyBDWFggY29tcGlsZXIgQUJJIGluZm8KLS0gRGV0 ZWN0aW5nIENYWCBjb21waWxlciBBQkkgaW5mbyAtIGRvbmUKLS0gRGV0ZWN0aW5nIENYWCBjb21w aWxlIGZlYXR1cmVzCi0tIERldGVjdGluZyBDWFggY29tcGlsZSBmZWF0dXJlcyAtIGRvbmUKLS0g Rm91bmQgRG94eWdlbjogL3Vzci9iaW4vZG94eWdlbiAoZm91bmQgdmVyc2lvbiAiMS44LjEzIikg Zm91bmQgY29tcG9uZW50czogIGRveHlnZW4gbWlzc2luZyBjb21wb25lbnRzOiAgZG90CkRveHln ZW4gYnVpbGQgc3RhcnRlZAotLSBDb25maWd1cmluZyBkb25lCi0tIEdlbmVyYXRpbmcgZG9uZQot LSBCdWlsZCBmaWxlcyBoYXZlIGJlZW4gd3JpdHRlbiB0bzogL2hvbWUvc2FjaGluL0Rvd25sb2Fk cy9sd2lwLTIuMS4yL2J1aWxkCnNhY2hpbkBzYWNoaW4tVmlydHVhbEJveDp+L0Rvd25sb2Fkcy9s d2lwLTIuMS4yL2J1aWxkJCBjbWFrZSAtLWJ1aWxkIC4Kc2FjaGluQHNhY2hpbi1WaXJ0dWFsQm94 On4vRG93bmxvYWRzL2x3aXAtMi4xLjIvYnVpbGQkIApzYWNoaW5Ac2FjaGluLVZpcnR1YWxCb3g6 fi9Eb3dubG9hZHMvbHdpcC0yLjEuMi9idWlsZCQgCnNhY2hpbkBzYWNoaW4tVmlydHVhbEJveDp+ L0Rvd25sb2Fkcy9sd2lwLTIuMS4yL2J1aWxkJCAKCg== --000000000000b0e0e805a1103b07-- From MAILER-DAEMON Wed Mar 18 04:33:55 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jEU9D-000116-9y for mharc-lwip-users@gnu.org; Wed, 18 Mar 2020 04:33:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44387) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEU9A-0000x5-KX for lwip-users@nongnu.org; Wed, 18 Mar 2020 04:33:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEU99-0005cR-6X for lwip-users@nongnu.org; Wed, 18 Mar 2020 04:33:52 -0400 Received: from mail1.bemta26.messagelabs.com ([85.158.142.112]:43036) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jEU98-0005VB-Ub for lwip-users@nongnu.org; Wed, 18 Mar 2020 04:33:51 -0400 Received: from [100.113.7.184] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-1.bemta.az-b.eu-central-1.aws.symcld.net id 0A/A2-11388-34BD17E5; Wed, 18 Mar 2020 08:26:43 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrEKsWRWlGSWpSXmKPExsUStmeLs67T7cI 4g8n/9C0ezZ/O5sDo8eTaZqYAxijWzLyk/IoE1oxz3fuZC76qVbyft5GlgfGSQhcjJ4eQQJ7E u9XT2EBsCYF6iYVPprB2MXIA2YYSr3/FQoSNJVr/rGGBsK0k3h+9ClWuI7HwwQuouLbEio8T2 UBahQUsJX52pYKERQQkJeY9eM4GsekFk8SjLXogNhvQ9O5vzWCtvAIOEs8+z2AHsVkEVCVOvv vKBGKLCoRLLFi/gw2iRlDi5MwnLCDjOQUCJbrXWoOEmQVCJV5em8IEYYtL3Hoyn2kCo9AsJB2 zkJTNQlIGYZtJzNv8kBnClpdo3jobyOYAstUklrUqIQsvYGRfxWiRVJSZnlGSm5iZo2toYKBr aGisa6JrZqaXWKWbpJdaqpucmldSlAiU1EssL9YrrsxNzknRy0st2cQIjKKUQhanHYx/17zXO 8QoycGkJMr7+VphnBBfUn5KZUZicUZ8UWlOavEhRhkODiUJ3ic3gHKCRanpqRVpmTnAiIZJS3 DwKInwcgOjWoi3uCAxtzgzHSJ1itGS4+OqJYuYOb6DyZvvgaQQS15+XqqUOO+Pm0ANAiANGaV 5cONgSecSo6yUMC8jAwODEE9BalFuZgmq/CtGcQ5GJWHeT7eApvBk5pXAbX0FdBAT0EEVG/JB DipJREhJNTDVLV++VOfse5/LR057qMW/XaL1775bz8fUDDZfZq74np1Lgt4tdLyX9Xf32voE1 XXCUgcti667V4m87hTZ8P/7osNa7Gdz+hdVh77UDvrGKa89L/Rda63HorQDR53u2hbptglJzc wQWmU5gXntnjX+pYwHAxx3+M38M8XKx2fZwRje6ZI8sw/J2fd+bY8zK1x6QH7idYH1OiYS7b/ eFbN3ltb6Tdxa+nDtEfUPOa0izWxrw2Omu3JOZth66oPacf7mgC8z5x7q4xXUqMt1ex/8+ViA NOuh5A7P9MLKvoxZHWtShFbclJ6+uiRH9PCpELnJZan6zvwc2Q3Sh04enpGzQdw7QthYW0rdq vHhOyWW4oxEQy3mouJEACMyCDq1AwAA X-Env-Sender: prvs=134657a0ca=david.lockyer@chronos.co.uk X-Msg-Ref: server-17.tower-248.messagelabs.com!1584520002!349674!1 X-Originating-IP: [86.188.180.67] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.50.1; banners=chronos.co.uk,-,- X-VirusChecked: Checked Received: (qmail 20591 invoked from network); 18 Mar 2020 08:26:42 -0000 Received: from unknown (HELO chronos.co.uk) (86.188.180.67) by server-17.tower-248.messagelabs.com with SMTP; 18 Mar 2020 08:26:42 -0000 Received: by chronos.co.uk (86.188.180.67) with ESMTPA id md50001242409.msg; Wed, 18 Mar 2020 08:26:41 +0000 X-MDArrival-Date: Wed, 18 Mar 2020 08:26:41 +0000 X-Authenticated-Sender: david.lockyer@chronos.co.uk X-Return-Path: prvs=134657a0ca=david.lockyer@chronos.co.uk X-Envelope-From: david.lockyer@chronos.co.uk X-MDaemon-Deliver-To: lwip-users@nongnu.org To: lwip-users@nongnu.org References: From: David Lockyer Message-ID: Date: Wed, 18 Mar 2020 08:26:40 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/alternative; boundary="------------2D16827D839A5109795770EE" Content-Language: en-US X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 85.158.142.112 Subject: Re: [lwip-users] How to build LWIP test on linux X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Mar 2020 08:33:54 -0000 This is a multi-part message in MIME format. --------------2D16827D839A5109795770EE Content-Type: text/plain; charset=utf-8; format=flowed Content-Length: 1610 Content-Transfer-Encoding: quoted-printable Hi Sachin, I guess if you are new to software development this may seem confusing, but the output does spell out what is wrong, looking at your output logs: CMake Error at CMakeLists.txt:30 (include): =C2=A0 include could not find load file: /home/sachin/Downloads/contrib-2.1.0/ports/unix/check/../../../..//*lwip*//src/Filelists.cmake You can see the problem, it can't find directory lwip in Downloads, so either rename your lwip-2.1.2 directory to lwip, or modify /home/sachin/Downloads/contrib-2.1.0/ports/unix/check/CMakeLists.txt i.e. change line: set(LWIP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../lwip) to set(LWIP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../lwip-2.1.2) Best regards, David On 17/03/2020 17:26, Sachin Gole wrote: > > I have tried steps which you have provided, please see attached logs. > > > > > ______________________________________________________________________ > This email has been scanned by the Symantec Email Security.cloud service. > For more information please visit http://www.symanteccloud.com > ______________________________________________________________________ > > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users ______________________________________________________________________ This email has been scanned by the Symantec Email Security.cloud service. For more information please visit http://www.symanteccloud.com ______________________________________________________________________ --------------2D16827D839A5109795770EE Content-Type: text/html; charset=utf-8 Content-Length: 3943 Content-Transfer-Encoding: quoted-printable

Hi Sachin,

I guess if you are new to software development this may seem confusing, but the output does spell out what is wrong, looking at your output logs:

CMake Error at CMakeLists.txt:30 (include):
=C2=A0 include could not find load file:

=C2=A0=C2=A0=C2=A0 /home/sachin/Downloads/contrib-2.1.0/ports/unix/check/../../../../lwip/src/Filelists.cmake

You can see the problem, it can't find directory lwip in Downloads, so either rename your lwip-2.1.2 directory to lwip, or modify

/home/sachin/Downloads/contrib-2.1.0/ports/unix/check/CMakeLists.txt

i.e. change line:

set(LWIP_DIR=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ${CMAKE_CURRENT_SOURCE_DIR}/../../../../lwip)

to

set(LWIP_DIR=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ${CMAKE_CURRENT_SOURCE_DIR}/../../../../lwip-2.1.2)

Best regards,
David

On 17/03/2020 17:26, Sachin Gole wrote:

I have tried steps which you have provided, please see attached logs.




______________________________________________________________________
This email has been scanned by the Symantec Email Security.cloud service.
For more information please visit http://www.symanteccloud.com
______________________________________________________________________

_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/lwip-users

______________________________________________________________________
This email has been scanned by the Symantec Email Security.cloud service.
For more information please visit http://www.symanteccloud.com
______________________________________________________________________
--------------2D16827D839A5109795770EE-- From MAILER-DAEMON Wed Mar 18 06:11:54 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jEVg2-0001XR-8q for mharc-lwip-users@gnu.org; Wed, 18 Mar 2020 06:11:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36663) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEVg0-0001XL-Bs for lwip-users@nongnu.org; Wed, 18 Mar 2020 06:11:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEVfv-0003ly-Aq for lwip-users@nongnu.org; Wed, 18 Mar 2020 06:11:52 -0400 Received: from mout.gmx.net ([212.227.17.20]:58237) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jEVfu-0003hV-1o for lwip-users@nongnu.org; Wed, 18 Mar 2020 06:11:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1584526304; bh=pENORSQn4l05mDtkEQjG+lJU6ve5F1W+8BuAEvGyWn0=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=VCx86fPF33qNJhF5kQj37C1a23QB95j9thD0eKywAk5DIatWAHjh4ttVb5hmgBqJ1 YtKZHfiRSGiolpozlsRgAS32qw7fGZttOQ1XHldyHLY5fvpNfC5pF11MmN8orLhD2P tio6chUygmrUxjdgzF6eoL6k3pkfMZXwcY547iMc= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.61] ([176.199.210.162]) by mail.gmx.com (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MtfJX-1jZUCt0Dq3-00v8lB for ; Wed, 18 Mar 2020 11:11:44 +0100 To: Mailing list for lwIP users References: From: "goldsimon@gmx.de" Autocrypt: addr=goldsimon@gmx.de; keydata= mQENBFDPe/sBCADdhO6Fn+7pnHtmEjiWs14u+n5cFQAhvjZ6EiZLwh0gMl5vYT1HDJ+8HTUA h0xMgXQ2Tsxzizt1TTBWn5DK74SjlIx/dYpM17OHmu6wuIbexKN6hEJSFZjtRlbIlWqEB8px EVeU7//1V/Ukj3QAI3yOrrhIg/s9jmuxMo05fjOsYEkub9PHmvFFdJ7KuApsVss4QRZIpawq HRFv9gY+4DrOvhwMZk6CHlvlAOgqlsMftRMl4699ww2NNbtU2U8n9XFlf2CQxkYAzIJC27Rc +83q+d5xbtcqzxcHhsFXelNTB09ZHEti7NpZZpnP4siVEa8p9BY8n11Nr/97c8lyZUCbABEB AAG0JFNpbW9uIEdvbGRzY2htaWR0IDxnb2xkc2ltb25AZ214LmRlPokBOAQTAQIAIgUCUM97 +wIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQHWthwbhCmfU0tQf+L0m7VG1LNzpt Yvx/1ZZFbqlggespnVuc6HPYqtmbIWxHmlQZgM6Pn61rUWmUl8ilWdcCw8Wuam2pEUSBzlZF z/738kcazWv9SRSbr7ULQi/d/gfOtcfAVUMkTF9jhWpAYR4zmzpR31mvs6Ltfh5rw/bsVJ+/ QbfWLJqdbRG4NykfuGXafQ+o+SDlMlcaBe49whhJsQcCBrvwixeNChUOkV3TY+jgVu4u1MEY c1aJKgVJkBVkAEsJXWFHTkF3TvJf5KdLLGbVBq3I6ItrLgAowI0kC4MzU3eNsCBEroBGJl2/ 7fmut8i+tQNiDfOVP4EHaSD86utnyawQev0TZnY2Qg== Message-ID: Date: Wed, 18 Mar 2020 11:11:38 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:9XtV+JTE+3iNTsFTdLyNTnjvxEywPvvJ9S9tH4+5ClbYEY7+zYV 7iDOAo8iQroQX1CaXB61RiRETzvHof+7vDBMOOH4iUjEQRCyn+NEO8GkB96/B3SpTsrqhF4 hM4mfOkmpL4pLRpV27P5zuuIumzhj1KXrxlGbA/zOeHkIJ2+jds7PhaXl848pZeM8IJqLmW 5eyMmcE2i7tleDFMTmV/A== X-UI-Out-Filterresults: notjunk:1;V03:K0:uxn8SXtfSFE=:Y63dXtWop85ns42aZPR9Lw efFbHAplahASFhd17K3Vbm2J1s1MWAMyWc8vs43aogg+XFpC430ADdvOpvMYGBRUyPZb6vvGP 0Agjw4Xp5di+jRYB/MFLE1muurB8Sd9K1qGlw3XH5M8SF+H7afX3H9NG1plEz+rBMNrnr0PbY kxAH+a6WkSOpiUA/iwamdARuKPA/5VImbw+vb51LnG3rtJitE3+PzmeDoD8585lLNLLIoOnpv zGswo8y0TGo2ty1hClYWFaiQo3QLiX2kFWHf3h6d6ZgtyYmLdvmUBe2dbd3DvsxGaEOzak9ML mAffVSPIM/qBQoXBnjFIGNHTh3bkzhkIuoNkUcv5qP/ussc2P+ZcO+EWm0tJHbO2lH2PCIwWX OFZuXUyl25GuhM/wRYR5XUnPUGjiUKak/Ygcl2tvWExVMufZJjAB4jGNb0F/O8hztC6akhkMR lWTJDdcwRd6AwRpTNPxRcbBS5icMSTRvEDdgKwE4PwgBDw/GxPCAj5biiO29l9qLe4HCS0KeZ p8OuYtb+3pDUkkbA7AcicJrVoxr4qtAwfGHGuAtbhBU0EkwemFHXm45LM4lG+mM91vEbHjIi2 FV213O1sBvEDBPo/SD6qTO+aZslrUxMgt+87hIL8Xm7YfQ1cebCgnGxAa5HODv6G35To/WJZS jVlUIcLg9/J71lsDcvZZVfJeiFKQXw3dJM5RJQU1LGXZgjXzD5LlHxmIlHR5zypEh6jz3V432 ShiVjneftVJutK6b+q5PvasvpWtIsEidxpNDpsgNT1IhlIHGg2PKte8ctieLNmbQs8SdXfbic qu+Y0fTUDvOImJYMHwu18WiJRuOOS70iCJ5Xv7WhitT2Yb4VcLE9rIbs6MjlaHkTbeuDlisba n/Dz4x+dzLpNP3PT+mfUzC5NoKA3HbNUlv+j8s943z+tkeXqtX9RWl+7y2S2GkxgC+e2akBGj ObvL/O18AHRPAn1KVVdmi/AdOdCUPmD1TFymp9X36Nx3oT2Q0Jhev1rs2vBhX9wkfml8O19qC uaicZhoOMRUWEZT2hhOkdb0uLWKLtSUbXVzEecRcUyi/PTJX2O/z826kl0a5Qm8ioWhgB8AwU LNHPCL0yR0BHrvjLXnCfGnufJHldK/KGOK7p0zHp13JBnuS0zQcBber8IBFpDURA6XkkuxB1r Qsg6N1OZr0Hrp2ESzKsUyU1sbaB/vPfuO4RHE5HkEbbyNzJRfwCM8fWNJANiLVGyrn7fFvoEy Lny/o1Fxi4slP2qgl X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.17.20 Subject: Re: [lwip-users] How to build LWIP test on linux X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Mar 2020 10:11:53 -0000 Am 18.03.2020 um 09:26 schrieb David Lockyer: > Hi Sachin, > > I guess if you are new to software development this may seem confusing, > but the output does spell out what is wrong, looking at your output logs= : > > CMake Error at CMakeLists.txt:30 (include): > =C2=A0 include could not find load file: > > =C2=A0=C2=A0=C2=A0 > /home/sachin/Downloads/contrib-2.1.0/ports/unix/check/../../../..//*lwip= *//src/Filelists.cmake Oh, I just now see that you're using 2.1.x, where contrib is still separate. Got to make the 2.2.0 release soon... Cheers, Simon > > You can see the problem, it can't find directory lwip in Downloads, so > either rename your lwip-2.1.2 directory to lwip, or modify > > /home/sachin/Downloads/contrib-2.1.0/ports/unix/check/CMakeLists.txt > > i.e. change line: > > set(LWIP_DIR=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ${CMAKE_CUR= RENT_SOURCE_DIR}/../../../../lwip) > > to > > set(LWIP_DIR=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ${CMAKE_CUR= RENT_SOURCE_DIR}/../../../../lwip-2.1.2) > > Best regards, > David > > On 17/03/2020 17:26, Sachin Gole wrote: >> >> I have tried steps which you have provided, please see attached logs. >> >> >> >> >> ______________________________________________________________________ >> This email has been scanned by the Symantec Email Security.cloud servic= e. >> For more information please visit http://www.symanteccloud.com >> ______________________________________________________________________ >> >> _______________________________________________ >> lwip-users mailing list >> lwip-users@nongnu.org >> https://lists.nongnu.org/mailman/listinfo/lwip-users > > ______________________________________________________________________ > This email has been scanned by the Symantec Email Security.cloud service= . > For more information please visit http://www.symanteccloud.com > ______________________________________________________________________ > > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users > From MAILER-DAEMON Wed Mar 18 06:43:41 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jEWAn-0000Bt-N3 for mharc-lwip-users@gnu.org; Wed, 18 Mar 2020 06:43:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51635) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEWAl-0000Bk-I4 for lwip-users@nongnu.org; Wed, 18 Mar 2020 06:43:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEWAk-0007wl-5A for lwip-users@nongnu.org; Wed, 18 Mar 2020 06:43:39 -0400 Received: from mail-qk1-x72c.google.com ([2607:f8b0:4864:20::72c]:38694) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jEWAj-0007uj-Uz for lwip-users@nongnu.org; Wed, 18 Mar 2020 06:43:38 -0400 Received: by mail-qk1-x72c.google.com with SMTP id h14so37823173qke.5 for ; Wed, 18 Mar 2020 03:43:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=w8cSVdJlhtHt0B0AfwV1Zp2tvSVueXF4IKylmWvnLPg=; b=hWfSOgV/H5jn7SSyyJrQykhTXu9ayUzz6VPnfVBYqbLEm5BNFkJF9HO6Qc+syD2mV6 OECJuOu8nDEVXBq7FCmiRTYr+0y4yeeLl8qmCC2+3bbYlELjxAjKBU4m5sd357n/ALxO Nx75KZhtRrLOmJo3hnIbUGcN/4SOzvDyC/rgz9O68PxUt1q016wo2O5gTxRMnBe/5rLt BsQXZfhWb22gcPYXkEfY4LwVnHCRmtJatbTzunhDyQ37j3oyB4UlqTp3DD2CculPWtHM tMht5GlZOUFM9USD+lvoDxgJsxuzNKCh2J0x5/4j5Sa6VdhOj67uvcuO8HXFjUXiY9z0 cw1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=w8cSVdJlhtHt0B0AfwV1Zp2tvSVueXF4IKylmWvnLPg=; b=dORrdc9hcCMT79wOXoHROf06QCUwnc5+GOiNU+71oFUhk9X9ELumn8hcIMXUrGWs/H JqVFX3gZwqEyTAk/It/oJuyDLX53b7DaoaUHIXwV5MiRAIygOysK5MvQNRzVcCZ2Upas beqD5M8gx5CRWUa8zCXj++U2tRUQJI9hM3hYxTjTL8GRzlFfNDrwd8dVGsYPf64/FUOQ pxfda6kqYlERquW5Y1kjWurDcHCfFtMC4TC6aekJfgEI0ewWUUcXjVg+deEa8G6vtYwe qFwdkXOroim2VfaZ4gUCxvVdjhnJ6m42U79+XqAdMd3CpvR0eB9dJx4L2U1CWFm9yzCF vfvQ== X-Gm-Message-State: ANhLgQ2mUTKtUrqYZa33DiQlkBx3mVse9zQ/Z2u0r6FUrwoNvmwA4VCb u5Ti02bDyqqIZqCmy4IKXsbStCnVkUwi2temclzCMjfWX5U= X-Google-Smtp-Source: ADFU+vsR6LRX8uI8yac4fx6Pn0MLTZQ52kmyHculyoaL6dPQ2oBw1RHpODWmfOQx0JIgqDKkPkAT2BGZrtRObPZau+Q= X-Received: by 2002:a37:9c07:: with SMTP id f7mr3314658qke.349.1584528216366; Wed, 18 Mar 2020 03:43:36 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Sachin Gole Date: Wed, 18 Mar 2020 16:13:24 +0530 Message-ID: To: lwip-users@nongnu.org Content-Type: multipart/alternative; boundary="0000000000007925d005a11eb95b" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::72c Subject: Re: [lwip-users] How to build LWIP test on linux X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Mar 2020 10:43:41 -0000 --0000000000007925d005a11eb95b Content-Type: text/plain; charset="UTF-8" Hi David, Thanks for your appropriate help, now I am able to build and run lwip unit test. > sachin@sachin-VirtualBox:~/Downloads/contrib-2.1.0/ports/unix/check/build$ ./lwip_unittests Running suite(s): IPv4 IPv6 UDP TCP TCP_OOS DEF MEM NETIF PBUF TIMERS ETHARP DHCP MDNS MQTT SOCKETS 100%: Checks: 108, Failures: 0, Errors: 0 Is there any way to enable test logs ? Is there any way to test individual unit test ? --0000000000007925d005a11eb95b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi David,

Thanks for your appropriate=C2=A0help, now I am able to b= uild and run lwip unit test.

sachin@sachin-VirtualBox:~/Downloads/cont= rib-2.1.0/ports/unix/check/build$ ./lwip_unittests
Running suite(s): IP= v4
=C2=A0IPv6
=C2=A0UDP
=C2=A0TCP
=C2=A0TCP_OOS
=C2=A0DEF=C2=A0MEM
=C2=A0NETIF
=C2=A0PBUF
=C2=A0TIMERS
=C2=A0ETHARP
= =C2=A0DHCP
=C2=A0MDNS
=C2=A0MQTT
=C2=A0SOCKETS
100%: Checks: 10= 8, Failures: 0, Errors: 0


Is there any way to enabl= e test logs ?
Is there any way to test individual=C2=A0unit test ?

--0000000000007925d005a11eb95b-- From MAILER-DAEMON Wed Mar 18 09:55:44 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jEZAe-0007hC-Cx for mharc-lwip-users@gnu.org; Wed, 18 Mar 2020 09:55:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44472) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEZAb-0007ga-TL for lwip-users@nongnu.org; Wed, 18 Mar 2020 09:55:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEZAa-0006tk-U8 for lwip-users@nongnu.org; Wed, 18 Mar 2020 09:55:41 -0400 Received: from mout.gmx.net ([212.227.17.22]:50389) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jEZAa-0006jQ-L6 for lwip-users@nongnu.org; Wed, 18 Mar 2020 09:55:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1584539739; bh=FT6oTCr/Kq+zP4/eUpMZZq6GQfxiB27qKtlL2Ow0WLg=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=l71dhBoL+MjF2Ri86RXDhaNVPvKT0KMa8pQquPQXWAuShewIOG6VHfYiLCFacn+uh 5Vcj7wpepLf+lyAqufsMkLI/jW6DXSU/MaFq/fQ60+FdgbS6Rem2Ch8oRr4730sFtS YW/mc2UcBu0TJWRKuLQvuVJVHaV9NbkPnjufAWa8= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.61] ([176.199.210.162]) by mail.gmx.com (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N8XU1-1jJQoE08mn-014RgV for ; Wed, 18 Mar 2020 14:55:39 +0100 To: Mailing list for lwIP users References: From: "goldsimon@gmx.de" Autocrypt: addr=goldsimon@gmx.de; keydata= mQENBFDPe/sBCADdhO6Fn+7pnHtmEjiWs14u+n5cFQAhvjZ6EiZLwh0gMl5vYT1HDJ+8HTUA h0xMgXQ2Tsxzizt1TTBWn5DK74SjlIx/dYpM17OHmu6wuIbexKN6hEJSFZjtRlbIlWqEB8px EVeU7//1V/Ukj3QAI3yOrrhIg/s9jmuxMo05fjOsYEkub9PHmvFFdJ7KuApsVss4QRZIpawq HRFv9gY+4DrOvhwMZk6CHlvlAOgqlsMftRMl4699ww2NNbtU2U8n9XFlf2CQxkYAzIJC27Rc +83q+d5xbtcqzxcHhsFXelNTB09ZHEti7NpZZpnP4siVEa8p9BY8n11Nr/97c8lyZUCbABEB AAG0JFNpbW9uIEdvbGRzY2htaWR0IDxnb2xkc2ltb25AZ214LmRlPokBOAQTAQIAIgUCUM97 +wIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQHWthwbhCmfU0tQf+L0m7VG1LNzpt Yvx/1ZZFbqlggespnVuc6HPYqtmbIWxHmlQZgM6Pn61rUWmUl8ilWdcCw8Wuam2pEUSBzlZF z/738kcazWv9SRSbr7ULQi/d/gfOtcfAVUMkTF9jhWpAYR4zmzpR31mvs6Ltfh5rw/bsVJ+/ QbfWLJqdbRG4NykfuGXafQ+o+SDlMlcaBe49whhJsQcCBrvwixeNChUOkV3TY+jgVu4u1MEY c1aJKgVJkBVkAEsJXWFHTkF3TvJf5KdLLGbVBq3I6ItrLgAowI0kC4MzU3eNsCBEroBGJl2/ 7fmut8i+tQNiDfOVP4EHaSD86utnyawQev0TZnY2Qg== Message-ID: <2af7711c-0121-a72e-8874-9ad9e1dedb9d@gmx.de> Date: Wed, 18 Mar 2020 14:55:33 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:JQXVXUhsMiy2K32EvvNzbqxsfqRjjuIk+QMhkzXg/p3eNlsgqZJ Wfxs2BY5lpzJwaVZFdh49rLb2dpmypsC5tA9TutNWUsRpoLf9yEV2JIt8+e6OQFhuP/AyPq zGqzXhhtHaTo0Uf9DGFAmLAXKjDJtRAh4gn8ESchtuRQPeb9ctg1RckfhmC6by1flifOJr9 fPv0KCWEHs4bc8cc4+Zdw== X-UI-Out-Filterresults: notjunk:1;V03:K0:q0O9z7f0khI=:KJZDzAN8W3TirZKfAQ5bLY Llqad0/NgDcMZchva6OUnzN/Cqf0k9bmmL7TCNA2ZyhzUpBXrU9Wsf4AxWMVbAD3jTflDOwv1 kxDWfajjtoMZ028kF3iM/xAh85e5TDF26KpsiryYWnk20v6Ecl6u3J9oFRfvY7yqIXmcyn8ln nWmJBvpbidR4bcsQd7ch51EeHDoaglcjsSgU0ZxrtRt2Aj3XQVmVnsw4NcszuBkHjZTy723w6 UgQP1RQb8hJVjMViUNBtAGco0HukPXVlqGyrXAoBrrWCOG9GXrYyDSY3ca5/F7xFnUQPeT3kV zYWpIfelAHB8W+h11IWw/iFBJKUYGN6NPiFi//OTVbAGtdOLle+c+SAIlCDimTNX7hxyIk2gq xuoMKeYtc1rwd94XQP+dYjGJO28Cq5qMpA5h98CpqsGs8SYC1FAJljoQFxoLrCGpmBTtZrjJt rUR4brwTSJ2SRvWXFHoVrplSh/MjbliqV6e/QCiZIpbyVBv3m7liX6NkZ8nemtSX1xvjQNskI 8QlQ4DFHa4Nre/YWV8rPendNRZLnEiRdqvUmvzOM7fXH0xAR2CZrPRPDiL42fcaCAxvf//3iM 5ko6PA3Wvw7UPqIqsrL/tyrhxvNurwdZgVebJa9t92YcbP+JnRpLcKHwxftlYUwdvxRwahdhm pvQXSHiBu/tCs0LTUGMiYz/MK/Me/eZoyj4mJJPEtquLs62kEmi55L9TSbmDuCPXtVoc8krqL AXn+utevjOCUDOBjgznnAjslxjijzX1ICNlUsIUHaheTn8dGHZ/OARcYHCu9Aq2GfFvGr2M1G HzhThGrK/hZ7b8ThW85xkjTSnEa18q60v+H0/lfLaWeWldjWcd0soYPTHsAzBNG5fF75HpSE3 UVPeBUhmTPmf1U3tGyVQdJMYSwjg5Z5/aEb2Qlbu0XnHwQE+G/deXn5SBiG+cHZFg0YFwS6/g o0HLCHPmTLPdM8quWihGdA7MQ6ILUKV/gQuR0C9MZFVHcm04ZKsGTaAjxV1y8iT/xFUCbR0IQ pZvnECSCQidSY1iOzGr1nE9sBsfJgYC7S0v7qI1Qa9VWlSmt8D7uZ1squPebQHVv47jCIUKv+ 8k15p6jZX+hC6p8AkyljJ/FA317GqzF4BsXz+rWdu8YZCvlWt/hifs4IaA6zKELUh4tsoE0wG cnfu1X8mU12X58Wy8TMU5/qyKSm0EKDh+romKJ1m1dqvnD2ns2mykePiFo+Hhskn24kJCtevS BAA0LX0unGCf45tXA X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.17.22 Subject: Re: [lwip-users] How to build LWIP test on linux X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Mar 2020 13:55:43 -0000 Am 18.03.2020 um 11:43 schrieb Sachin Gole: > Hi David, > > Thanks for your appropriate=C2=A0help, now I am able to build and run lw= ip > unit test. > > > sachin@sachin-VirtualBox:~/Downloads/contrib-2.1.0/ports/unix/check/buil= d$ > ./lwip_unittests > Running suite(s): IPv4 > =C2=A0IPv6 > =C2=A0UDP > =C2=A0TCP > =C2=A0TCP_OOS > =C2=A0DEF > =C2=A0MEM > =C2=A0NETIF > =C2=A0PBUF > =C2=A0TIMERS > =C2=A0ETHARP > =C2=A0DHCP > =C2=A0MDNS > =C2=A0MQTT > =C2=A0SOCKETS > 100%: Checks: 108, Failures: 0, Errors: 0 > > > Is there any way to enable test logs ? You posted the log :-) > Is there any way to test individual=C2=A0unit test ? No. Nowadays, the 'check' framework does seem a bit outdated... If I would start that again, I would probably use google test... Regards, Simon From MAILER-DAEMON Wed Mar 18 22:48:16 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jElEG-0001AO-0b for mharc-lwip-users@gnu.org; Wed, 18 Mar 2020 22:48:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57899) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jElEE-0001AE-0F for lwip-users@nongnu.org; Wed, 18 Mar 2020 22:48:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jElED-0000sU-4O for lwip-users@nongnu.org; Wed, 18 Mar 2020 22:48:13 -0400 Received: from mail-qk1-x733.google.com ([2607:f8b0:4864:20::733]:36551) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jElEC-0000qY-Vw for lwip-users@nongnu.org; Wed, 18 Mar 2020 22:48:13 -0400 Received: by mail-qk1-x733.google.com with SMTP id d11so980847qko.3 for ; Wed, 18 Mar 2020 19:48:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=8KPJxCDAaxvMFIqwWzwENHCdO2xkO5mnr8F5vWNBOYk=; b=ZddBzegApzNH2i2jSjldFj59yLDG5TgUJyysS8YfRVdwdpzl8zPVwCXgCrLpf54g/t 5ip/yE2oJFzyPpqjXUWwGc0av9djEBa3C+pTbmxT/+OTnKyFOW8P1XvlJt7llCBSGnjY /eF5W4hulWI2fdOT/DNl4SPLeauHfwHrE3Y+ZWX2K72clI11mcMZpFOyfAPncfhcpi7E 6/gysmZQ7n5PW5/YVXS7EHmqrLxUpxaktqOCo+Tg8qGZGRPc2hOYT+HvcKZS/pgFaXGv ilbUvcVQIsTD+ib671C5l1DSkx0deibbPM8Y1iSazacFAYfkktF2mHlB8PdAp9vk4NxE LitQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=8KPJxCDAaxvMFIqwWzwENHCdO2xkO5mnr8F5vWNBOYk=; b=OTSLQ1ilZebu0lLPf3UmjIOZiji1EqbpbQoeYSWXSrwhUYPWjlxcpytndBez8XknqL HkcuTiVisq7gBYjI6B7cQYeMLVQ5y0o+FDxUNAxU3rikdHLoOklxFEZ7sl+yHbR2d009 rmCLtLEsMjLKY1Ej057p1oi2pV2VOIRpJrZQOfgYbf6XoL4wi761C+VfMgGjwUp4swxS B/LW4XT6/cFFWIuE5UGLst/7FbCoyjR2yquO5zcqJAVCVFQGFFfd2C/oqS89kvTIPyXl itZrcXY5LTVQVSF9O6GoOfkQ07PzkruoeSnzIc6OaDC2jHDK750aNcnJqq0rio4DcD9d fAQA== X-Gm-Message-State: ANhLgQ1NSuxHgz4Eaddbr67GAshNiwtZIERSjU65VEmPQKp5P6D9jFSS QWrc3FqyziNmNtWK1mLDKPm3Tku+0v6HHeOATOEbNu+L X-Google-Smtp-Source: ADFU+vtsgEWIhJQKl4bFwPhr2IkfqCkRcbXv90PyZedQdu+BWu4WFYBpJ6QZ0AY1RrGrpMKFGCsVUvaUnuZKiHA1aPs= X-Received: by 2002:a37:5044:: with SMTP id e65mr937251qkb.294.1584586091677; Wed, 18 Mar 2020 19:48:11 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Sachin Gole Date: Thu, 19 Mar 2020 08:17:59 +0530 Message-ID: To: lwip-users@nongnu.org Content-Type: multipart/alternative; boundary="0000000000001c4bd105a12c33c4" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::733 Subject: Re: [lwip-users] How to build LWIP test on linux X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Mar 2020 02:48:15 -0000 --0000000000001c4bd105a12c33c4 Content-Type: text/plain; charset="UTF-8" Thanks for comments. Google test framework has better control on test execution. --0000000000001c4bd105a12c33c4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

Th= anks for comments. Google test framework has better control on test executi= on.=C2=A0
--0000000000001c4bd105a12c33c4-- From MAILER-DAEMON Thu Mar 19 01:54:00 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jEo80-0003qF-FA for mharc-lwip-users@gnu.org; Thu, 19 Mar 2020 01:54:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46707) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEo7y-0003q8-Ek for lwip-users@nongnu.org; Thu, 19 Mar 2020 01:53:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEo7v-0001O2-Ch for lwip-users@nongnu.org; Thu, 19 Mar 2020 01:53:58 -0400 Received: from mout.gmx.net ([212.227.15.18]:33493) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jEo7u-0001BJ-W2 for lwip-users@nongnu.org; Thu, 19 Mar 2020 01:53:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1584597232; bh=WkAyCzk3FzUmVWxlQUK9sIu3w8X+jIHUOh1mE2eItn0=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=EXvo0s+ONNG9TKmDJZIUqvGMMgV7TXb48Hl36gtzS9MQdrS21p3XpbBXkgkqtldaU mG+OyIL4TznQjhV4Y1SF/5tipYBFkxbJO39T7svGkirtqGEELJaPsKOOBpzJuvSqIC K/pMPElHo5gqnpYpcxCUab23joDXlNVqxOqw6GPs= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.61] ([176.199.210.162]) by mail.gmx.com (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MPog5-1is4Zf1ndb-00MxBh for ; Thu, 19 Mar 2020 06:53:52 +0100 To: Mailing list for lwIP users References: From: "goldsimon@gmx.de" Autocrypt: addr=goldsimon@gmx.de; keydata= mQENBFDPe/sBCADdhO6Fn+7pnHtmEjiWs14u+n5cFQAhvjZ6EiZLwh0gMl5vYT1HDJ+8HTUA h0xMgXQ2Tsxzizt1TTBWn5DK74SjlIx/dYpM17OHmu6wuIbexKN6hEJSFZjtRlbIlWqEB8px EVeU7//1V/Ukj3QAI3yOrrhIg/s9jmuxMo05fjOsYEkub9PHmvFFdJ7KuApsVss4QRZIpawq HRFv9gY+4DrOvhwMZk6CHlvlAOgqlsMftRMl4699ww2NNbtU2U8n9XFlf2CQxkYAzIJC27Rc +83q+d5xbtcqzxcHhsFXelNTB09ZHEti7NpZZpnP4siVEa8p9BY8n11Nr/97c8lyZUCbABEB AAG0JFNpbW9uIEdvbGRzY2htaWR0IDxnb2xkc2ltb25AZ214LmRlPokBOAQTAQIAIgUCUM97 +wIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQHWthwbhCmfU0tQf+L0m7VG1LNzpt Yvx/1ZZFbqlggespnVuc6HPYqtmbIWxHmlQZgM6Pn61rUWmUl8ilWdcCw8Wuam2pEUSBzlZF z/738kcazWv9SRSbr7ULQi/d/gfOtcfAVUMkTF9jhWpAYR4zmzpR31mvs6Ltfh5rw/bsVJ+/ QbfWLJqdbRG4NykfuGXafQ+o+SDlMlcaBe49whhJsQcCBrvwixeNChUOkV3TY+jgVu4u1MEY c1aJKgVJkBVkAEsJXWFHTkF3TvJf5KdLLGbVBq3I6ItrLgAowI0kC4MzU3eNsCBEroBGJl2/ 7fmut8i+tQNiDfOVP4EHaSD86utnyawQev0TZnY2Qg== Message-ID: Date: Thu, 19 Mar 2020 06:53:44 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:Yh/0ntlVqWV9VIFvoSeE6u2oXc/PLa0r6t5tvTadHgTJ+0eTesf 3NnlitpFvf/eUpAoI7gtGeT6FK7lLkooS9zglpVBypFSKxJ8E4PVPkNb6zH/QijVebkSFub T/MAWp6cmdV379mqEJzHpy1H2MNgmee05+UeH2BUQWib0ayAZK4LkYY7mGKG1ZKE3QNpnMf KspLZYvOp8e6Y+r2Ljo6w== X-UI-Out-Filterresults: notjunk:1;V03:K0:IvOq05eGJAw=:4a9CICPySO84iH3HCtXogs z+eNlv0ucJe483sYjzijowAtLAny9yqeqYhJZhCVDyQkVr06n1FuP5gXTgY0bjQ9nUg3wdC+s JxogyrKDdoqy796VRHINvY+6VtrHs+hVb1y5e0saVum9RhLJuant0Ib79Ui64ml6Epw6bZ9xK q6+4VKHEGgHKMla3fkalSm78YEiEegU2hF9t9C6V8gnl72lEUQRLchRVtwFXOt9x64s0uV47j AAanjzfI93+h3U7TAKpZIueUo2eajqf93U9YzFefySpkmVo8kOeE+sL5xG5CI9i/WBoS+Y1FF sWidAnPHuaDKdM63slP+BuUf+8BNgtv6DYtUpnqbHTP23HPi5urZ6jp6TPj8CRyBxs+wgg6Q6 0VIfvTaqqlDToO7Ylkb4UPc4HrYTwuIFdVkXtTmI6MMfRWC486JUWKQHyeYvMO8JFU4I7ScJV tp6hyoT4AsA4k52AIeh4DKsRWw52o6C2DlpzX3GKYtGlYgmiCuzC17rXUYEPvdIA70hFxNg4O 39R4NAX3hC5mwF9o3Ocuk7VZ7wlG6Lp2bFtJi5YSmRP7p9gTGNtbxYyhUyctRzjBGSB6OfEsT VCKmXr4JV38ofqN9AylPjW9PHueIO2q1x+IsBY45Hm2p5Cq3KURyKnNm9Ycb4xo0Qq4xnEA3+ jrIU6bK+mpHWOU9379buEDa/lCjHFIbU/pzlAEkYzI3j4F+74qXEfT4lIrD/sad7osbvTGKX9 zYS+xIsGLOJGXYP7uYkTTHgQNFIqkSAVy1zjN5dZtg5oI15IKYVMrBWHwigUyV2kQty/ags3D g5kT8LdeFgEp4tOuVFn6KEyQkSvUm4viAHve+5zb1tCD4iAGIo7uMaFwasePHDqg5IMhHAU13 qjyg1m5zIsxH0RdwtBgsyvmXTJB2SAsOa86NWP8QbeY20Z7js9RIH8pZIIgFaTxS2+Ga+xOb9 UjXR7k9NPzEfo454dy31ZduDKHdwpCjZGl54pfcE4e8le78ERHwKVPt4vMSBpDdyLHZ2/LXCB /cq12pM6zbMGXva21W2pi0/p8CPH0czzqzN2o7epwsu4pncJWw6+eN39lAoXON83fU6/gFHYg nSuQ0MTUwbYKSkg8aMHFyWmjDuLnkJyyG6cIGn+KteFUXFyogTOiFOdrHPQI6aBHg7WtkJYAt cdV1CN5S+mkKQ1121RR6/t08RfNnyncz2dolHLPLam20adRHAkToVOOoNW5CHBZd1sQhM1kYL 4qAYEMy26l/l2zyoB X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.15.18 Subject: Re: [lwip-users] How to build LWIP test on linux X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Mar 2020 05:53:59 -0000 Am 19.03.2020 um 03:47 schrieb Sachin Gole: > > Thanks for comments. Google test framework has better control on test > execution. Well, I know. I'm using it elsewhere, too. I'm just too lazy and a bit hesistant to switch test frameworks right now. Regards, Simon From MAILER-DAEMON Thu Mar 19 06:33:03 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jEsU3-0001Nk-Eu for mharc-lwip-users@gnu.org; Thu, 19 Mar 2020 06:33:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36131) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jErA7-0001YE-A2 for lwip-users@nongnu.org; Thu, 19 Mar 2020 05:08:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jErA6-0001Bc-3X for lwip-users@nongnu.org; Thu, 19 Mar 2020 05:08:23 -0400 Received: from n7.nabble.com ([162.253.133.57]:53942) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jErA5-0001BA-Tp for lwip-users@nongnu.org; Thu, 19 Mar 2020 05:08:22 -0400 Received: from n7.nabble.com (localhost [127.0.0.1]) by n7.nabble.com (Postfix) with ESMTP id 929D914951678 for ; Thu, 19 Mar 2020 02:08:15 -0700 (MST) Date: Thu, 19 Mar 2020 02:08:15 -0700 (MST) From: songxz To: lwip-users@nongnu.org Message-ID: <1584608895597-0.post@n7.nabble.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Mac OS X [generic] X-Received-From: 162.253.133.57 X-Mailman-Approved-At: Thu, 19 Mar 2020 06:33:02 -0400 Subject: [lwip-users] =?utf-8?q?MQTT=EF=BC=9Apcb_has_been_used_up_because_?= =?utf-8?q?too_many_ack_packets_were_lost?= X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Mar 2020 09:08:24 -0000 I am developing MQTT related project and encountered problems in the situation when I continuously unpluged the Ethernet and made client keep failing to receive the expected ack packets. According to the protocol, the related tcp pcb will wait in the stack for the ack packets before it can be freed. To solve this problem, I called *tcp_pcb_purge()* in *lwip_netconn_do_close_internal()* to release the tcp pcb. and set *tpcb->snd_queuelen* to 0. The problem seems to be solved. I would like to ask is there anyone met similar issues and is there any better solution to solve this issue? How do you think about this fix? -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html From MAILER-DAEMON Mon Mar 23 09:14:04 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jGMu3-0006aC-VA for mharc-lwip-users@gnu.org; Mon, 23 Mar 2020 09:14:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45796) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jGC8j-0007mu-AP for lwip-users@nongnu.org; Sun, 22 Mar 2020 21:44:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jGC8h-0004qj-Nz for lwip-users@nongnu.org; Sun, 22 Mar 2020 21:44:28 -0400 Received: from n7.nabble.com ([162.253.133.57]:65177) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jGC8h-0004os-Ih for lwip-users@nongnu.org; Sun, 22 Mar 2020 21:44:27 -0400 Received: from n7.nabble.com (localhost [127.0.0.1]) by n7.nabble.com (Postfix) with ESMTP id D973A14B009C1 for ; Sun, 22 Mar 2020 18:44:22 -0700 (MST) Date: Sun, 22 Mar 2020 18:44:22 -0700 (MST) From: songxz To: lwip-users@nongnu.org Message-ID: <1584927862705-0.post@n7.nabble.com> In-Reply-To: <1584608895597-0.post@n7.nabble.com> References: <1584608895597-0.post@n7.nabble.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Mac OS X [generic] X-Received-From: 162.253.133.57 X-Mailman-Approved-At: Mon, 23 Mar 2020 09:14:03 -0400 Subject: Re: [lwip-users] =?utf-8?q?MQTT=EF=BC=9Apcb_has_been_used_up_because?= =?utf-8?q?_too_many_ack_packets_were_lost?= X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Mar 2020 01:44:30 -0000 My solution is like below: static void lwip_netconn_do_close_internal(struct netconn *conn) { ... if (shut =3D=3D NETCONN_SHUT_RDWR) { close =3D 1; } else if (shut_rx && ((tpcb->state =3D=3D FIN_WAIT_1) || (tpcb->state =3D=3D FIN_WAIT_2) || (tpcb->state =3D=3D CLOSING))) { close =3D 1; } else if (shut_tx && ((tpcb->flags & TF_RXCLOSED) !=3D 0)) { close =3D 1; } else { close =3D 0; } //modified by realtek if (close) { tcp_pcb_purge(tpcb); tpcb->snd_queuelen =3D 0; } /* Set back some callback pointers */ if (close) { tcp_arg(tpcb, NULL); } =E2=80=A6 } -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html From MAILER-DAEMON Mon Mar 23 15:38:29 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jGSu4-0004FF-UD for mharc-lwip-users@gnu.org; Mon, 23 Mar 2020 15:38:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47335) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jGSu1-0004F7-Vu for lwip-users@nongnu.org; Mon, 23 Mar 2020 15:38:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jGSu0-0000lV-Qr for lwip-users@nongnu.org; Mon, 23 Mar 2020 15:38:25 -0400 Received: from mail-vs1-xe2a.google.com ([2607:f8b0:4864:20::e2a]:43927) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jGSu0-0000lB-Kc for lwip-users@nongnu.org; Mon, 23 Mar 2020 15:38:24 -0400 Received: by mail-vs1-xe2a.google.com with SMTP id w185so2620797vsw.10 for ; Mon, 23 Mar 2020 12:38:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=SbSUZ4uGLasomzRh2T4rIsNrmahQRKnand37Qb+jO7U=; b=s6w7FzupNUsgX3azCcppUWxfXBbS0XglWLXBZJAfsZJpGNdjFF86ouWz9mRt8gzgN/ 7/9d8ljkfWy1Kl0sXt9leXpRSd7cZIKVIcZQYju2Fa04YxQqtzESAQ6PUGfh64KP7r6z UKUDIgVWLBYSvfV98fjSxccxVDLkSQsMEKzqUDdAnx+YRs9Q/5PKH0vzIPqMdU/klqw6 CYrXLOlUenqxmHKnW0MCna1ydKZcFmeogkYRaS/w3RmlRKwxmNocW4GkEcc6KebK2Wdk eqGV0SlGVxhaGpU053/r5ti3EtpKpPHGVjV8qG5CzmHDT7Gxw6E8UHcRrA04T3UnAR71 OB1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=SbSUZ4uGLasomzRh2T4rIsNrmahQRKnand37Qb+jO7U=; b=QVIIx+4iDvaRekNPD+kZex22wj/6HBLF7lbVaPNguaOm9NRyGqKgTV0yNQghO81T+T uPKlwd4TYK0YVTdOyJywnaq1rvj4/EiHx/71KTuLywCb1YTezCGrEeI8M+YS1tP6WCeL CY56hrvouApIkYhhElbV/cNMyhGuAXKskl++f8FbLAvS6tNcV4XsionmTxrtseHKMUq0 813PrrWHjFANOafrzAEIhq7jNkfF1fX+DL5aCvTFZH0zk9BHKifnXj79pb2lKIF6/M2a d5ZRljwZDnc0atK8xgx9KIq8SuuHwpi7vEUrF6sdGy91kTWzUvxz+p+d63jNLma/IO4g g7cQ== X-Gm-Message-State: ANhLgQ2QuJIUJxxLUM+9IO/eXKwdgqjkv9VedkC9n9e+djhS2Xa7WWhf JtDp9Psp/eia5JyCsjhb/3H8Q3XbmWawIqy241HIwKcLZ0w= X-Google-Smtp-Source: ADFU+vsfxiOFr10xh8y8+WBF8TU+kPpxUOiuPJUeZ30Dch62DqclXMNqDynAd19pJB9FlY+Wtpx6JzA7ps0bjX/IAw0= X-Received: by 2002:a67:8803:: with SMTP id k3mr16164489vsd.36.1584992303220; Mon, 23 Mar 2020 12:38:23 -0700 (PDT) MIME-Version: 1.0 From: Trampas Stern Date: Mon, 23 Mar 2020 15:38:12 -0400 Message-ID: To: Mailing list for lwIP users Content-Type: multipart/mixed; boundary="00000000000035382a05a18ac749" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::e2a Subject: [lwip-users] Random LWIP slow downs and hang up X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Mar 2020 19:38:27 -0000 --00000000000035382a05a18ac749 Content-Type: multipart/alternative; boundary="00000000000035382605a18ac747" --00000000000035382605a18ac747 Content-Type: text/plain; charset="UTF-8" I am having random slow downs and ethernet lock ups. What I have noticed is that sometime ethernet parsing becomes very slow. I was able to capture this with wireshark (enclosed). I also find that sometimes usually after about a day the system just stops. I can confirm that the lwip timeouts polling is being called. However the networking just seems to stop. Other minor things are that I have noticed uploading files are extremely slow 1-2Mbits/sec, but downloading from my embedded device is fast 20-30Mbps. I have gone through and make sure error logging is turned on for LWIP. I have tried turning on debugging but it causes so much noise I have trouble looking for the ham in the spam. >From the wireshark it appears that lwip is lost or something and ACK'ing stuff out of order. The LWIP version is STABLE-2.1.2 Trampas --00000000000035382605a18ac747 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I am having random slow downs and ethernet lock ups.=C2=A0= What I have noticed is that sometime ethernet parsing becomes very slow.= =C2=A0 I was able to capture this with wireshark (enclosed).=C2=A0

=
I also find that sometimes usually after about a day the system = just stops.=C2=A0 I can confirm that the lwip timeouts polling is being cal= led. However the networking just seems to stop.=C2=A0

<= div>Other minor things are that I have noticed uploading files are extremel= y slow 1-2Mbits/sec, but downloading from my embedded device is fast 20-30M= bps.=C2=A0=C2=A0

I have gone through and make sure= error logging is turned on for LWIP. I have tried turning on debugging but= it causes so much noise I have trouble looking for the ham in the spam.=C2= =A0

From the wireshark it appears that lwip is los= t or something and ACK'ing stuff out of order.=C2=A0

The LWIP version is=C2=A0STABLE-2.1.2

Tramp= as

--00000000000035382605a18ac747-- --00000000000035382a05a18ac749 Content-Type: application/octet-stream; name="error.pcap" Content-Disposition: attachment; filename="error.pcap" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k84vd2i30 1MOyoQIABAAAAAAAAAAAAAAABAABAAAAdg15XkneAADqBQAA6gUAAIyuTP2lxTMzOgAAAAgARQAF 3ANnAAD/Bi9hwKgBAsCoAQEAUOV2AACqPPJp4SRQGLUrjGwAAG5lLWhlaWdodDogMS41Owp9Cgou Y29sLWZvcm0tbGFiZWwtbGcgewogIHBhZGRpbmctdG9wOiBjYWxjKDAuNXJlbSArIDFweCk7CiAg cGFkZGluZy1ib3R0b206IGNhbGMoMC41cmVtICsgMXB4KTsKICBmb250LXNpemU6IDEuMjVyZW07 CiAgbGluZS1oZWlnaHQ6IDEuNTsKfQoKLmNvbC1mb3JtLWxhYmVsLXNtIHsKICBwYWRkaW5nLXRv cDogY2FsYygwLjI1cmVtICsgMXB4KTsKICBwYWRkaW5nLWJvdHRvbTogY2FsYygwLjI1cmVtICsg MXB4KTsKICBmb250LXNpemU6IDAuODc1cmVtOwogIGxpbmUtaGVpZ2h0OiAxLjU7Cn0KCi5mb3Jt LWNvbnRyb2wtcGxhaW50ZXh0IHsKICBkaXNwbGF5OiBibG9jazsKICB3aWR0aDogMTAwJTsKICBw YWRkaW5nLXRvcDogMC4zNzVyZW07CiAgcGFkZGluZy1ib3R0b206IDAuMzc1cmVtOwogIG1hcmdp bi1ib3R0b206IDA7CiAgbGluZS1oZWlnaHQ6IDEuNTsKICBjb2xvcjogIzIxMjUyOTsKICBiYWNr Z3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICBib3JkZXI6IHNvbGlkIHRyYW5zcGFyZW50Owog IGJvcmRlci13aWR0aDogMXB4IDA7Cn0KCi5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmZvcm0tY29u dHJvbC1zbSwgLmZvcm0tY29udHJvbC1wbGFpbnRleHQuZm9ybS1jb250cm9sLWxnIHsKICBwYWRk aW5nLXJpZ2h0OiAwOwogIHBhZGRpbmctbGVmdDogMDsKfQoKLmZvcm0tY29udHJvbC1zbSB7CiAg aGVpZ2h0OiBjYWxjKDEuNWVtICsgMC41cmVtICsgMnB4KTsKICBwYWRkaW5nOiAwLjI1cmVtIDAu NXJlbTsKICBmb250LXNpemU6IDAuODc1cmVtOwogIGxpbmUtaGVpZ2h0OiAxLjU7CiAgYm9yZGVy LXJhZGl1czogMC4ycmVtOwp9CgouZm9ybS1jb250cm9sLWxnIHsKICBoZWlnaHQ6IGNhbGMoMS41 ZW0gKyAxcmVtICsgMnB4KTsKICBwYWRkaW5nOiAwLjVyZW0gMXJlbTsKICBmb250LXNpemU6IDEu MjVyZW07CiAgbGluZS1oZWlnaHQ6IDEuNTsKICBib3JkZXItcmFkaXVzOiAwLjNyZW07Cn0KCnNl bGVjdC5mb3JtLWNvbnRyb2xbc2l6ZV0sIHNlbGVjdC5mb3JtLWNvbnRyb2xbbXVsdGlwbGVdIHsK ICBoZWlnaHQ6IGF1dG87Cn0KCnRleHRhcmVhLmZvcm0tY29udHJvbCB7CiAgaGVpZ2h0OiBhdXRv Owp9CgouZm9ybS1ncm91cCB7CiAgbWFyZ2luLWJvdHRvbTogMXJlbTsKfQoKLmZvcm0tdGV4dCB7 CiAgZGlzcGxheTogYmxvY2s7CiAgbWFyZ2luLXRvcDogMC4yNXJlbTsKfQoKLmZvcm0tcm93IHsK ICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICBkaXNwbGF5OiBmbGV4OwogIC1tcy1mbGV4LXdyYXA6 IHdyYXA7CiAgZmxleC13cmFwOiB3cmFwOwogIG1hcmdpbi1yaWdodDogLTVweDsKICBtYXJnaW4t bGVmdDogLTVweDsKfQoKLmZvcm0tcm93ID4gLmNvbCwKLmZvcm0tcm93ID4gW2NsYXNzKj0iY29s LSJdIHsKICBwYWRkaW5nLXJpZ2h0OiA1cHg7CiAgcGFkZGluZy1sZWZ0OiA1cHg7Cn0KCi5mb3Jt LWNoZWNrIHsKICBwb3Npdg15XnzeAAA2AAAANgAAADMzOgAAAIyuTP2lxQgARQAAKJ1uQACABtoN wKgBAcCoAQLldgBQ8mnhJAAAtaRQEPrwwpUAAHYNeV4KUQEA6gUAAOoFAACMrkz9pcUzMzoAAAAI AEUABdwDaAAA/wYvYMCoAQLAqAEBAFDldgAAtaTyaeEkUBi1Kx8zAAA1ZW0gKyAwLjM3NXJlbSkg Y2FsYygwLjc1ZW0gKyAwLjM3NXJlbSk7Cn0KCi53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2w6 dmFsaWQ6Zm9jdXMsIC5mb3JtLWNvbnRyb2wuaXMtdmFsaWQ6Zm9jdXMgewogIGJvcmRlci1jb2xv cjogIzI4YTc0NTsKICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSg0MCwgMTY3LCA2OSwg MC4yNSk7Cn0KCi53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2w6dmFsaWQgfiAudmFsaWQtZmVl ZGJhY2ssCi53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2w6dmFsaWQgfiAudmFsaWQtdG9vbHRp cCwgLmZvcm0tY29udHJvbC5pcy12YWxpZCB+IC52YWxpZC1mZWVkYmFjaywKLmZvcm0tY29udHJv bC5pcy12YWxpZCB+IC52YWxpZC10b29sdGlwIHsKICBkaXNwbGF5OiBibG9jazsKfQoKLndhcy12 YWxpZGF0ZWQgdGV4dGFyZWEuZm9ybS1jb250cm9sOnZhbGlkLCB0ZXh0YXJlYS5mb3JtLWNvbnRy b2wuaXMtdmFsaWQgewogIHBhZGRpbmctcmlnaHQ6IGNhbGMoMS41ZW0gKyAwLjc1cmVtKTsKICBi YWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2FsYygwLjM3NWVtICsgMC4xODc1cmVtKSByaWdodCBj YWxjKDAuMzc1ZW0gKyAwLjE4NzVyZW0pOwp9Cgoud2FzLXZhbGlkYXRlZCAuY3VzdG9tLXNlbGVj dDp2YWxpZCwgLmN1c3RvbS1zZWxlY3QuaXMtdmFsaWQgewogIGJvcmRlci1jb2xvcjogIzI4YTc0 NTsKICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCgxZW0gKyAwLjc1cmVtKSAqIDMgLyA0ICsgMS43NXJl bSk7CiAgYmFja2dyb3VuZDogdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdo dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDQgNSclM2UlM2NwYXRoIGZp bGw9JyUyMzM0M2E0MCcgZD0nTTIgMEwwIDJoNHptMCA1TDAgM2g0eicvJTNlJTNjL3N2ZyUzZSIp IG5vLXJlcGVhdCByaWdodCAwLjc1cmVtIGNlbnRlci84cHggMTBweCwgdXJsKCJkYXRhOmltYWdl L3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0Jv eD0nMCAwIDggOCclM2UlM2NwYXRoIGZpbGw9JyUyMzI4YTc0NScgZD0nTTIuMyA2LjczTC42IDQu NTNjLS40LTEuMDQuNDYtMS40IDEuMS0uOGwxLjEgMS40IDMuNC0zLjhjLjYtLjYzIDEuNi0uMjcg MS4yLjdsLTQgNC42Yy0uNDMuNS0uOC40LTEuMS4xeicvJTNlJTNjL3N2ZyUzZSIpICNmZmYgbm8t cmVwZWF0IGNlbnRlciByaWdodCAxLjc1cmVtL2NhbGMoMC43NWVtICsgMC4zNzVyZW0pIGNhbGMo MC43NWVtICsgMC4zNzVyZW0pOwp9Cgoud2FzLXZhbGlkYXRlZCAuY3VzdG9tLXNlbGVjdDp2YWxp ZDpmb2N1cywgLmN1c3RvbS1zZWxlY3QuaXMtdmFsaWQ6Zm9jdXMgewogIGJvcmRlci1jb2xvcjog IzI4YTc0NTsKICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSg0MCwgMTY3LCA2OSwgMC4y NSk7Cn0KCi53YXMtdmFsaWRhdHYNeV4kdQEA6gUAAOoFAACMrkz9pcUzMzoAAAAIAEUABdwDaQAA /wYvX8CoAQLAqAEBAFDldgAAu1jyaeEkUBC1K1oDAABlZCAuY3VzdG9tLXNlbGVjdDp2YWxpZCB+ IC52YWxpZC1mZWVkYmFjaywKLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1zZWxlY3Q6dmFsaWQgfiAu dmFsaWQtdG9vbHRpcCwgLmN1c3RvbS1zZWxlY3QuaXMtdmFsaWQgfiAudmFsaWQtZmVlZGJhY2ss Ci5jdXN0b20tc2VsZWN0LmlzLXZhbGlkIH4gLnZhbGlkLXRvb2x0aXAgewogIGRpc3BsYXk6IGJs b2NrOwp9Cgoud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sLWZpbGU6dmFsaWQgfiAudmFsaWQt ZmVlZGJhY2ssCi53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2wtZmlsZTp2YWxpZCB+IC52YWxp ZC10b29sdGlwLCAuZm9ybS1jb250cm9sLWZpbGUuaXMtdmFsaWQgfiAudmFsaWQtZmVlZGJhY2ss Ci5mb3JtLWNvbnRyb2wtZmlsZS5pcy12YWxpZCB+IC52YWxpZC10b29sdGlwIHsKICBkaXNwbGF5 OiBibG9jazsKfQoKLndhcy12YWxpZGF0ZWQgLmZvcm0tY2hlY2staW5wdXQ6dmFsaWQgfiAuZm9y bS1jaGVjay1sYWJlbCwgLmZvcm0tY2hlY2staW5wdXQuaXMtdmFsaWQgfiAuZm9ybS1jaGVjay1s YWJlbCB7CiAgY29sb3I6ICMyOGE3NDU7Cn0KCi53YXMtdmFsaWRhdGVkIC5mb3JtLWNoZWNrLWlu cHV0OnZhbGlkIH4gLnZhbGlkLWZlZWRiYWNrLAoud2FzLXZhbGlkYXRlZCAuZm9ybS1jaGVjay1p bnB1dDp2YWxpZCB+IC52YWxpZC10b29sdGlwLCAuZm9ybS1jaGVjay1pbnB1dC5pcy12YWxpZCB+ IC52YWxpZC1mZWVkYmFjaywKLmZvcm0tY2hlY2staW5wdXQuaXMtdmFsaWQgfiAudmFsaWQtdG9v bHRpcCB7CiAgZGlzcGxheTogYmxvY2s7Cn0KCi53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJv bC1pbnB1dDp2YWxpZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbCwgLmN1c3RvbS1jb250cm9sLWlu cHV0LmlzLXZhbGlkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsIHsKICBjb2xvcjogIzI4YTc0NTsK fQoKLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1jb250cm9sLWlucHV0OnZhbGlkIH4gLmN1c3RvbS1j b250cm9sLWxhYmVsOjpiZWZvcmUsIC5jdXN0b20tY29udHJvbC1pbnB1dC5pcy12YWxpZCB+IC5j dXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHsKICBib3JkZXItY29sb3I6ICMyOGE3NDU7Cn0K Ci53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDp2YWxpZCB+IC52YWxpZC1mZWVk YmFjaywKLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1jb250cm9sLWlucHV0OnZhbGlkIH4gLnZhbGlk LXRvb2x0aXAsIC5jdXN0b20tY29udHJvbC1pbnB1dC5pcy12YWxpZCB+IC52YWxpZC1mZWVkYmFj aywKLmN1c3RvbS1jb250cm9sLWlucHV0LmlzLXZhbGlkIH4gLnZhbGlkLXRvb2x0aXAgewogIGRp c3BsYXk6IGJsb2NrOwp9Cgoud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6dmFs aWQ6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLCAuY3VzdG9tLWNvbnRy b2wtaW5wdXQuaXYNeV5vdQEANgAAADYAAAAzMzoAAACMrkz9pcUIAEUAACidb0AAgAbaDMCoAQHA qAEC5XYAUPJp4SQAAMEMUBD68LctAAB4DXleJN0IAOoFAADqBQAAjK5M/aXFMzM6AAAACABFAAXc A2oAAP8GL17AqAECwKgBAQBQ5XYAALWk8mnhJFAYtSsfMwAANWVtICsgMC4zNzVyZW0pIGNhbGMo MC43NWVtICsgMC4zNzVyZW0pOwp9Cgoud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sOnZhbGlk OmZvY3VzLCAuZm9ybS1jb250cm9sLmlzLXZhbGlkOmZvY3VzIHsKICBib3JkZXItY29sb3I6ICMy OGE3NDU7CiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoNDAsIDE2NywgNjksIDAuMjUp Owp9Cgoud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sOnZhbGlkIH4gLnZhbGlkLWZlZWRiYWNr LAoud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sOnZhbGlkIH4gLnZhbGlkLXRvb2x0aXAsIC5m b3JtLWNvbnRyb2wuaXMtdmFsaWQgfiAudmFsaWQtZmVlZGJhY2ssCi5mb3JtLWNvbnRyb2wuaXMt dmFsaWQgfiAudmFsaWQtdG9vbHRpcCB7CiAgZGlzcGxheTogYmxvY2s7Cn0KCi53YXMtdmFsaWRh dGVkIHRleHRhcmVhLmZvcm0tY29udHJvbDp2YWxpZCwgdGV4dGFyZWEuZm9ybS1jb250cm9sLmlz LXZhbGlkIHsKICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDEuNWVtICsgMC43NXJlbSk7CiAgYmFja2dy b3VuZC1wb3NpdGlvbjogdG9wIGNhbGMoMC4zNzVlbSArIDAuMTg3NXJlbSkgcmlnaHQgY2FsYygw LjM3NWVtICsgMC4xODc1cmVtKTsKfQoKLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1zZWxlY3Q6dmFs aWQsIC5jdXN0b20tc2VsZWN0LmlzLXZhbGlkIHsKICBib3JkZXItY29sb3I6ICMyOGE3NDU7CiAg cGFkZGluZy1yaWdodDogY2FsYygoMWVtICsgMC43NXJlbSkgKiAzIC8gNCArIDEuNzVyZW0pOwog IGJhY2tncm91bmQ6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDov L3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA0IDUnJTNlJTNjcGF0aCBmaWxsPScl MjMzNDNhNDAnIGQ9J00yIDBMMCAyaDR6bTAgNUwwIDNoNHonLyUzZSUzYy9zdmclM2UiKSBuby1y ZXBlYXQgcmlnaHQgMC43NXJlbSBjZW50ZXIvOHB4IDEwcHgsIHVybCgiZGF0YTppbWFnZS9zdmcr eG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAg MCA4IDgnJTNlJTNjcGF0aCBmaWxsPSclMjMyOGE3NDUnIGQ9J00yLjMgNi43M0wuNiA0LjUzYy0u NC0xLjA0LjQ2LTEuNCAxLjEtLjhsMS4xIDEuNCAzLjQtMy44Yy42LS42MyAxLjYtLjI3IDEuMi43 bC00IDQuNmMtLjQzLjUtLjguNC0xLjEuMXonLyUzZSUzYy9zdmclM2UiKSAjZmZmIG5vLXJlcGVh dCBjZW50ZXIgcmlnaHQgMS43NXJlbS9jYWxjKDAuNzVlbSArIDAuMzc1cmVtKSBjYWxjKDAuNzVl bSArIDAuMzc1cmVtKTsKfQoKLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1zZWxlY3Q6dmFsaWQ6Zm9j dXMsIC5jdXN0b20tc2VsZWN0LmlzLXZhbGlkOmZvY3VzIHsKICBib3JkZXItY29sb3I6ICMyOGE3 NDU7CiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoNDAsIDE2NywgNjksIDAuMjUpOwp9 Cgoud2FzLXZhbGlkYXR4DXlefd0IADYAAAA2AAAAMzM6AAAAjK5M/aXFCABFAAAonXBAAIAG2gvA qAEBwKgBAuV2AFDyaeEkAADBDFAQ+vC3LQAA --00000000000035382a05a18ac749-- From MAILER-DAEMON Mon Mar 23 19:59:11 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jGWyN-00039S-Kw for mharc-lwip-users@gnu.org; Mon, 23 Mar 2020 19:59:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55194) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jGWyK-00039G-M6 for lwip-users@nongnu.org; Mon, 23 Mar 2020 19:59:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jGWyJ-0001kq-G9 for lwip-users@nongnu.org; Mon, 23 Mar 2020 19:59:08 -0400 Received: from mail-ua1-x935.google.com ([2607:f8b0:4864:20::935]:35771) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jGWyJ-0001kd-9r for lwip-users@nongnu.org; Mon, 23 Mar 2020 19:59:07 -0400 Received: by mail-ua1-x935.google.com with SMTP id a6so851501uao.2 for ; Mon, 23 Mar 2020 16:59:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=5DonmXMbLEukcjlikjHWdqyPWXOq57r0SKNa6QZ3gsk=; b=WaFQQPmtHv6CelrHckzGnXFaR6xp3GPaDEgmUNFQPxglmo6CVRPrrpncmbizQFdAVx 3yjhhCeosRTzmzlhCB/5DRFxXHob1a2iZKdkx2AYW0kZI8dhPolox2zzx1xxrFp7eTOR k3+D1GyQaPABs2YaoI34xZQn859HseCl8oHeY1tWm4zIOKCadIQsf7JJlwRXOMa0m3Nk Lu06Z/rfIRYrrbcbwC2geiJuy5AtwX9kD6tzbehBi7Y8ks3nEBgkPUSG/HMXvbXF+ZcU Wu0mA/qlUIWp3k7bA2kK+gyctgLSqJQkjEQeb18MmjDun6W+K3+n5vimI+nC/KkTauHn o25A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=5DonmXMbLEukcjlikjHWdqyPWXOq57r0SKNa6QZ3gsk=; b=b1nLC7NW+8mL2LCEOBFSRAE/2ZYbIFodGmsa6S98z9+wUH2qir9kRpblYhrF89m76C RV//QUeou26XefNLPundOUK9Tb5pUq/mS1Xts706/6xDDpR8xhpc3gnaQtTkZWvbey+m vFIimUYsbh/VG3tEZESo8Vom6F4E7uSCLoFEYKrnyPu/cWpp+4UBjgLN1YQuLZk+YqQz uZzgAFN2l95Uuq7+dWaIgz7lpGOJ8EmXyBn/JaldfqsXzwLZbYq0/wzB8H5f7WVZpuL3 Fhr4ni46ctynQu6BJhDoFRo9Teo84jBHw+qn+MwFrFsLbP7PODs3Gen3cr1LWF43Ehvi KHVw== X-Gm-Message-State: ANhLgQ2AbDAd0zyeHtFZ5ZCo4gtHLmxd04u1CTAWhiDFSU5nv3F74S7q u2IznJ+Z928JWU2iQmZhUOENqvUn6o6CQbXDX929ej3a X-Google-Smtp-Source: ADFU+vuYrhgFOLdETUocqdoKMxL7jFOGrEsQvobLB/hwK1JbGFZ+tGcID+D7dgtYQNGf69GJS+kdTBuL/qGTGVixOzc= X-Received: by 2002:ab0:4502:: with SMTP id r2mr16415744uar.63.1585007946273; Mon, 23 Mar 2020 16:59:06 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Trampas Stern Date: Mon, 23 Mar 2020 19:58:55 -0400 Message-ID: To: Mailing list for lwIP users Content-Type: multipart/alternative; boundary="0000000000009a987705a18e6b4e" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::935 Subject: Re: [lwip-users] Random LWIP slow downs and hang up X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Mar 2020 23:59:10 -0000 --0000000000009a987705a18e6b4e Content-Type: text/plain; charset="UTF-8" I think I might have found the problem. I cooled off the Phy chip and operation is back to normal. Trampas On Mon, Mar 23, 2020 at 3:38 PM Trampas Stern wrote: > I am having random slow downs and ethernet lock ups. What I have noticed > is that sometime ethernet parsing becomes very slow. I was able to capture > this with wireshark (enclosed). > > I also find that sometimes usually after about a day the system just > stops. I can confirm that the lwip timeouts polling is being called. > However the networking just seems to stop. > > Other minor things are that I have noticed uploading files are extremely > slow 1-2Mbits/sec, but downloading from my embedded device is fast > 20-30Mbps. > > I have gone through and make sure error logging is turned on for LWIP. I > have tried turning on debugging but it causes so much noise I have trouble > looking for the ham in the spam. > > From the wireshark it appears that lwip is lost or something and ACK'ing > stuff out of order. > > The LWIP version is STABLE-2.1.2 > > Trampas > > --0000000000009a987705a18e6b4e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I think I might have found the problem.=C2=A0 I cooled off= the Phy chip and operation is back to normal.=C2=A0

Tra= mpas

On Mon, Mar 23, 2020 at 3:38 PM Trampas Stern <trampas@gmail.com> wrote:
I am having random = slow downs and ethernet lock ups.=C2=A0 What I have noticed is that sometim= e ethernet parsing becomes very slow.=C2=A0 I was able to capture this with= wireshark (enclosed).=C2=A0

I also find that sometimes = usually after about a day the system just stops.=C2=A0 I can confirm that t= he lwip timeouts polling is being called. However the networking just seems= to stop.=C2=A0

Other minor things are that I have= noticed uploading files are extremely slow 1-2Mbits/sec, but downloading f= rom my embedded device is fast 20-30Mbps.=C2=A0=C2=A0

<= div>I have gone through and make sure error logging is turned on for LWIP. = I have tried turning on debugging but it causes so much noise I have troubl= e looking for the ham in the spam.=C2=A0

From the = wireshark it appears that lwip is lost or something and ACK'ing stuff o= ut of order.=C2=A0

The LWIP version is=C2=A0STABLE= -2.1.2

Trampas

--0000000000009a987705a18e6b4e-- From MAILER-DAEMON Wed Mar 25 19:06:53 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jHF6r-0001D3-36 for mharc-lwip-users@gnu.org; Wed, 25 Mar 2020 19:06:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34978) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jHF6o-0001Ce-Kd for lwip-users@nongnu.org; Wed, 25 Mar 2020 19:06:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jHF6n-000726-KO for lwip-users@nongnu.org; Wed, 25 Mar 2020 19:06:50 -0400 Received: from n7.nabble.com ([162.253.133.57]:54821) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jHF6n-0006yw-Ed for lwip-users@nongnu.org; Wed, 25 Mar 2020 19:06:49 -0400 Received: from n7.nabble.com (localhost [127.0.0.1]) by n7.nabble.com (Postfix) with ESMTP id 4C2FD14C44AFC for ; Wed, 25 Mar 2020 16:06:47 -0700 (MST) Date: Wed, 25 Mar 2020 16:06:47 -0700 (MST) From: Artem Moroz To: lwip-users@nongnu.org Message-ID: <1585177607309-0.post@n7.nabble.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Mac OS X [generic] X-Received-From: 162.253.133.57 Subject: [lwip-users] lwip hangs after >12 hours of work X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Mar 2020 23:06:51 -0000 Hi, All! I have STM32F7 board with lwip 2.0.3 running PPOS connection with SIMCOM modem. I am attaching my lwipopts.h file. lwipopts.h After some (long) period of time when modem fails to transmit data, the PPOS connection seems to be "hung". It does nothing. No retries. I've tried to simulate the behavior by dropping connection on counter variable, but it does restore. I have the following output function which shows error "MDM tx timeout end" and then "MDM tx send failed" two times and then gets not invoked. static u32_t ppp1_output_cb(ppp_pcb *pcb, u8_t *data, u32_t len, void *ctx) { //printf("ppp1_o len %d begin\n", len); osEvent evt={0}; do { evt = osMessageGet(msgLwipTxUartHandle, 0); } while(evt.status == osEventMessage); if (!g_bModemNetworkInited) { printf("MDM tx not inited end\r\n"); return len; } if (g_bModemSendFailed) { printf("MDM tx send failed\r\n"); return len; } osSemaphoreWait(semModemHandle, osWaitForever); HAL_UART_Transmit_DMA(g_pUartModem, data, len); osSemaphoreRelease(semModemHandle); // static int nSent = 0; // // if (nSent < 200) // { // nSent++; evt = osMessageGet(msgLwipTxUartHandle, 500); if (evt.status == osEventMessage) { //printf("MDM tx len %lu\n", len); return len; } // } // else // { // osDelay(500); // // } g_bModemSendFailed = 1; printf("MDM tx timeout end\r\n"); //pppapi_close(pcb, 1); return len; } What may be the problem? How can I trace it down? -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html From MAILER-DAEMON Wed Mar 25 19:52:10 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jHFog-0008OB-It for mharc-lwip-users@gnu.org; Wed, 25 Mar 2020 19:52:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39503) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jHFod-0008Np-DJ for lwip-users@nongnu.org; Wed, 25 Mar 2020 19:52:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jHFob-0001PT-E8 for lwip-users@nongnu.org; Wed, 25 Mar 2020 19:52:06 -0400 Received: from mail.klos.com ([2602:fe6b:1012:1::da:155]:51004) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jHFob-0001Du-4F for lwip-users@nongnu.org; Wed, 25 Mar 2020 19:52:05 -0400 Received: from [192.168.9.167] (pool-70-109-154-92.cncdnh.east.myfairpoint.net [70.109.154.92] (may be forged)) (authenticated bits=0) by mail.klos.com (8.15.2/8.15.2) with ESMTPSA id 02PNpfv3027642 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Wed, 25 Mar 2020 23:51:47 GMT To: lwip-users@nongnu.org References: <1585177607309-0.post@n7.nabble.com> From: Patrick Klos Message-ID: <035575fc-fc65-389b-41ec-db24fbddffe8@klos.com> Date: Wed, 25 Mar 2020 19:52:12 -0400 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 MIME-Version: 1.0 In-Reply-To: <1585177607309-0.post@n7.nabble.com> Content-Type: multipart/alternative; boundary="------------E9583041B345BDE928589F3C" Content-Language: en-US X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.klos.com [192.80.49.1]); Wed, 25 Mar 2020 23:51:48 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2602:fe6b:1012:1::da:155 Subject: Re: [lwip-users] lwip hangs after >12 hours of work X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Mar 2020 23:52:09 -0000 This is a multi-part message in MIME format. --------------E9583041B345BDE928589F3C Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-MIME-Autoconverted: from 8bit to quoted-printable by mail.klos.com id 02PNpfv3027642 I know it's a long shot, but I'm gonna go off on a tangent and ask how=20 your system does elapsed timing? Bottom line: check that your timers aren't rolling over.=C2=A0 If you hap= pen=20 to have a 100 kHz clock and use it to time things with 32 bit unsigned=20 integers, it'll roll over in about 12 hours (well, 11.93 hours to be=20 more precise).=C2=A0 I've seen such odd timing related issues several tim= es=20 in the last few months, so I thought I'd mention it. If that doesn't shed any light, a few follow up questions: 1. Is it always the same exact amount of time (give or take a little)?? (if yes, answer #2) 2. If you start the system, but don't start the connection for 30 minutes, does the system stop after the amount of time the system was up or the amount of time that the connection was up? 3. How many characters have been transmitted and received during that timeframe? Good luck hunting! Patrick Klos Klos Technologies, Inc. On 3/25/2020 7:06 PM, Artem Moroz wrote: > Hi, All! > > I have STM32F7 board with lwip 2.0.3 running PPOS connection with SIMCO= M > modem. I am attaching my lwipopts.h file. lwipopts.h > After some (lon= g) > period of time when modem fails to transmit data, the PPOS connection = seems > to be "hung". It does nothing. No retries. I've tried to simulate the > behavior by dropping connection on counter variable, but it does restor= e. > > I have the following output function which shows error "MDM tx timeout = end" > and then "MDM tx send failed" two times and then gets not invoked. > > static u32_t ppp1_output_cb(ppp_pcb *pcb, u8_t *data, u32_t len, void *= ctx) > { > //printf("ppp1_o len %d begin\n", len); > osEvent evt=3D{0}; > do > { > evt =3D osMessageGet(msgLwipTxUartHandle, 0); > > } while(evt.status =3D=3D osEventMessage); > > if (!g_bModemNetworkInited) > { > printf("MDM tx not inited end\r\n"); > return len; > } > > if (g_bModemSendFailed) > { > printf("MDM tx send failed\r\n"); > return len; > } > > osSemaphoreWait(semModemHandle, osWaitForever); > HAL_UART_Transmit_DMA(g_pUartModem, data, len); > osSemaphoreRelease(semModemHandle); > > // static int nSent =3D 0; > // > // if (nSent < 200) > // { > // nSent++; > evt =3D osMessageGet(msgLwipTxUartHandle, 500); > if (evt.status =3D=3D osEventMessage) > { > //printf("MDM tx len %lu\n", len); > return len; > } > // } > // else > // { > // osDelay(500); > // > // } > > g_bModemSendFailed =3D 1; > printf("MDM tx timeout end\r\n"); > //pppapi_close(pcb, 1); > > return len; > } > > What may be the problem? How can I trace it down? > > > > > > -- > Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html > > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users --------------E9583041B345BDE928589F3C Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-MIME-Autoconverted: from 8bit to quoted-printable by mail.klos.com id 02PNpfv3027642
I know it's a long shot, but I'm gonna go off on a tangent and ask how your system does elapsed timing?
Bottom line: check that your timers aren't rolling over.=C2=A0 If y= ou happen to have a 100 kHz clock and use it to time things with 32 bit unsigned integers, it'll roll over in about 12 hours (well, 11.93 hours to be more precise).=C2=A0 I've seen such odd timing related issues several times in the last few months, so I thought I'd mention it.

If that doesn't shed any light, a few follow up questions:
  1. Is it always the same exact amount of time (give or take a little)?? (if yes, answer #2)
  2. If you start the system, but don't start the connection for 30 minutes, does the system stop after the amount of time the system was up or the amount of time that the connection was up?
  3. How many characters have been transmitted and received during that timeframe?
Good luck hunting!

Patrick Klos
Klos Technologies, Inc.

On 3/25/2020 7:06 PM, Artem Moroz wrote:
Hi, All!

I have STM32F7 board with lwip 2.0.3 running PPOS connection with SIMCOM
modem. I am attaching my lwipopts.h file.  lwipopts.h
<http://lwip.100.n7.nabble.com/file/t2270/lwipo=
pts.h>   After some (long)
period of  time when modem fails to transmit data, the PPOS connection se=
ems
to be "hung". It does nothing. No retries. I've tried to simulate the
behavior by dropping connection on counter variable, but it does restore.=
=20

I have the following output function which shows error "MDM tx timeout en=
d"
and then "MDM tx send failed" two times and then gets not invoked.=20

static u32_t ppp1_output_cb(ppp_pcb *pcb, u8_t *data, u32_t len, void *ct=
x)
{
	//printf("ppp1_o len %d begin\n", len);
	osEvent evt=3D{0};
	do
	{
		evt =3D osMessageGet(msgLwipTxUartHandle, 0);

	} while(evt.status =3D=3D osEventMessage);

	if (!g_bModemNetworkInited)
	{
		printf("MDM tx not inited end\r\n");
		return len;
	}

	if (g_bModemSendFailed)
	{
		printf("MDM tx send failed\r\n");
		return len;
	}

	osSemaphoreWait(semModemHandle, osWaitForever);
	HAL_UART_Transmit_DMA(g_pUartModem, data, len);
	osSemaphoreRelease(semModemHandle);

//	static int nSent =3D 0;
//
//	if (nSent < 200)
//	{
//	nSent++;
	evt =3D osMessageGet(msgLwipTxUartHandle, 500);
	if (evt.status =3D=3D osEventMessage)
	{
		//printf("MDM tx len %lu\n", len);
		return len;
	}
//	}
//	else
//	{
//		osDelay(500);
//
//	}

	g_bModemSendFailed =3D 1;
	printf("MDM tx timeout end\r\n");
	//pppapi_close(pcb, 1);

	return len;
}

What may be the problem? How can I trace it down?





--
Sent from: http://lwip.100.n7.nabble.com/lwip-users-f=
3.html

_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/lwip-us=
ers

--------------E9583041B345BDE928589F3C-- From MAILER-DAEMON Wed Mar 25 20:48:06 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jHGgo-0000Lb-2w for mharc-lwip-users@gnu.org; Wed, 25 Mar 2020 20:48:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42163) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jHD2v-00017O-0F for lwip-users@nongnu.org; Wed, 25 Mar 2020 16:54:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jHD2t-0004Ip-Hk for lwip-users@nongnu.org; Wed, 25 Mar 2020 16:54:40 -0400 Received: from mail-vs1-xe31.google.com ([2607:f8b0:4864:20::e31]:38647) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jHD2t-0004IC-97 for lwip-users@nongnu.org; Wed, 25 Mar 2020 16:54:39 -0400 Received: by mail-vs1-xe31.google.com with SMTP id x206so2485017vsx.5 for ; Wed, 25 Mar 2020 13:54:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=TGqA8LtC89Rc8UfgfAgVcc/xMe+KXaC81UMbKFzwbec=; b=ZDw1S6NRc/mOizdDgbk8J0duonE0zA437zyl64T2MpBA9afU2f8q7qVm5ZuPgUSrbe c/PZvgY/LwFvMXoaf86PlMt4N1JJSxp/BTZWluiMk+dBT5Hk16O5IKteUWV16s9kZNtK 0wSVgQ3Z8676wrd6yHt/IPDZ+0bli6bpMC6ckviAewfAhKR16lkVZTnSJlYa5c1JStKE 3EJUtQcOIPuovH4QfuaLKn+W496eF78MZteEzHLfugSiETNik1gjwTE4yURQ3oxQRkFi daEBxktzehfKU4CIGAk4SZRXU6QTD54jTQeXVfeid52GIu3DmqoBl9t2zP7s9orHIyCq hoxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=TGqA8LtC89Rc8UfgfAgVcc/xMe+KXaC81UMbKFzwbec=; b=XIebBXL4eRrtD9pVyEEwR/VdJEGHKSPBmpI8pUZykJHh2O0PzlDkl2WrGI7BpM8nTZ 4nlpxJmFHjCTHwL7AvJrcrWDUKV5hLI07fJcfH2dCCMbrCxA0aYTtPh0uuC9ueT6PXYT Mz9J0EszXrpLOd3c0N7L6j0PcEQoiq7Y/rHYkkfj+5lMdVbOaf7enUA1XGiRTtUC6VJm ANn7HhAApk6L35B33zZsZDP+NrIb6kPUBQ/k3YyZU3egEl2TAotcNI8/GR/7xD90Batg Xzjwv3exauU7UqoorsPVcwFqO6qabYwE3aK3tc2EnQ2YGUk2yP9oQDUfO+XPmDOTHCbR O0JQ== X-Gm-Message-State: ANhLgQ1yAOLGsd0RbM3U+KWLdR4if/zClUAC4rJcPqP4Oji1BwTsBcYj s39mrS4igu6wr4MM+bgn724UcB1PHNx+oPq0E6icBsn7UG4= X-Google-Smtp-Source: ADFU+vuM6mR3yGdaxS3oT2DP9lA9fwVOdJxZJezHUUfmJZfuYWsu4QNIbWFC94lH8rP7dLt3AZcYBdPQ5N0Zy+yDrK8= X-Received: by 2002:a67:7c8f:: with SMTP id x137mr3962473vsc.99.1585169674876; Wed, 25 Mar 2020 13:54:34 -0700 (PDT) MIME-Version: 1.0 From: Bilal Majeed Date: Wed, 25 Mar 2020 16:54:23 -0400 Message-ID: To: lwip-users@nongnu.org Content-Type: multipart/alternative; boundary="000000000000613b7605a1b413f9" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::e31 X-Mailman-Approved-At: Wed, 25 Mar 2020 20:48:04 -0400 Subject: [lwip-users] Raw UDP API, connecting to a multicast IP address results in dropped messages X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Mar 2020 20:54:42 -0000 --000000000000613b7605a1b413f9 Content-Type: text/plain; charset="UTF-8" Hi, I noticed a bug while trying to integrate lwIP IPv6 into my code. I'm not sure if its a bug or if I'm mistaken and utilizing the API incorrectly. The application that I am writing calls for sending a msg to a multicast address and receiving a response back from some server. To accomplish this I setup my UDP connection as so: static ip_addr_t mulitcast_ip_addr; struct udp_pcb * udp_pcb = udp_new(); ip6_addr_set_allnodes_linklocal(&mulitcast_ip_addr); udp_bind(udp_pcb, IP_ADDR_ANY, 0); udp_connect(udp_pcb, &mulitcast_ip_addr, 7); I noticed that when I would receive a response message from some device in the *udp_input()* function it performs the following check on line 289 of udp.c in the git-head: /* compare PCB remote addr+port to UDP source addr+port */ if ((pcb->remote_port == src) && (ip_addr_isany_val(pcb->remote_ip) || ip_addr_cmp(&pcb->remote_ip, ip_current_src_addr()))) { ... } Here it just checks if the remote ip address ISANY or if the remote address matches the current source address. Since I had set the remote address to multicast (FF02::1) this if statement would evaluate to false just set pcb to NULL which in return causes incoming packets to be ignored. For my application I'm using only one udp pcb, so a workaround that I used instead was after calling *udp_connect()* to set the remote ip and port, I called *udp_clear_flags(udp_pcb, UDP_FLAGS_CONNECTED)*. This allowed the *udp_input()* function to use the first unconnected pcb in the pcb list (and since I have only one it picks that every time). Going forward I wouldn't prefer using this workaround as its not universal. It is possible that I am using the udp api incorrectly and there is a different way to do what I want, perhaps someone could guide me in the right direction. Thanks --000000000000613b7605a1b413f9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

Hi,

=C2=A0

I noticed a bug while trying to int= egrate lwIP IPv6 into my code. I'm not sure if its a bug or if I'm mistaken and utilizing th= e API incorrectly. The application that I am writing calls for sending a msg to a multicast address and

receiving a response back from some= server.

=C2=A0

To accomplish this I setup my UDP c= onnection as so:

=C2=A0

static ip_addr_t mulitcast_ip_addr;

struct udp_pcb * udp_pcb =3D udp_new();

ip6_addr_set_allnodes_linklocal(&mulitcast_ip_addr);=

udp_bind(udp_pcb, IP_ADDR_ANY, 0);

udp_connect(udp_pcb, &mulitcast_ip_addr, 7);

=C2=A0

I noticed that when I would receive= a response message from some device in the *udp_input()* function it performs the following check o= n line 289 of udp.c in the git-head:

=C2=A0

/* compare PCB remote addr+port to UDP source addr+port */

if ((pcb->remote_port =3D=3D src) &&

=C2=A0=C2=A0=C2=A0 (ip_addr_isany_val(pcb->rem= ote_ip) ||

=C2=A0=C2=A0=C2=A0=C2=A0 ip_addr_cmp(&pcb->= ;remote_ip, ip_current_src_addr()))) {

=C2=A0 ...

}

=C2=A0

Here it just checks if the remote i= p address ISANY or if the remote address matches the current source address. Since I had set the remo= te address to multicast (FF02::1) this if statement would evaluate to false ju= st set pcb to NULL which in return causes incoming packets to be ignored.

=C2=A0

For my application I'm using on= ly one udp pcb, so a workaround that I used instead was after calling *udp_connect()* to set the remote ip and port, I called *udp_clear_flags(udp_pcb, UDP_FLAGS_CONNECTED)= *. This allowed the *udp_input()* function to=C2=A0 use the first unconnected pcb in the pcb list (and since I have only= one it picks that every time).

=C2=A0

Going forward I wouldn't prefer= using this workaround as its not universal. It is possible that I am using the udp api incorrectly and t= here is a different way to do what I want, perhaps someone could guide me in the right direction.

=C2=A0

Thanks

--000000000000613b7605a1b413f9-- From MAILER-DAEMON Thu Mar 26 03:28:32 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jHMwJ-0003Lp-Vx for mharc-lwip-users@gnu.org; Thu, 26 Mar 2020 03:28:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57519) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jHMwG-0003GU-O0 for lwip-users@nongnu.org; Thu, 26 Mar 2020 03:28:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jHMwF-0000Yf-8c for lwip-users@nongnu.org; Thu, 26 Mar 2020 03:28:28 -0400 Received: from mail-lj1-x236.google.com ([2a00:1450:4864:20::236]:39214) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jHMwE-0000YF-VP for lwip-users@nongnu.org; Thu, 26 Mar 2020 03:28:27 -0400 Received: by mail-lj1-x236.google.com with SMTP id i20so5310818ljn.6 for ; Thu, 26 Mar 2020 00:28:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=d+hXwAVAxfjio2WzBioWJ1ICbxHmyE0hNC+CMBtnmU0=; b=RH/lQ0w5MmPXjDECyV5F/SOInKOYlSiEtxqsLsbjuutZWmmc98AyORAfWubqPFPuFA xRd1LVtkzDh0mhv6ShQhf9HWttW73wa4JPJNOFpzSlXaWanSjjE4sQ69A3OAl4KCUVin wn0dIrv+P3ku38BjYOEak61PsJtiK9+qM23042T2DClBA4bxRh5C8D51X3rJfElvSjGZ 3g68m6AiStS5q5oiAybMtZnQ10CDvd8tByGZgfW6SOCtzbTo24pnfJQyEC6cToaA14KA A/GGkgOpnqXdW5F1grM/GAhjN9G8iO4yJXUBCnLqUWMNZUfRNXh5r7EkNagkJeYgPxSN pQsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=d+hXwAVAxfjio2WzBioWJ1ICbxHmyE0hNC+CMBtnmU0=; b=mjn/Y4wB48V/XNCNaBzCS6UZBTWYQ3uctFckyke5MS33VhKRqVUHfx1G+BhWM9xCvi pmvxfZNmEdvaHO8ZyFzYKg/5sYfSMyl45QARvzF4w5vM6WeExjsnAoJdh76ixo/Wuaul Lo6tBlJwLz+vqEGCbKKZSLXbdNmc0g2AsRnE8LthkJyCVoFijwGdTZco2kkJtTcM4G91 MlaKxnqQMPblbFx0Ra0s+/CJHECvRq1dYC3GZZw8KLr6P6PGtbEV+A9xs7fH2FCjblyD D9KzNoxmYZkiJ/mLc0/9zGdceIAVAJG2UmJAy6VcCf0bhctYS9FDIXDnpa8sVa3REEgN 92QQ== X-Gm-Message-State: ANhLgQ1ZCeOmE8IYIfQh90qOQqr+uz6cAmzkeAFejoBT4m2NvjlCljrg TYzAmKlVj6GJbNcBJMKZHtNvVqoXqggSHdT4GTzE6WG3 X-Google-Smtp-Source: ADFU+vvXJ6Trdmwrc792HJSqwzhq/EjwSs6JeCORQ74B7mb+0sp9/Y7CyLeKWkqagrjtIOg7kjMaBdoY+MQAlZceeS0= X-Received: by 2002:a2e:99c9:: with SMTP id l9mr4592410ljj.79.1585207703414; Thu, 26 Mar 2020 00:28:23 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Adam Baron Date: Thu, 26 Mar 2020 08:27:56 +0100 Message-ID: To: Mailing list for lwIP users Content-Type: multipart/alternative; boundary="0000000000000eaa8f05a1bcee4e" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::236 Subject: Re: [lwip-users] Random LWIP slow downs and hang up X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Mar 2020 07:28:30 -0000 --0000000000000eaa8f05a1bcee4e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello Trampas, what chip is your PHY? To stay away from it. I used W5500 which does whole TCP/IP stack, and it gets warm. Now using lan8720a with large GND pad. Adam =C3=BAt 24. 3. 2020 v 0:59 odes=C3=ADlatel Trampas Stern napsal: > I think I might have found the problem. I cooled off the Phy chip and > operation is back to normal. > > Trampas > > On Mon, Mar 23, 2020 at 3:38 PM Trampas Stern wrote: > >> I am having random slow downs and ethernet lock ups. What I have notice= d >> is that sometime ethernet parsing becomes very slow. I was able to capt= ure >> this with wireshark (enclosed). >> >> I also find that sometimes usually after about a day the system just >> stops. I can confirm that the lwip timeouts polling is being called. >> However the networking just seems to stop. >> >> Other minor things are that I have noticed uploading files are extremely >> slow 1-2Mbits/sec, but downloading from my embedded device is fast >> 20-30Mbps. >> >> I have gone through and make sure error logging is turned on for LWIP. I >> have tried turning on debugging but it causes so much noise I have troub= le >> looking for the ham in the spam. >> >> From the wireshark it appears that lwip is lost or something and ACK'ing >> stuff out of order. >> >> The LWIP version is STABLE-2.1.2 >> >> Trampas >> >> _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users --=20 731435556 Adam Baron --0000000000000eaa8f05a1bcee4e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello Trampas,
what chip is your PHY? To st= ay away from it.

I used W5500 which does whole= TCP/IP stack, and it gets warm. Now using lan8720a with large GND pad.

Adam

=C3=BAt 24. 3. 2020 v=C2=A00:59 odes=C3= =ADlatel Trampas Stern <trampas@gma= il.com> napsal:
I think I might have found the problem.=C2=A0 I coo= led off the Phy chip and operation is back to normal.=C2=A0

<= div>Trampas

On Mon, Mar 23, 2020 at 3:38 PM Trampas Stern <trampas@gmail.com> w= rote:
I am having random slow downs and ethernet lock ups.=C2=A0 What I = have noticed is that sometime ethernet parsing becomes very slow.=C2=A0 I w= as able to capture this with wireshark (enclosed).=C2=A0

I also find that sometimes usually after about a day the system just stops= .=C2=A0 I can confirm that the lwip timeouts polling is being called. Howev= er the networking just seems to stop.=C2=A0

Other = minor things are that I have noticed uploading files are extremely slow 1-2= Mbits/sec, but downloading from my embedded device is fast 20-30Mbps.=C2=A0= =C2=A0

I have gone through and make sure error log= ging is turned on for LWIP. I have tried turning on debugging but it causes= so much noise I have trouble looking for the ham in the spam.=C2=A0
<= div>
From the wireshark it appears that lwip is lost or somet= hing and ACK'ing stuff out of order.=C2=A0

The= LWIP version is=C2=A0STABLE-2.1.2

Trampas

_______________________________________________
lwip-users mailing list
lwip-users@nongn= u.org
https://lists.nongnu.org/mailman/listinfo/lwip-u= sers

--
731435556
Adam Baron
--0000000000000eaa8f05a1bcee4e-- From MAILER-DAEMON Thu Mar 26 05:28:53 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jHOon-00017U-Jz for mharc-lwip-users@gnu.org; Thu, 26 Mar 2020 05:28:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45741) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jHOok-000171-Gu for lwip-users@nongnu.org; Thu, 26 Mar 2020 05:28:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jHOoj-0001YW-0z for lwip-users@nongnu.org; Thu, 26 Mar 2020 05:28:49 -0400 Received: from mail01.heig-vd.ch ([193.134.218.124]:39032) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jHOoi-0001XR-Ng for lwip-users@nongnu.org; Thu, 26 Mar 2020 05:28:48 -0400 X-ASG-Debug-ID: 1585214925-1114bd648f164610001-xciBfy Received: from EIMAIL02.einet.ad.eivd.ch ([193.134.222.4]) by mail01.heig-vd.ch with ESMTP id cNeIqmU7dj0VyvgR (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO) for ; Thu, 26 Mar 2020 10:28:45 +0100 (CET) X-Barracuda-Envelope-From: Daniel.Rossier@heig-vd.ch X-Barracuda-Effective-Source-IP: UNKNOWN[193.134.222.4] X-Barracuda-Apparent-Source-IP: 193.134.222.4 Received: from EIMAIL03.einet.ad.eivd.ch (10.192.41.73) by EIMAIL02.einet.ad.eivd.ch (10.192.41.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Thu, 26 Mar 2020 10:28:45 +0100 Received: from EIMAIL03.einet.ad.eivd.ch ([fe80::e0be:cf4c:33e5:1dd4]) by EIMAIL03.einet.ad.eivd.ch ([fe80::e0be:cf4c:33e5:1dd4%5]) with mapi id 15.01.1979.003; Thu, 26 Mar 2020 10:28:45 +0100 From: Rossier Daniel To: "lwip-users@nongnu.org" Thread-Topic: lwip in SO3 kernel X-ASG-Orig-Subj: lwip in SO3 kernel Thread-Index: AdYDUKpW0WuqPEorQ1auWSNHS3s6gg== Date: Thu, 26 Mar 2020 09:28:45 +0000 Message-ID: <2d859ad62c0548a8a6fccd072b9d1a4b@heig-vd.ch> Accept-Language: fr-FR, fr-CH, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.192.222.11] Content-Type: multipart/alternative; boundary="_000_2d859ad62c0548a8a6fccd072b9d1a4bheigvdch_" MIME-Version: 1.0 X-Barracuda-Connect: UNKNOWN[193.134.222.4] X-Barracuda-Start-Time: 1585214925 X-Barracuda-Encrypted: ECDHE-RSA-AES128-GCM-SHA256 X-Barracuda-URL: https://quarantine.heig-vd.ch:443/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at heig-vd.ch X-Barracuda-Scan-Msg-Size: 3454 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=HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.80806 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 193.134.218.124 Subject: [lwip-users] lwip in SO3 kernel X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Mar 2020 09:28:51 -0000 --_000_2d859ad62c0548a8a6fccd072b9d1a4bheigvdch_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Folks, I'm pleased to announce that we are integrating the LWIP protocol stack wit= hin our SO3 kernel. This is achieved through a student diploma work and it would be wonderful i= f you could give your feedback/hints or simply contribute. Please have a look at the following links : https://discourse.heig-vd.ch/c/so3/6 https://discourse.heig-vd.ch/t/network-support-for-so3/72/3 Have a great day ! Cheers Daniel --_000_2d859ad62c0548a8a6fccd072b9d1a4bheigvdch_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hi Folks,

 

I'm pleased to announce that we= are integrating the LWIP protocol stack within our SO3 kernel.<= /span>

This is achieved through a stud= ent diploma work and it would be wonderful if you could give your feedback/= hints or simply

contribute.

 

Please have a look at the follo= wing links :

 

https://discourse.heig-vd.ch/c/so3/6

https://discourse.heig-vd.ch/t/network-support-for-so3/= 72/3

 

Have a great day !

 

Cheers

Daniel

 

--_000_2d859ad62c0548a8a6fccd072b9d1a4bheigvdch_-- From MAILER-DAEMON Thu Mar 26 07:11:36 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jHQQB-00063D-S2 for mharc-lwip-users@gnu.org; Thu, 26 Mar 2020 07:11:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59820) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jHQQ8-000636-FN for lwip-users@nongnu.org; Thu, 26 Mar 2020 07:11:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jHQQ6-000479-QS for lwip-users@nongnu.org; Thu, 26 Mar 2020 07:11:32 -0400 Received: from mail-vs1-xe29.google.com ([2607:f8b0:4864:20::e29]:33881) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jHQQ6-00046q-LO for lwip-users@nongnu.org; Thu, 26 Mar 2020 07:11:30 -0400 Received: by mail-vs1-xe29.google.com with SMTP id b5so3588467vsb.1 for ; Thu, 26 Mar 2020 04:11:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=W6vSfE6pwslpw2iIpYQoDV67MbgfQn+Xg+OQ0mKM6KY=; b=R71QbOBDPy9EZm5AYWYfWCX4mUwCZclch3SlY1979TfvFwwAJ3LRWoACO/1a++wcC2 7M3u18mU4OjH4pJPtTdgxE9K3JAI0I4aj7e69+1n+M7syubd9UYIY2UVEVCI0vaSAwzn RNMIuveN6nXYA/ssk5/JqDCNPcoIrDn/P9Y4iUPuKQ/idGjeVhMFiyo0R7bmgWsvZVD/ KLAi9Cz1V5zNNO2LTLBVHoFIMGiPq0BUUApQ+6vD72sYhVrLyF2P+W244QyPTha/Ifrp 6VnlM/iJIlib0/MR3H/FkOYgm0waRH0EVXCMNliHQM8F45npVtEDQHZ1yFF6tgfrlm2S 4YLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=W6vSfE6pwslpw2iIpYQoDV67MbgfQn+Xg+OQ0mKM6KY=; b=iW7b1+TvFY+tIpbcgsqGHPUyGQguJ2KRgVFeRYjYC+9XYK6It+FQGQduv8AUjueoN7 GkP43nHYodvZkbB8U534tuSTAUw1N271ZtivcIHgFAg5xeXh4vsQ/ZbgdnXzeHhmCTe8 GrG4vftEMjPbWmHA9z3f0I2r2uenkXF14LvUIwzxqWFtcGZM7lKDcHMlWyafUBYc7nmQ NwOSpDx64/3k2p/b+8khnT2rR4J3aDTRHK0BIepBrzXxfVgr0A1KqCymX1z6ipRCcAhr cz1EJZtgbKEEilQ2u6/zBgkXAtA6eF0sXyyhzBVnOC/xnvw0ICl0vyLIbWlQJUz0PC5M AQNg== X-Gm-Message-State: ANhLgQ2xNf95F234x1v8+bmjtIdDdsdbJMjc6nNsAgOrizq6FFu1y4fw AGmWNxNMeOpB6TB9pl/rk02XM3094EvcogMgIB72h91O X-Google-Smtp-Source: ADFU+vsla5yn1Q+7EeJiOH9fgFUVOhxuCQxj3KGASBeQOBimD/yqIT66gXYl9y8NyRX8izJLenEbOnjj0Yym3JlKcyw= X-Received: by 2002:a67:8803:: with SMTP id k3mr5884412vsd.36.1585221089588; Thu, 26 Mar 2020 04:11:29 -0700 (PDT) MIME-Version: 1.0 References: <1585177607309-0.post@n7.nabble.com> <035575fc-fc65-389b-41ec-db24fbddffe8@klos.com> In-Reply-To: <035575fc-fc65-389b-41ec-db24fbddffe8@klos.com> From: Trampas Stern Date: Thu, 26 Mar 2020 07:11:19 -0400 Message-ID: To: Mailing list for lwIP users Content-Type: multipart/alternative; boundary="000000000000ef789f05a1c00b50" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::e29 Subject: Re: [lwip-users] lwip hangs after >12 hours of work X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Mar 2020 11:11:34 -0000 --000000000000ef789f05a1c00b50 Content-Type: text/plain; charset="UTF-8" Along the same lines does it reset with a reboot? If so check timers. If not consider hardware heating. On Wed, Mar 25, 2020 at 7:52 PM Patrick Klos wrote: > I know it's a long shot, but I'm gonna go off on a tangent and ask how > your system does elapsed timing? > > Bottom line: check that your timers aren't rolling over. If you happen to > have a 100 kHz clock and use it to time things with 32 bit unsigned > integers, it'll roll over in about 12 hours (well, 11.93 hours to be more > precise). I've seen such odd timing related issues several times in the > last few months, so I thought I'd mention it. > > If that doesn't shed any light, a few follow up questions: > > 1. Is it always the same exact amount of time (give or take a > little)?? (if yes, answer #2) > 2. If you start the system, but don't start the connection for 30 > minutes, does the system stop after the amount of time the system was up or > the amount of time that the connection was up? > 3. How many characters have been transmitted and received during that > timeframe? > > Good luck hunting! > > Patrick Klos > Klos Technologies, Inc. > > On 3/25/2020 7:06 PM, Artem Moroz wrote: > > Hi, All! > > I have STM32F7 board with lwip 2.0.3 running PPOS connection with SIMCOM > modem. I am attaching my lwipopts.h file. lwipopts.h After some (long) > period of time when modem fails to transmit data, the PPOS connection seems > to be "hung". It does nothing. No retries. I've tried to simulate the > behavior by dropping connection on counter variable, but it does restore. > > I have the following output function which shows error "MDM tx timeout end" > and then "MDM tx send failed" two times and then gets not invoked. > > static u32_t ppp1_output_cb(ppp_pcb *pcb, u8_t *data, u32_t len, void *ctx) > { > //printf("ppp1_o len %d begin\n", len); > osEvent evt={0}; > do > { > evt = osMessageGet(msgLwipTxUartHandle, 0); > > } while(evt.status == osEventMessage); > > if (!g_bModemNetworkInited) > { > printf("MDM tx not inited end\r\n"); > return len; > } > > if (g_bModemSendFailed) > { > printf("MDM tx send failed\r\n"); > return len; > } > > osSemaphoreWait(semModemHandle, osWaitForever); > HAL_UART_Transmit_DMA(g_pUartModem, data, len); > osSemaphoreRelease(semModemHandle); > > // static int nSent = 0; > // > // if (nSent < 200) > // { > // nSent++; > evt = osMessageGet(msgLwipTxUartHandle, 500); > if (evt.status == osEventMessage) > { > //printf("MDM tx len %lu\n", len); > return len; > } > // } > // else > // { > // osDelay(500); > // > // } > > g_bModemSendFailed = 1; > printf("MDM tx timeout end\r\n"); > //pppapi_close(pcb, 1); > > return len; > } > > What may be the problem? How can I trace it down? > > > > > > -- > Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html > > _______________________________________________ > lwip-users mailing listlwip-users@nongnu.orghttps://lists.nongnu.org/mailman/listinfo/lwip-users > > > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users --000000000000ef789f05a1c00b50 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Along the same lines does it reset with a reboot?=C2=A0 If= so check timers.=C2=A0 If not consider hardware heating.=C2=A0

On Wed, Mar = 25, 2020 at 7:52 PM Patrick Klos <pa= trick@klos.com> wrote:
=20 =20 =20
I know it's a long shot, but I'm gonna go off on a tangent and ask how your system does elapsed timing?

Bottom line: check that your timers aren't rolling over.=C2=A0 If= you happen to have a 100 kHz clock and use it to time things with 32 bit unsigned integers, it'll roll over in about 12 hours (well, 11.93 hours to be more precise).=C2=A0 I've seen such odd timing related issues several times in the last few months, so I thought I'd mention it.

If that doesn't shed any light, a few follow up questions:
  1. Is it always the same exact amount of time (give or take a little)?? (if yes, answer #2)
  2. If you start the system, but don't start the connection for 30 minutes, does the system stop after the amount of time the system was up or the amount of time that the connection was up?
  3. How many characters have been transmitted and received during that timeframe?
Good luck hunting!

Patrick Klos
Klos Technologies, Inc.

On 3/25/2020 7:06 PM, Artem Moroz wrote:
Hi, All!

I have STM32F7 board with lwip 2.0.3 running PPOS connection with SIMCOM
modem. I am attaching my lwipopts.h file.  lwipopts.h
<http://lwip.100.n7.nabble.com/file/t2270/lwipopts.h>   Af=
ter some (long)
period of  time when modem fails to transmit data, the PPOS connection seem=
s
to be "hung". It does nothing. No retries. I've tried to simu=
late the
behavior by dropping connection on counter variable, but it does restore.=
=20

I have the following output function which shows error "MDM tx timeout=
 end"
and then "MDM tx send failed" two times and then gets not invoked=
.=20

static u32_t ppp1_output_cb(ppp_pcb *pcb, u8_t *data, u32_t len, void *ctx)
{
	//printf("ppp1_o len %d begin\n", len);
	osEvent evt=3D{0};
	do
	{
		evt =3D osMessageGet(msgLwipTxUartHandle, 0);

	} while(evt.status =3D=3D osEventMessage);

	if (!g_bModemNetworkInited)
	{
		printf("MDM tx not inited end\r\n");
		return len;
	}

	if (g_bModemSendFailed)
	{
		printf("MDM tx send failed\r\n");
		return len;
	}

	osSemaphoreWait(semModemHandle, osWaitForever);
	HAL_UART_Transmit_DMA(g_pUartModem, data, len);
	osSemaphoreRelease(semModemHandle);

//	static int nSent =3D 0;
//
//	if (nSent < 200)
//	{
//	nSent++;
	evt =3D osMessageGet(msgLwipTxUartHandle, 500);
	if (evt.status =3D=3D osEventMessage)
	{
		//printf("MDM tx len %lu\n", len);
		return len;
	}
//	}
//	else
//	{
//		osDelay(500);
//
//	}

	g_bModemSendFailed =3D 1;
	printf("MDM tx timeout end\r\n");
	//pppapi_close(pcb, 1);

	return len;
}

What may be the problem? How can I trace it down?





--
Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html

_______________________________________________
lwip-users mailing list
lwip-users@nongn=
u.org
https://lists.nongnu.org/mailman/listinfo/lwip-users

_______________________________________________
lwip-users mailing list
lwip-users@nongn= u.org
https://lists.nongnu.org/mailman/listinfo/lwip-u= sers
--000000000000ef789f05a1c00b50-- From MAILER-DAEMON Thu Mar 26 10:20:54 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jHTNO-0006yS-4c for mharc-lwip-users@gnu.org; Thu, 26 Mar 2020 10:20:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36433) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jHTNL-0006we-V2 for lwip-users@nongnu.org; Thu, 26 Mar 2020 10:20:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jHTNK-0005o6-Mr for lwip-users@nongnu.org; Thu, 26 Mar 2020 10:20:51 -0400 Received: from n7.nabble.com ([162.253.133.57]:56604) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jHTNK-0005mN-G7 for lwip-users@nongnu.org; Thu, 26 Mar 2020 10:20:50 -0400 Received: from n7.nabble.com (localhost [127.0.0.1]) by n7.nabble.com (Postfix) with ESMTP id ADF7814C8C65F for ; Thu, 26 Mar 2020 07:20:41 -0700 (MST) Date: Thu, 26 Mar 2020 07:20:41 -0700 (MST) From: Artem Moroz To: lwip-users@nongnu.org Message-ID: <1585232441667-0.post@n7.nabble.com> In-Reply-To: <035575fc-fc65-389b-41ec-db24fbddffe8@klos.com> References: <1585177607309-0.post@n7.nabble.com> <035575fc-fc65-389b-41ec-db24fbddffe8@klos.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Mac OS X [generic] X-Received-From: 162.253.133.57 Subject: Re: [lwip-users] lwip hangs after >12 hours of work X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Mar 2020 14:20:53 -0000 I have increased data download size and now it is hanging much more frequently, approximately 10 minutes. I am investingating. -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html From MAILER-DAEMON Thu Mar 26 10:24:52 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jHTRE-0001sH-91 for mharc-lwip-users@gnu.org; Thu, 26 Mar 2020 10:24:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39887) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jHTRA-0001om-V9 for lwip-users@nongnu.org; Thu, 26 Mar 2020 10:24:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jHTR9-0000YD-OQ for lwip-users@nongnu.org; Thu, 26 Mar 2020 10:24:48 -0400 Received: from mail-vs1-xe34.google.com ([2607:f8b0:4864:20::e34]:38336) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jHTR9-0000Xe-Jv for lwip-users@nongnu.org; Thu, 26 Mar 2020 10:24:47 -0400 Received: by mail-vs1-xe34.google.com with SMTP id x206so3946354vsx.5 for ; Thu, 26 Mar 2020 07:24:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=TX9oXP/QPNBC6pCuZwptylK/terGvr7mZEoQHVQZjR4=; b=YXYyyQLXabGZuTtpU/Txjo1ySD3s4Edb2+qphcgdITpfN9XWWFoFqjldH1VzOkYBKX OjnCf6SWtujVAgw4OIEcajwdfIoogobpkbIlzaeqpGWkps9pGYYNb/iPgFydzA/qxLAW QF5eYVfujtjqT3N8I1ZdaNMJYcY6smA7u0Xcpz6KHXOJ08Cr8374BkQVQM/sFFUX4u/N hXN0Yb4cgxB/CBe5lsWYPUhF65JknJ9lVgWP+QpPpAGh2C0iufM1UYsdyLpHJ9HDW60i kH4ekF9/B5DVeVfkKCLeNFeuuAyhcfHlh2lKeYII0WdNE94SofWNOc5Ckna5ro1ZoXUo 3JLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=TX9oXP/QPNBC6pCuZwptylK/terGvr7mZEoQHVQZjR4=; b=eE0xzagIRgfTvFYq+73NjJtgOjhCPnUP67csc51T1RiFs5+10S06vL00FzaLPLUGY/ 07vkHhqpuPA+KjIRiicCFHvx1vtpszkuSV+qiTPVBsBxmTCNZKYs7stw68qBR1PCykcW mPTO1l78wcTOKGp4JFA0z38wiyxuMJeoitjXO9nU8AtS3VNSFkXla4V4gcvDV9EQow7m zXuHXrNdRF9SE0Pb54SgDvd6GQluwqfcwVtdGDDmaQEPPRqXQBkSWuWkzzA2bMPgsz6A WAYnmdKDsPHH+c3cUyd51oV0PZDkKJYTdIoCw90TW24gqN+Q5AH4RaK72X3bM6Mb/Bri JPRQ== X-Gm-Message-State: ANhLgQ1LlnV0i6PKrgJu6qTo6cD2CRXbot/5VsqP61WyZP3NDosGCgQt OwnJTRDAgxtuPKeo5qBxlrBxeLJ5KdSS3U53DOMNYsl7 X-Google-Smtp-Source: ADFU+vtDebUltcjo8I8A/Wo+v+Wixaxh4YSBsHHsssUP+CL4UFPmF57glDkPZAQb5/M78UwBLXo+j3VuOygNtwa2KF0= X-Received: by 2002:a67:8803:: with SMTP id k3mr6564704vsd.36.1585232686373; Thu, 26 Mar 2020 07:24:46 -0700 (PDT) MIME-Version: 1.0 References: <1585177607309-0.post@n7.nabble.com> <035575fc-fc65-389b-41ec-db24fbddffe8@klos.com> <1585232441667-0.post@n7.nabble.com> In-Reply-To: <1585232441667-0.post@n7.nabble.com> From: Trampas Stern Date: Thu, 26 Mar 2020 10:24:35 -0400 Message-ID: To: Mailing list for lwIP users Content-Type: multipart/alternative; boundary="00000000000028693e05a1c2bfc9" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::e34 Subject: Re: [lwip-users] lwip hangs after >12 hours of work X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Mar 2020 14:24:50 -0000 --00000000000028693e05a1c2bfc9 Content-Type: text/plain; charset="UTF-8" Sounds like a possible stack overflow. On Thu, Mar 26, 2020 at 10:20 AM Artem Moroz wrote: > I have increased data download size and now it is hanging much more > frequently, approximately 10 minutes. I am investingating. > > > > -- > Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html > > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users --00000000000028693e05a1c2bfc9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Sounds like a possible stack overflow.=C2=A0


On Thu, Mar 26, 2020 at 10:20 AM Artem Moroz <artem.moroz@gmail.com> wrote:
I have increased data download size an= d now it is hanging much more
frequently, approximately 10 minutes. I am investingating.



--
Sent from: http://lwip.100.n7.nabble.com/lwip-users-= f3.html

_______________________________________________
lwip-users mailing list
lwip-users@nongn= u.org
https://lists.nongnu.org/mailman/listinfo/lwip-u= sers
--00000000000028693e05a1c2bfc9-- From MAILER-DAEMON Thu Mar 26 11:23:43 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jHUMB-0002rV-0x for mharc-lwip-users@gnu.org; Thu, 26 Mar 2020 11:23:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51990) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jHUM9-0002rP-3c for lwip-users@nongnu.org; Thu, 26 Mar 2020 11:23:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jHUM7-0003Wx-Ug for lwip-users@nongnu.org; Thu, 26 Mar 2020 11:23:40 -0400 Received: from n7.nabble.com ([162.253.133.57]:50531) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jHUM7-0003Wn-Ov for lwip-users@nongnu.org; Thu, 26 Mar 2020 11:23:39 -0400 Received: from n7.nabble.com (localhost [127.0.0.1]) by n7.nabble.com (Postfix) with ESMTP id 6E03914C9198A for ; Thu, 26 Mar 2020 08:23:30 -0700 (MST) Date: Thu, 26 Mar 2020 08:23:30 -0700 (MST) From: Artem Moroz To: lwip-users@nongnu.org Message-ID: <1585236210384-0.post@n7.nabble.com> In-Reply-To: References: <1585177607309-0.post@n7.nabble.com> <035575fc-fc65-389b-41ec-db24fbddffe8@klos.com> <1585232441667-0.post@n7.nabble.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Mac OS X [generic] X-Received-From: 162.253.133.57 Subject: Re: [lwip-users] lwip hangs after >12 hours of work X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Mar 2020 15:23:42 -0000 Can it be some problems in PPOS input path? Some data that may hang PPOS in case of bad input. I doubt this is stack overflow or timer wrap-around, I have double checked this -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html From MAILER-DAEMON Thu Mar 26 11:50:47 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jHUmJ-0004xM-Au for mharc-lwip-users@gnu.org; Thu, 26 Mar 2020 11:50:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56191) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jHUmG-0004wu-HF for lwip-users@nongnu.org; Thu, 26 Mar 2020 11:50:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jHUmF-0000LB-5Y for lwip-users@nongnu.org; Thu, 26 Mar 2020 11:50:40 -0400 Received: from mail.klos.com ([2602:fe6b:1012:1::da:155]:64666) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jHUmE-0000K0-UH for lwip-users@nongnu.org; Thu, 26 Mar 2020 11:50:39 -0400 Received: from [192.168.9.167] (pool-70-109-154-92.cncdnh.east.myfairpoint.net [70.109.154.92] (may be forged)) (authenticated bits=0) by mail.klos.com (8.15.2/8.15.2) with ESMTPSA id 02QFoTwL003450 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 26 Mar 2020 15:50:36 GMT To: lwip-users@nongnu.org References: <1585177607309-0.post@n7.nabble.com> <035575fc-fc65-389b-41ec-db24fbddffe8@klos.com> <1585232441667-0.post@n7.nabble.com> <1585236210384-0.post@n7.nabble.com> From: Patrick Klos Message-ID: Date: Thu, 26 Mar 2020 11:51:00 -0400 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 MIME-Version: 1.0 In-Reply-To: <1585236210384-0.post@n7.nabble.com> Content-Type: multipart/alternative; boundary="------------093DCD498E23A53F7BF075E0" Content-Language: en-US X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.klos.com [192.80.49.1]); Thu, 26 Mar 2020 15:50:36 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2602:fe6b:1012:1::da:155 Subject: Re: [lwip-users] lwip hangs after >12 hours of work X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Mar 2020 15:50:41 -0000 This is a multi-part message in MIME format. --------------093DCD498E23A53F7BF075E0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-MIME-Autoconverted: from 8bit to quoted-printable by mail.klos.com id 02QFoTwL003450 On 3/26/2020 11:23 AM, Artem Moroz wrote: > Can it be some problems in PPOS input path? Some data that may hang PPO= S in > case of bad input. I doubt this is stack overflow or timer wrap-around,= I > have double checked this I doubt an input issue would consistently show up at 12 hours on a=20 regular basis? How about the other questions? 1. Is it 12 hours after you boot your device or 12 hours after the connection is started [test by starting the connection an hour after booting the device]? 2. How many characters have been transmitted and received when the failure occurs? 3. How does the failure manifest itself?=C2=A0 Does your device actually crash or just stop communicating? You said it happens sooner if you do larger transfers??=C2=A0 Any other c= lues=20 with regards to that?? What more can you tell us about your usage? Patrick --------------093DCD498E23A53F7BF075E0 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-MIME-Autoconverted: from 8bit to quoted-printable by mail.klos.com id 02QFoTwL003450
On 3/26/2020 11:23 AM, Artem Moroz wrote:
Can it be some problems in P=
POS input path? Some data that may hang PPOS in
case of bad input. I doubt this is stack overflow or timer wrap-around, I
have double checked this

I doubt an input issue would consistently show up at 12 hours on a regular basis?

How about the other questions?=C2=A0
  1. Is it 12 hours after you boot your device or 12 hours after the connection is started [test by starting the connection an hour after booting the device]?=C2=A0
  2. How many characters have been transmitted and received when the failure occurs?
  3. How does the failure manifest itself?=C2=A0 Does your device actually crash or just stop communicating?
You said it happens sooner if you do larger transfers??=C2=A0 Any oth= er clues with regards to that??

What more can you tell us about your usage?

Patrick

--------------093DCD498E23A53F7BF075E0-- From MAILER-DAEMON Mon Mar 30 12:06:15 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jIwvX-00087k-Hi for mharc-lwip-users@gnu.org; Mon, 30 Mar 2020 12:06:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38025) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIwGV-0001GJ-Px for lwip-users@nongnu.org; Mon, 30 Mar 2020 11:23:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jIwGU-0004SF-SR for lwip-users@nongnu.org; Mon, 30 Mar 2020 11:23:51 -0400 Received: from n7.nabble.com ([162.253.133.57]:62292) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jIwGU-0004R6-MQ for lwip-users@nongnu.org; Mon, 30 Mar 2020 11:23:50 -0400 Received: from n7.nabble.com (localhost [127.0.0.1]) by n7.nabble.com (Postfix) with ESMTP id EBA0B14EB1250 for ; Mon, 30 Mar 2020 08:23:41 -0700 (MST) Date: Mon, 30 Mar 2020 08:23:41 -0700 (MST) From: newsthet To: lwip-users@nongnu.org Message-ID: <1585581821961-0.post@n7.nabble.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Mac OS X [generic] X-Received-From: 162.253.133.57 X-Mailman-Approved-At: Mon, 30 Mar 2020 12:06:13 -0400 Subject: [lwip-users] Extracting MAC from incoming packets X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Mar 2020 15:23:52 -0000 Hey, I'm new to lwIP, I use the UDP protocol to receive and forward packets. I need to filter packets by MAC address. Which part of the API will help me do it ? I've tried to look into it just couldn't find the how to. thank you very much if you can help me advance in this. -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html From MAILER-DAEMON Mon Mar 30 16:18:01 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jJ0rB-0006Jq-IH for mharc-lwip-users@gnu.org; Mon, 30 Mar 2020 16:18:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35577) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jJ0r9-0006Jj-4L for lwip-users@nongnu.org; Mon, 30 Mar 2020 16:18:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jJ0r7-0002IS-VY for lwip-users@nongnu.org; Mon, 30 Mar 2020 16:17:58 -0400 Received: from n7.nabble.com ([162.253.133.57]:51202) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jJ0r7-0002HB-PR for lwip-users@nongnu.org; Mon, 30 Mar 2020 16:17:57 -0400 Received: from n7.nabble.com (localhost [127.0.0.1]) by n7.nabble.com (Postfix) with ESMTP id E2B3C14EC7DEB for ; Mon, 30 Mar 2020 13:17:45 -0700 (MST) Date: Mon, 30 Mar 2020 13:17:45 -0700 (MST) From: sarp To: lwip-users@nongnu.org Message-ID: <1585599465870-0.post@n7.nabble.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Mac OS X [generic] X-Received-From: 162.253.133.57 Subject: [lwip-users] BSD - recv() does not return under 11bytes of message received. X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Mar 2020 20:18:00 -0000 Hello dear members, I've implemented a TCP server using LwIP BSD sockets. I've used recv() function to receive data and noticed that, function returns -1 for under 11 bytes of data. Meaning that it does not receive if amount of the incoming data is lower than 11 bytes. Some Signs: 1) If starting from sending more than 11 bytes and sending lower consecutively, no problem occurs. 2) If starting from sending lower than 11 bytes firstly from the client and sending more bytes after, the function does not return until disconnect. LwIP verson is 2.0.3 Any help is appreciated Kind Regards Sarp -- Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html From MAILER-DAEMON Mon Mar 30 20:13:25 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jJ4Wy-0003r4-TT for mharc-lwip-users@gnu.org; Mon, 30 Mar 2020 20:13:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36848) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jJ4Wu-0003pK-TO for lwip-users@nongnu.org; Mon, 30 Mar 2020 20:13:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jJ4Wt-0001XA-9i for lwip-users@nongnu.org; Mon, 30 Mar 2020 20:13:20 -0400 Received: from mail-co1nam11on2066.outbound.protection.outlook.com ([40.107.220.66]:6035 helo=NAM11-CO1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jJ4Ws-0001R2-Va for lwip-users@nongnu.org; Mon, 30 Mar 2020 20:13:19 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IYITUHHz7K4R0mMjysS+T4IVQym6qKBzLS3uoERCrWSrAUH713RcvvRJHlAXgtQ88BgPDzR90xS+NiF/s6adYVcbDIfkDcOowPPLIbLBN5oqdiIrdJ0dv/roM+WURnW6E7J8037AIWqisqfWIcw0oRtaC9cacSm+MV6aNni9uLuDgG5V4e0wNXNga07ENBnMJ2l9zOSndS7E54+7EgNzoGFTPmYY8TGzX+Bh7EIt8/g8E3UNII+ZZOcBTSn9/1iq0CiFIQvs8jT98hGZsNftGBe3G4IMLDfA4vA4mllmQgfhqzmqnfZD4WMlpFII0sPlAuaduvnOOcpFxsZye+U0AQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IE0NHtcSOyWXmlji1GnFEkFip7MbPJ29PLVwLx78KlA=; b=OMyY/ecXgDyJKN/xYTyiegzjylW7QyGXK/W2NmIcU0OGL+e5nVDSDqPMR1Mr3xaEMDy/pux44Q0w2LvietMIKVDOwOG5LYg4FoWmfzZLJ2STQFaNiVe+A44/unTc3X0MkFF4Je5oOXHfvFTn8BlDsR52CojvJ5E3jcoMdcdjKAK2UPxax1cRGuiOy1C/DISahb+zgVdUCYgJza1jNQ9riUM9G6JjMVwzYpZ6LLOTX3ve+ECTkiJsilFf+IiwM+LK5FGtsUH3YzvHV5d2K8ldGwkmZ75jGbFKQkI4HYmUyx+meVAUnLWQ5ArGmLYspcoTST26nNxAp+m0AwVZhS4WQw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=specinst.com; dmarc=pass action=none header.from=specinst.com; dkim=pass header.d=specinst.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=5208848821.onmicrosoft.com; s=selector1-5208848821-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IE0NHtcSOyWXmlji1GnFEkFip7MbPJ29PLVwLx78KlA=; b=hh2qjip5tv96Sedn8R1qWrV5gVGc0Sq5qG3xqdDYQr+BUlZgsjFMqg/Xlpgie4wti3APMV8xwGC6kYi+NBj1WyXPtnw2Fl5WgY7YcbRArXQg3X8cEr9O4IjiDMSA7xKKM1HbiPaURBjv5yBneANNxN2RJOZv/q2RfTXcJ2zkAeM= Received: from BY5PR12MB3940.namprd12.prod.outlook.com (2603:10b6:a03:1a8::15) by BY5PR12MB4163.namprd12.prod.outlook.com (2603:10b6:a03:202::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.20; Tue, 31 Mar 2020 00:13:14 +0000 Received: from BY5PR12MB3940.namprd12.prod.outlook.com ([fe80::d25:b964:cc2f:1a9b]) by BY5PR12MB3940.namprd12.prod.outlook.com ([fe80::d25:b964:cc2f:1a9b%6]) with mapi id 15.20.2856.019; Tue, 31 Mar 2020 00:13:14 +0000 From: Roger Cover To: Mailing list for lwIP users Thread-Topic: [lwip-users] Do not fragment (DF) in a UDP transmission. Thread-Index: AQHV8/abtMeBKoPNU0iwbUiDmRE7CKg81mYAgAOh2SqAAdRMgIAfqkuO Date: Tue, 31 Mar 2020 00:13:13 +0000 Message-ID: References: , In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=rcover@specinst.com; x-originating-ip: [65.121.185.242] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 01d3d854-330a-4dcd-0af7-08d7d5084e05 x-ms-traffictypediagnostic: BY5PR12MB4163: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 0359162B6D x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR12MB3940.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(376002)(366004)(136003)(39830400003)(396003)(346002)(76116006)(66556008)(81166006)(64756008)(8936002)(6916009)(66446008)(66946007)(81156014)(316002)(66476007)(2906002)(52536014)(86362001)(5660300002)(508600001)(71200400001)(8676002)(6506007)(7696005)(9686003)(186003)(26005)(966005)(53546011)(45080400002)(33656002)(55016002); DIR:OUT; SFP:1101; received-spf: None (protection.outlook.com: specinst.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UgVL0UOf4apg2fvI0bVEcGQhKHhKs0TKH/GS7SiChnPhR+LPll+USd1trDGwFRlWc2ZOPTNdjibVux5IUMiMDas56YXHAb2e0vdA6cwpzZ9ia57GE9oE70S37H5VFI1UMh5GUoVD2XHTs6qrF9lHiaEd2zTLZpoPo2aiETd6i/PmFwQj+LmUjATUNG19uzlyYnqG/n4hzGd/573cakrNsVx0eZP9ClcoLmwolHy6Hk+ZzXJg5QgXlrRe7Q7D1reUXmSrMsQlnq0/HVnwnRH84DKgpGsts3Yh3iPuuvHukGIoBEi9D2XQ/iorhmpso+MhYcqI7uqNw6Zk2lsDJMwOPK7wQ/0oVdr86P/r58nKI3lkkBGDIlo7OCbzQZC0jfBYxgYIcCFXpjhvmywHJh2j89631TDdr4P4l94iw6HeQ47CNuyuCTU/wjJ+RdBhRojy7mcLe/+O4ot9tFiLe1T0Mg3KxmmKxA2WI49jIzP1VHyTjCHYtbMVvUs8AggNufZPHhocbyhX3TBmySinecljkA== x-ms-exchange-antispam-messagedata: HWLiB7CEokpnWNULyY/E8fmDxmIGuGGYvjbW0XZSUI1a/ENjZxmn7egWiDI/n722lZJ7b0Wr/1tEvClLM7FUUVkT2rJVE7OWyxfml0kaPYyk+s7/fxioGsH4qycT8nOg+nJXjsZpdWihsvuMcooovA== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: specinst.com X-MS-Exchange-CrossTenant-Network-Message-Id: 01d3d854-330a-4dcd-0af7-08d7d5084e05 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2020 00:13:13.9443 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a4a21500-dc30-4a71-9ea4-6c5505810f8f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: aHlLzG/kY4CbhYFrINFrGXvpOeiCcbPnrv46piINIoHCQxQqnRLyDdg0lI9O00yeeIjJ1lEOxs2fuCc+cfUKeQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4163 X-detected-operating-system: by eggs.gnu.org: Windows NT kernel [generic] [fuzzy] X-Received-From: 40.107.220.66 Subject: Re: [lwip-users] Do not fragment (DF) in a UDP transmission. X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Mar 2020 00:13:22 -0000 Greetings Simon,=0A= =0A= I have implemented this by adding a flag bit for the struct pbuf field "fla= gs". There were two unused bits, so I named one PBUF_FLAG_DF. I then altere= d ip.c to use this flag to decide whether to set the DF flag in the IP pack= et header upon transmission. This method only added 2 lines to pbuf.h and a= dded 3 lines and altered one in ip.c.=0A= =0A= Here is the diff for pbuf.h (I am using lwIP 1.4.1):=0A= diff -r C:\Users\RCover\Documents\C_Source\9870\lwIP_1_4_1_lib\src\include\= lwip\pbuf.h M:\DRAWINGS\9870-_ECO3389\9870-.zip\lwIP_1_4_1_lib\src\include\= lwip\pbuf.h=0A= 78,79d77=0A= < /** indicates the IP header for this pbuf should have the DF flag set on = transmission */=0A= < #define PBUF_FLAG_DF 0x40U=0A= =0A= Here is the diff for ip.c:=0A= diff -r C:\Users\RCover\Documents\C_Source\9870\lwIP_1_4_1_lib\src\core\ipv= 4\ip.c M:\DRAWINGS\9870-_ECO3389\9870-.zip\lwIP_1_4_1_lib\src\core\ipv4\ip.= c=0A= 738,741c738=0A= < IPH_OFFSET_SET(iphdr, (p->flags & PBUF_FLAG_DF) ? PP_HTONS(IP_DF) : 0= );=0A= < #if CHECKSUM_GEN_IP_INLINE=0A= < chk_sum +=3D iphdr->_offset;=0A= < #endif /* CHECKSUM_GEN_IP_INLINE */=0A= ---=0A= > IPH_OFFSET_SET(iphdr, 0);=0A= =0A= I have tested this, and it works well. It has minimal impact on the lwIP so= urce, so hopefully it will be accepted.=0A= =0A= Regards,=0A= Roger W. Cover=0A= ________________________________________=0A= From: lwip-users on b= ehalf of goldsimon@gmx.de =0A= Sent: Tuesday, March 10, 2020 1:26 PM=0A= To: Mailing list for lwIP users=0A= Subject: Re: [lwip-users] Do not fragment (DF) in a UDP transmission.=0A= =0A= Am 09.03.2020 um 18:08 schrieb Roger Cover:=0A= > Greetings Simon,=0A= >=0A= > The Linux man pages mention the IP_PMTUDISC_DO flag that "forces the don'= t-fragment flag to be set on all outgoing packets" in the setsockopt() desc= ription.=0A= =0A= That will be for TCP only? Since we don't suppor MTU path discovery=0A= (yet?), that's of no use to us.=0A= >=0A= > The documentation for setsockopt() for BSD 4.3 lists the similar flag "IP= _DONTFRAG", with the qualifier "This option is supported for sockets with a= n address family of AF_INET and type of SOCK_DGRAM or SOCK_RAW only."=0A= =0A= That could be an option for lwIP. The real problem is that there doesn't=0A= seem to be a standard way for this, which is why we don't support it=0A= yet. But I guess adding this for IPv4 UDP and RAW would be a valid option.= =0A= =0A= Regards,=0A= Simon=0A= =0A= >=0A= > The Microsoft documentation at: https://docs.microsoft.com/en-us/windows/= win32/winsock/ipproto-ip-socket-options lists an option called IP_DONTFRAGM= ENT, about which they state "Microsoft TCP/IP providers respect this option= for UDP and ICMP."=0A= >=0A= > There is also a reference for the .NET framework at https://docs.microsof= t.com/en-us/dotnet/api/system.net.sockets.socket.dontfragment?view=3Dnetfra= mework-4.8 if you have any interest in that.=0A= >=0A= > There is also a comment I do not completely understand in the lwIP ip.c f= ile (line 790 in the ip_output_if() function, version 1.4.1) that states "d= on't fragment if interface has mtu set to 0."=0A= >=0A= > I am not very familiar with sockets programming. I did some 20 years ago,= but I am sure it has changed since then. I have been using the lwIP callba= ck API in all my products for the last 14 years. Since I am using the callb= ack API, I will need something that works through that API. I hope this inf= ormation is sufficient. I am very willing to patch my system and do testing= for you. I just need some guidance about where to make the changes. I have= been using lwIP for some time, but I have not paid that much attention to = its interior. It has always just worked for me, straight out of the box.=0A= >=0A= > Regards,=0A= > Roger W. Cover=0A= > ________________________________________=0A= > From: lwip-users on= behalf of goldsimon@gmx.de =0A= > Sent: Saturday, March 7, 2020 2:02 AM=0A= > To: Mailing list for lwIP users=0A= > Subject: Re: [lwip-users] Do not fragment (DF) in a UDP transmission.=0A= >=0A= > Am 06.03.2020 um 21:37 schrieb Roger Cover:=0A= >> Greetings,=0A= >>=0A= >> I am writing a video transmitter. The protocol I am using requires that = a "test packet" has its do not fragment bit set. This is used to determine = the maximum usable MTU of the intervening network nodes.=0A= >>=0A= >> I would like to know the recommended method for setting this bit in my U= DP transmission. I am currently using the ip_output_if() function, and it d= oes not have any arguments to allow this.=0A= >=0A= > That's currently not supported (hasn't been requested so far). If you=0A= > tell me a standard way to do that (e.g. how is it done on sockets), I=0A= > guess adding this should not be too hard.=0A= >=0A= > Regards,=0A= > Simon=0A= >=0A= > _______________________________________________=0A= > lwip-users mailing list=0A= > lwip-users@nongnu.org=0A= > https://lists.nongnu.org/mailman/listinfo/lwip-users=0A= >=0A= > _______________________________________________=0A= > lwip-users mailing list=0A= > lwip-users@nongnu.org=0A= > https://lists.nongnu.org/mailman/listinfo/lwip-users=0A= >=0A= =0A= =0A= _______________________________________________=0A= lwip-users mailing list=0A= lwip-users@nongnu.org=0A= https://lists.nongnu.org/mailman/listinfo/lwip-users=0A= From MAILER-DAEMON Tue Mar 31 15:35:06 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jJMfC-0002W5-C9 for mharc-lwip-users@gnu.org; Tue, 31 Mar 2020 15:35:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39920) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jJMfA-0002Vy-JG for lwip-users@nongnu.org; Tue, 31 Mar 2020 15:35:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jJMf9-0005ry-O6 for lwip-users@nongnu.org; Tue, 31 Mar 2020 15:35:04 -0400 Received: from mail-qk1-x72d.google.com ([2607:f8b0:4864:20::72d]:46720) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jJMf9-0005rn-KG for lwip-users@nongnu.org; Tue, 31 Mar 2020 15:35:03 -0400 Received: by mail-qk1-x72d.google.com with SMTP id u4so24348352qkj.13 for ; Tue, 31 Mar 2020 12:35:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=+PWp6lhMp360kBcPou0E0Fb6nwLMZYFx9w6HwGvz7Bw=; b=kbE6JQ7K1sfsZuBK/hkBSzZ2UJkYUpPWxy5Cq3YCQW+rmdDacq1+5CiHcViBKMyFQF /eyZOhvdk6jdcUyH6jGipyjcNjDMIF1ok9yl5cZFZHJ/0pObrN6vsGOeppQiPsK6vbke 21Uyhc7KMor+c06pNHoMAS5F8aXJTetS6rxffyYdPy5lH7AtzTjk2WQVZN216w8vzZOi o4JWJqvgYk6oyD7XpVP1u35M6lI0rToBMbG/lMs0rIL59W3eDj96bXSwxDQQvs1154dL F6UUsjrBzPIwEy+tTV+7n2dPaaCV3IWwUSKFmpamfZdGEXmcOM1Wn9eNg8hHCNLjfpB0 111g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=+PWp6lhMp360kBcPou0E0Fb6nwLMZYFx9w6HwGvz7Bw=; b=S+YFgq5JlwBTkOmO9GCLhA9NlJQC+f4yxpMlOEGVO4VGmPcBTNtIM3sIUiL8AOsYiY h/HC0fBncVZ+Ef7PCwvQBgdDtDjVwcvHul7l9h5Rc/Yi+KYTvyizrvs3A0vZOZNOfOoU CmVzI7vAp4cQ+G2j9tzpPZvkOWru2V6lTp0V14op9MTFIf3Xmcceqs5aBBYqPCHLN/JA SZrglTqzNhOgirU1bJl0pCd41B8fpP4vxMn1DpRP3mfMmgc0RMOs4li2eltSzBpdNnxl tKVWSxp6PlWyTKyy5AT2jOw6qJF1lCzKm5V/R6UTmV5kY36bpVgyU7uM08PpvvOo1z6M icFw== X-Gm-Message-State: ANhLgQ3g4I7d3B27MpVRZFETASCeLzVW059vZ3ffmgFSAl9ZzMhVSyBD lsMkfPL+hDX9GB9ud1c0YDoSwAJpZRV77dwBN+IwevBJ X-Google-Smtp-Source: ADFU+vsqM6h+euKzBGEFlXeiDFfDnNX/ZedfBzzIpRZq40syrmRoMRahtyY1QGqlbhQ6WI1osRRVRjy6G3ySrs+neYo= X-Received: by 2002:a05:620a:20dc:: with SMTP id f28mr6672444qka.216.1585683302365; Tue, 31 Mar 2020 12:35:02 -0700 (PDT) MIME-Version: 1.0 From: Massimiliano Cialdi Date: Tue, 31 Mar 2020 21:34:51 +0200 Message-ID: To: lwip-users@nongnu.org Content-Type: text/plain; charset="UTF-8" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::72d Subject: [lwip-users] bind with link down X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Mar 2020 19:35:05 -0000 I have a process that polls the PHY to find out if the link is up or down. It calls netif_set_link_up()/netif_set_link_down(). I also have the link callback calling netif_set_up()/netif_set_down(). I wonder what happens if the functions: conn = netconn_new(NETCONN_UDP); netconn_bind(conn, IP_ADDR_ANY, 7); are called when netif is still down. This happens because, for example, the udpecho_thread() process starts before the netif is up. Then when the link goes down while err = netconn_recv(conn, &buf); is waiting, it doesn't exit with an error. Is that correct? best regards Max -- Et nunc, auxilium solis, vincam! Oppugnatio solaris! VIS! Massimiliano Cialdi cialdi@gmail.com From MAILER-DAEMON Tue Mar 31 16:11:19 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jJNEF-0003gC-GW for mharc-lwip-users@gnu.org; Tue, 31 Mar 2020 16:11:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46948) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jJNEB-0003fA-TN for lwip-users@nongnu.org; Tue, 31 Mar 2020 16:11:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jJNEA-0000g5-Rm for lwip-users@nongnu.org; Tue, 31 Mar 2020 16:11:15 -0400 Received: from mout.gmx.net ([212.227.15.18]:39181) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jJNEA-0000b7-Dk for lwip-users@nongnu.org; Tue, 31 Mar 2020 16:11:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1585685472; bh=+PbNGC+Lw/NHWfYvCyaZP7GWP+woiIRXXsI2jby67HU=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=ALU4STO1IhZUW7SIQriW5ae+jw0y/u09nkrmktceRS3chMLRA7BS08llwD5eAxOow KHVDqsEY2Z86heKdT4k95EJqtnNeTF5FKuCy3OsXbKkUy9exm8Zw1XmosHydAnCV9U 4OouupK7JdfpngOhSyRGA6SQlTmr+0940ikbUIbM= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.2.184] ([176.199.209.189]) by mail.gmx.com (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MJVDW-1jdFWq0iu8-00JruF for ; Tue, 31 Mar 2020 22:11:12 +0200 To: Mailing list for lwIP users References: From: Simon Goldschmidt Message-ID: <452e0ec9-69f0-c2f5-e963-731db2de1b0a@gmx.de> Date: Tue, 31 Mar 2020 22:11:11 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:HtTxW0ESxUiNmej6zAFanCLbmZ3aT33n5t8Dr/QCTqvXW45jBQE oRn9kyB1h4gzSortA+SjbBM0h1kwxtdwjq4zzKlBzJ0s+qDA/8/gPbBntrDD/kZ9DbM4OOp L/eL+bmGlHJgil98Rnvov4xJquv+FIIAvFkrrZ69IQt3zLd1Xpl42RoGg/usz5LpxWgHPBb cjVG8dpijml3Hpje3tm/w== X-UI-Out-Filterresults: notjunk:1;V03:K0:y4jegNofoDQ=:scoYVFvSUZrdUyJolZMoTz TxN5iWB6ndaM0JE221BfK3t0jAInyB0+v1wM+9HYtDnbOHzW+WWKn9i/EkgVbknkC4ELRywpl KjBgT+WtA0Z02qzbdssPxG2tIsp3UeHjbkTISNVlwUrMJOByCpEMvq3BX4vaM31NY16R/zwaH oUNgI+XtgNZ4H6AEIZg7DkLIMcwNlseK7KUoEZwHgn4wqZ1zF41Fefgq2OJTP8XeyFSGpaCts zu+u9DVKRTakfkU6e2Q4UPgQisU3iTnJS8fcaIyD9i+UDuRKTxSEFIb6jcANg9YX3W3C8gn/t k6auNiG4WMxZhM7v4S2IkQK1pZlfwGakRiS9DVUGyM6LoOg1yovjM9snMhGpoPlfVnSWKioej ApzYRZlFHVebfYl7z2zCfNldlK6XqA/NfiEonPVMK/VKv+dtaGYhL3Q/yj0lmZw0VmhvVlMo3 XKNMBg4rGIc1qhsUfv55sJ6+40rHT9h1iT1oir45M828CwvwBO6xcCFSMlgfHWOHnVip4RYPU gC6e2Xc6ruD+KmRDVJlyM1F4hG4HIOW3ueDUcs42ucCmL5TnFItOTvT+Wf6An4MlZQ2rJ9PL6 +6qSzs8zyhvjucIoVOQpxIa4G+ypJ1C8bQJ4cUUBA33EMIkIquTi7bG6NL4aZGtuUtoaKlOyK rJIug8C7RDV3Vjk3bOaKaCJoxIJIuRampxAMB/T+fbc8RN/b4jmY7F/neAKra0Aym7F2CrLfj 5a6RICXGHhuz+Xf31NPmNF/xC5c3q+T6ynlJ7e3rD7XPc0K73PzVrU+1iZNsph8VPW4xqwCQb qIohCsHzHyzN1WXdByuwuBlfyFx5lEdqRC8A3GBdZgfZB+LOD17X41gWIt/v1KAYBx0rlRVwG sjRt/lVcwO65GbaE50p7qkZIrl1SLhly1pgCw8Yp6+mI5K0k5ov4gwAnxXRxhSu60CZm/PHxD FNk4pV5aoa/wk/s+sZ95OL5nsE/k0voDH01AKpwXcTW6KuXG43XjnvXDiQvSpQGB5EgdY8iiK vgoxLO65iOYDAnJLxwrwm5jRwqhk1mFwC6hud+cdh30vFj2Acvb5YRIK/JTjyuTfVxb1IgUI9 2KxjqhXAdp+WuXkVucD4KUKA1pQQSrBXOG7rtybUBj270HbLFFlPxdNSWIOFfSUiY76cwLhR/ 6NOaqYnofJv7uRNicN0dSObIWn7Y+iNXND/RUuWqlmz7C1yED7TDUCm8PUGp++xHvqyVLJEx3 nuQkERLcKMjbeiG5M X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.15.18 Subject: Re: [lwip-users] bind with link down X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Mar 2020 20:11:17 -0000 On 31.03.2020 21:34, Massimiliano Cialdi wrote: > I have a process that polls the PHY to find out if the link is up or > down. It calls netif_set_link_up()/netif_set_link_down(). I also have > the link callback calling netif_set_up()/netif_set_down(). You're mixing link state with admin state here. That might work, but might not work in some situations. > > I wonder what happens if the functions: > conn =3D netconn_new(NETCONN_UDP); > netconn_bind(conn, IP_ADDR_ANY, 7); > are called when netif is still down. This happens because, for > example, the udpecho_thread() process starts before the netif is up. > > Then when the link goes down while > err =3D netconn_recv(conn, &buf); > is waiting, it doesn't exit with an error. Is that correct? Correct or not depends on how you define it. There's currently no code in lwIP to unblock on link loss. That could only work if you're bound to a netif. I'm not sure if what you think of works in other stacks. Regards, Simon From MAILER-DAEMON Tue Mar 31 16:47:32 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jJNnI-0003hm-Nz for mharc-lwip-users@gnu.org; Tue, 31 Mar 2020 16:47:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57432) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jJNnG-0003he-HA for lwip-users@nongnu.org; Tue, 31 Mar 2020 16:47:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jJNnF-0008Dp-Jt for lwip-users@nongnu.org; Tue, 31 Mar 2020 16:47:30 -0400 Received: from mail-qk1-x733.google.com ([2607:f8b0:4864:20::733]:36994) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jJNnF-0008CT-DA for lwip-users@nongnu.org; Tue, 31 Mar 2020 16:47:29 -0400 Received: by mail-qk1-x733.google.com with SMTP id x3so24678611qki.4 for ; Tue, 31 Mar 2020 13:47:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=DNFkuPLiOyPe/TFt5zZbPZaaQuq1jtsnSvskX1eMMVE=; b=ORq923sHodfy53J9mWy7yb4PLLZxnseGr/w9mMbwrgfHWlvAlGxlsvQnCia5w0CdkB WIwbIhpbQCm49owAkt72lyy7St1ryHfuWZdiOvfI+n0c5jqqWl/KFtbPqNZppyKPUem2 5ewOIQQpEpIlkLncsjzTpb1wOIf13N66q2wAOrdfxuXUDstSSHPn4h20XyR2MwpydqVr /8z56WwdpPxL47e1Nbh+FEpL+JBIAKKax+j73ClgwpTrhi7ilGsrDreXJqir3U1acZdO bdjKslfkKA0JxYvT5vV/xspRrc9hxJsS/RxSfdnoxDpnIBftibYfpEY8NK19Bkupx7mw 3+5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=DNFkuPLiOyPe/TFt5zZbPZaaQuq1jtsnSvskX1eMMVE=; b=Kj6yrAeLDTT+J0UrQX91N+2HljkgjLNNo9M0SN8HFetEo06av3RYrG7LGG221r7R9r aoTzCdUKboeCsqoWVc7gap3YbH11pp4LxEa5/0LvNQd6+jMvm1e6cpEYCLAdDB/6Gvlg K48A6DfXvJ4//qn3Od67h8CZV6bV6qVtrfPIXO/pHscWwOQPFaHXaWiSESmpqxJP623f dgdZoYRhmjzoo/Vc85GsbSPAK163hqqpEBArLrJTEjP6oydB8WG/TjjbdkFvj7XPt+01 NHk3C2z/OIggGRsoNyNJ9z6eZhuWeCQUQsilkbb2yrFuk6ASIfPk2d/klFhlCLA3UEfl uwGA== X-Gm-Message-State: ANhLgQ2XA11FBi0M5E7dRZEE0jLsKskMGUFsaFzPXz8Bt9ExtheUhXhW wt19bfNn5pWYjqYA5qevWmofHD+t9MTIldDTxsudPbcB X-Google-Smtp-Source: ADFU+vuj8eQumk6vs0a7cJMIh+at18Uy6QQId443Twc+EIJHsjbI/iyk9cRWeyY/JvWRwayG/afw3ih1HtbH2bB4yQg= X-Received: by 2002:a37:a2d7:: with SMTP id l206mr6826007qke.141.1585687647898; Tue, 31 Mar 2020 13:47:27 -0700 (PDT) MIME-Version: 1.0 References: <452e0ec9-69f0-c2f5-e963-731db2de1b0a@gmx.de> In-Reply-To: <452e0ec9-69f0-c2f5-e963-731db2de1b0a@gmx.de> From: Massimiliano Cialdi Date: Tue, 31 Mar 2020 22:47:16 +0200 Message-ID: To: Mailing list for lwIP users Content-Type: text/plain; charset="UTF-8" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::733 Subject: Re: [lwip-users] bind with link down X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Mar 2020 20:47:31 -0000 On Tue, Mar 31, 2020 at 10:11 PM Simon Goldschmidt wrote: > You're mixing link state with admin state here. That might work, but > might not work in some situations. It's not so clear to me. Which pattern should I adopt to keep the link status under control? What do you mean by 'admin state'? How should the admin state be affected by the link state? > > Then when the link goes down while > > err = netconn_recv(conn, &buf); > > is waiting, it doesn't exit with an error. Is that correct? > Correct or not depends on how you define it. There's currently no code When you say "depends on how you define it.", what are you talking about? > in lwIP to unblock on link loss. That could only work if you're bound to > a netif. I'm not sure if what you think of works in other stacks. What other stacks? Stacks other than lwip? best regards Max -- Et nunc, auxilium solis, vincam! Oppugnatio solaris! VIS! Massimiliano Cialdi cialdi@gmail.com From MAILER-DAEMON Tue Mar 31 17:49:09 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jJOku-0000It-C6 for mharc-lwip-users@gnu.org; Tue, 31 Mar 2020 17:49:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48173) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jJOkr-0000IV-Fk for lwip-users@nongnu.org; Tue, 31 Mar 2020 17:49:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jJOkq-00043P-G2 for lwip-users@nongnu.org; Tue, 31 Mar 2020 17:49:05 -0400 Received: from mail-ua1-x92d.google.com ([2607:f8b0:4864:20::92d]:39316) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jJOkq-000414-BZ for lwip-users@nongnu.org; Tue, 31 Mar 2020 17:49:04 -0400 Received: by mail-ua1-x92d.google.com with SMTP id z7so3911350uai.6 for ; Tue, 31 Mar 2020 14:49:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=MPFZbvjaXK0iUtBbnuV3Q7DeliQRxOvrRT2HdRaUHYk=; b=IqglN5gIwIw5YuxxV3Lpfl6eRyj9oREVzDu1Gl2pj89N5NhT/lt70XjxIA5GnG7qM7 CaInbYP22mxv8lEOIMyKyANa9V5t1Oj3btktOV6tumD3zGFYiomZtZX1Szq0k2Z+jV2p JxIB/7daYBUvEhSWUCyDUgClOxLwwI8CS8zUWUfmemYoMjATQSsLCqwr1yQk2009Tdfk 0Z7YdoEWg1P/RldlqAlQciLXOF46weAKTaBnbRRQOYnPgeE11yDTFAPsiANOzw3b5o0l GdxsjCaPb8jilEIosPtfpoW1CmnQOm0ZOKBP117piI7WeYZGUdFjSqV+EyiSF3uMYIm4 cC1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=MPFZbvjaXK0iUtBbnuV3Q7DeliQRxOvrRT2HdRaUHYk=; b=lDB77EBtaNX15qACV3kl7ejxpHYel+7uRxFalQ6ajkWP5xqRskwZH2z/b1Y2wKgFrJ jeNkNNHsYRZVMJrvScSdbnw1qYkPxJ5QgYJYhL39Hui+nG52KnT4J/UzAnORWpTWsIKv vpI5Y+uNiTCNlRhqtTq1Ap0wVU3IoYEpO+KvevjXJDj4nut1EJ/19KRXdh8leWAVVhG1 7Pz9tJZP0PU9QVeoio8orjF+GsK/Ii3YZ/w6HJxwVAhirYQYZzkjzb6Qze0QhtImqOp5 ArnDSPFa+wU5PGzi0RZ+xyG0v8hjaySrxXWb57WG45s8crDC5xoFvV+rhEKj+TYd2Zx4 F5+Q== X-Gm-Message-State: AGi0PubSheo7RVfHl1doG6IYWUHcY5TvPPQ+wbBH4c1bqrVso5/ZtJE9 Wwi6PnWD9w+E7fKGZT9B2xGiKK6X4EeCWq+5vY7ZJcAb X-Google-Smtp-Source: APiQypI9ILUX94bm1LZgu80b6K3Yf3Vxr8wW6/PP64BJd9RxK05XlTiFgto8ZSL5vk5sGx2IwoVCinigyuBDnEmBiYg= X-Received: by 2002:a9f:2f07:: with SMTP id x7mr13591399uaj.137.1585691342808; Tue, 31 Mar 2020 14:49:02 -0700 (PDT) MIME-Version: 1.0 From: Trampas Stern Date: Tue, 31 Mar 2020 17:48:52 -0400 Message-ID: To: Mailing list for lwIP users Content-Type: multipart/alternative; boundary="000000000000362aea05a22d89d7" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::92d Subject: [lwip-users] Network mapped drive X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Mar 2020 21:49:06 -0000 --000000000000362aea05a22d89d7 Content-Type: text/plain; charset="UTF-8" Has anyone used LWIP to create a mass storage device that can mapped as a drive on a PC? That is a samba or other type of server? --000000000000362aea05a22d89d7 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Has anyone used LWIP to create a mass storage device that = can mapped as a drive on a PC?=C2=A0 That is a samba or other type of serve= r?=C2=A0
--000000000000362aea05a22d89d7-- From MAILER-DAEMON Tue Mar 31 17:51:31 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jJOnD-0001n0-6T for mharc-lwip-users@gnu.org; Tue, 31 Mar 2020 17:51:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54804) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jJOn9-0001mn-LW for lwip-users@nongnu.org; Tue, 31 Mar 2020 17:51:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jJOn6-0000o0-8z for lwip-users@nongnu.org; Tue, 31 Mar 2020 17:51:26 -0400 Received: from mail6.saint-gobain.com ([77.158.16.88]:55612) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jJOn4-0000j2-O9 for lwip-users@nongnu.org; Tue, 31 Mar 2020 17:51:23 -0400 Received: from pps.filterd (ppmail23.saint-gobain.com [127.0.0.1]) by ppmail23.saint-gobain.com (8.16.0.42/8.16.0.42) with SMTP id 02VLpIGn039305 for ; Tue, 31 Mar 2020 23:51:18 +0200 From: "Bomsta, Dan" To: "lwip-users@nongnu.org" Thread-Topic: Network Loss causes network to go down Thread-Index: AdYHpO2TkNmwFAuuRFqU5zfGDHr9rQ== Date: Tue, 31 Mar 2020 21:51:07 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Content-Type: multipart/alternative; boundary="_000_ac44a38cf16141889430bdd5f615d91fsageglasscom_" MIME-Version: 1.0 x-stgb-extloop1: 1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.676 definitions=2020-03-31_07:2020-03-31, 2020-03-31 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 malwarescore=0 impostorscore=0 priorityscore=1501 spamscore=0 clxscore=1011 bulkscore=0 mlxscore=0 suspectscore=0 phishscore=0 mlxlogscore=590 adultscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2003310178 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 77.158.16.88 Subject: [lwip-users] Network Loss causes network to go down X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Mar 2020 21:51:29 -0000 --_000_ac44a38cf16141889430bdd5f615d91fsageglasscom_ Content-Type: text/plain; charset="windows-1258" Content-Transfer-Encoding: quoted-printable I have am working on an issue with our device. First here are the particu= lars Micro: STM32F427 LwIP: 2.0.3 WolfSSL: 3.15.3 Microchip managed switch KSZ8863RLLI. If one removes the Ethernet cable from our device (typically during heavy t= raffic) the network is not usable for many minutes upon reconnecting the Et= hernet cable. I have been printing WolfSSL debug messages and Lwip debug m= essages without solving the issue yet. No, we do not have the ability to =93hardware=94 determine when the cable i= s unplugged. Our system has these devices =93daisy chained=94 so one would= need to ping to determine if the network is available. The last good trac= e I got is this (then my laptop crashed) ip4_route: No route to 172.20.0.14 data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q tcp_slowtmr: processing active pcb data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q tcp_slowtmr: processing active pcb data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q tcp_slowtmr: polling application b data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q ip4_route: No route to 172.20.0.14 data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q [512942] Link up? 0 tcp_slowtmr: processing active pcb data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q tcp_slowtmr: processing active pcb data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q tcp_slowtmr: polling application b data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q ip4_route: No route to 172.20.0.14 data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q tcp_slowtmr: processing active pcb data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q tcp_slowtmr: processing active pcb data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q tcp_slowtmr: polling application b data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q ip4_route: No route to 172.20.0.14 data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q [514966] Link up? 0 tcp_slowtmr: processing active pcb data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q tcp_slowtmr: processing active pcb data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q tcp_slowtmr: polling application b data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q ip4_route: No route to 172.20.0.14 data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q tcp_slowtmr: processing active pcb data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q [517070] Link up? 0 tcp_slowtmr: processing active pcb data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q tcp_slowtmr: polling application b data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q ip4_route: No route to 172.20.0.14 data=3D0x0 =3D0x0) sum) 4ac (0x14ac, 0x14ac, 0x64080000) ) x64080000) ac, 0x14ac, 0x64080000) JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q T Any ideas would be greatly appreciated. Dan --_000_ac44a38cf16141889430bdd5f615d91fsageglasscom_ Content-Type: text/html; charset="windows-1258" Content-Transfer-Encoding: quoted-printable

I have am working  on an issue with our device.=   First here are the particulars

Micro:  STM32F427

LwIP: 2.0.3

WolfSSL: 3.15.3

Microchip managed switch KSZ8863RLLI.

 

If one removes the Ethernet cable from our device (t= ypically during heavy traffic) the network is not usable for many minutes u= pon reconnecting the Ethernet cable.  I have been printing WolfSSL deb= ug messages and Lwip debug messages without solving the issue yet.

 

No, we do not have the ability to =93hardware=94 det= ermine when the cable is unplugged.  Our system has these devices =93d= aisy chained=94 so one would need to ping to determine if the network is av= ailable.  The last good trace I got is this (then my laptop crashed)

 

ip4_route: No route to 172.20.0.14

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

tcp_slowtmr: polling application

b

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

ip4_route: No route to 172.20.0.14

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

[512942] Link up? 0

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

tcp_slowtmr: polling application

b

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

ip4_route: No route to 172.20.0.14

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

tcp_slowtmr: polling application

b

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

ip4_route: No route to 172.20.0.14

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

[514966] Link up? 0

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

tcp_slowtmr: polling application

b

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

ip4_route: No route to 172.20.0.14

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

[517070] Link up? 0

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

tcp_slowtmr: polling application

b

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

ip4_route: No route to 172.20.0.14

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=B2=D3d=CA=DA@=A80=CF$=FC=87ou=F3=E6q<= /p>

T

 

Any ideas would be greatly appreciated.

 

Dan

--_000_ac44a38cf16141889430bdd5f615d91fsageglasscom_-- From MAILER-DAEMON Tue Mar 31 18:10:56 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jJP60-0007cq-IJ for mharc-lwip-users@gnu.org; Tue, 31 Mar 2020 18:10:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50546) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jJP5v-0007c2-Qa for lwip-users@nongnu.org; Tue, 31 Mar 2020 18:10:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jJP5t-000541-EY for lwip-users@nongnu.org; Tue, 31 Mar 2020 18:10:51 -0400 Received: from mail-ua1-x92d.google.com ([2607:f8b0:4864:20::92d]:44022) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jJP5t-000505-5n for lwip-users@nongnu.org; Tue, 31 Mar 2020 18:10:49 -0400 Received: by mail-ua1-x92d.google.com with SMTP id g24so8318123uan.10 for ; Tue, 31 Mar 2020 15:10:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=cF9VfM3L8zU1bYwk/tX2voYRD7BSLdIrmL4iDKTo3LE=; b=qetO/To5TFlNcT5g7Of6Dt6MJfzk7W6iipC0vJQRUUNFAZToljxAUVybzhNh415Mj8 D7Wfby6VyZdUpZohKzq68hfRQ0ENKq5DSTzJVkDs2NNQmRZ1pfFCQNpmYM90H99zInTD DE15UL/5wQaytn0iDeOzBCIiImibq+SM1ifSCKAn6KJHPm34WOyqa3kcX5GHNYKRxLYX HRFMrOGPfpbY0vEkLxCajd2zCRPPtzZC+rwXWkCXVGQpurPJv41X3s1HBueY8snBLJtY N6tLSZt+zkHl50Zz0Y+5e6OfnV0nEDK74D2ckDFDS652detyCSCwBBgc/vGXvGrVLpTS CjTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=cF9VfM3L8zU1bYwk/tX2voYRD7BSLdIrmL4iDKTo3LE=; b=oMDupeJb5tUYyNs07CxzvhGepN2P4JPEnl73A0ZhIjLyZjMfwhNJgNsThDN+Ej997l YUC0ir1MF6z1k6pvl/LSxwNi7vlfxTNAWvyubh9V0key1LIwBO5Bzqhlslp6np4mA02V zjHWNt6PyW6HVgvy8HaVf3mAKVGnxKyJno0DUsDfwz2dEQGXBCCk6S2bIeZaNXmujcm8 A6RzZy83BYIvCUymekCb7iiHMx88VI61qbZzDFZMT/YgNdQFvKeANrFQIKUehqLEkTwv KpxWKQvhjlGVab4nLf1gZDMPpWPbLF/NOK89SGnW9nXHbAdt2+D4pVCH5eNsKL4KsJrN nqXQ== X-Gm-Message-State: AGi0PuY7OXKJQ5nLcvc51JQMUUmHE58s+dfAUcPM1c4UMKPwQnw9NDoJ orboNdztcHf+eWt1Xly54aUOEaLHsJVRnQvvDN5xKTx8 X-Google-Smtp-Source: APiQypKKA8xqnUxjjTD6FLyTfqONs+Vjlc3zVZhAuy8crULarfixLMecu+TbB+yd3ApDrrgdMSHhXgN62PtSqNBxIKc= X-Received: by 2002:a9f:2f07:: with SMTP id x7mr13661329uaj.137.1585692647288; Tue, 31 Mar 2020 15:10:47 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Trampas Stern Date: Tue, 31 Mar 2020 18:10:36 -0400 Message-ID: To: Mailing list for lwIP users Content-Type: multipart/alternative; boundary="000000000000f6f63205a22dd638" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::92d Subject: Re: [lwip-users] Network Loss causes network to go down X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Mar 2020 22:10:55 -0000 --000000000000f6f63205a22dd638 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Dan, I had been using a RMII phy and noticed similar issues. Specifically I could not detect cable connected or disconnected using the RMII, the link activity bit does not work for cable connected/disconnected. I was shocked to find that RMII did not provide this functionality. Sure the LED blink but no bits in the RMII register map changes when cable is inserted or not. We had problems where it timeouts in setting up the netif/lwip were causing watch dog time outs if cable was unplugged on boot. Then when cable was removed and reinserted (not a normal case for our device) we were having similar issues as you. We could not find a way to know if the cable was connected or not, except by redesigning hardware. So we are redesigning hardware to use hardware cable connection detection using PHY carrier sense pin. The plan was try and shutdown lwip and restart netif and lwip when cable was plugged back in. Trampas On Tue, Mar 31, 2020 at 5:51 PM Bomsta, Dan wrote: > I have am working on an issue with our device. First here are the > particulars > > Micro: STM32F427 > > LwIP: 2.0.3 > > WolfSSL: 3.15.3 > > Microchip managed switch KSZ8863RLLI. > > > > If one removes the Ethernet cable from our device (typically during heavy > traffic) the network is not usable for many minutes upon reconnecting the > Ethernet cable. I have been printing WolfSSL debug messages and Lwip deb= ug > messages without solving the issue yet. > > > > No, we do not have the ability to =E2=80=9Chardware=E2=80=9D determine wh= en the cable is > unplugged. Our system has these devices =E2=80=9Cdaisy chained=E2=80=9D = so one would need > to ping to determine if the network is available. The last good trace I > got is this (then my laptop crashed) > > > > ip4_route: No route to 172.20.0.14 > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > tcp_slowtmr: processing active pcb > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > tcp_slowtmr: processing active pcb > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > tcp_slowtmr: polling application > > b > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > ip4_route: No route to 172.20.0.14 > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > [512942] Link up? 0 > > tcp_slowtmr: processing active pcb > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > tcp_slowtmr: processing active pcb > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > tcp_slowtmr: polling application > > b > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > ip4_route: No route to 172.20.0.14 > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > tcp_slowtmr: processing active pcb > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > tcp_slowtmr: processing active pcb > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > tcp_slowtmr: polling application > > b > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > ip4_route: No route to 172.20.0.14 > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > [514966] Link up? 0 > > tcp_slowtmr: processing active pcb > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > tcp_slowtmr: processing active pcb > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > tcp_slowtmr: polling application > > b > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > ip4_route: No route to 172.20.0.14 > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > tcp_slowtmr: processing active pcb > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > [517070] Link up? 0 > > tcp_slowtmr: processing active pcb > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > tcp_slowtmr: polling application > > b > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > ip4_route: No route to 172.20.0.14 > > data=3D0x0 > > =3D0x0) > > sum) > > 4ac (0x14ac, 0x14ac, 0x64080000) > > ) > > x64080000) > > ac, 0x14ac, 0x64080000) > > JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2=80=A1ou=C3=B3=C4=87q > > T > > > > Any ideas would be greatly appreciated. > > > > Dan > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users --000000000000f6f63205a22dd638 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Dan,

I had been using a RMII phy and no= ticed similar=C2=A0issues.=C2=A0 Specifically I could not detect cable conn= ected or disconnected using the RMII, the link activity bit does not work f= or cable connected/disconnected.=C2=A0 I was shocked to find that RMII did = not provide this functionality.=C2=A0 Sure the LED blink but no bits in the= RMII register map changes when cable is inserted or not.=C2=A0
<= br>
We had problems where it timeouts in setting up the netif/lwi= p=C2=A0 were causing watch dog time outs if cable was unplugged on boot. Th= en when cable was removed and reinserted (not a normal case for our device)= we were having similar issues as you.=C2=A0 We could not find a way to kno= w if the cable was connected or not, except by redesigning hardware.=C2=A0 = So we are redesigning hardware to use hardware cable connection detection u= sing PHY carrier sense pin.=C2=A0 =C2=A0The plan was try and shutdown lwip = and restart netif and lwip when cable was plugged back in.=C2=A0=C2=A0

Trampas


On Tue, Mar 31, 2020 at 5:= 51 PM Bomsta, Dan <Dan.Bomst= a@sageglass.com> wrote:

I have am working=C2=A0 on an issue with our device.= =C2=A0 First here are the particulars

Micro:=C2=A0 STM32F427

LwIP: 2.0.3

WolfSSL: 3.15.3

Microchip managed switch KSZ8863RLLI.<= /p>

=C2=A0

If one removes the Ethernet cable from our device (t= ypically during heavy traffic) the network is not usable for many minutes u= pon reconnecting the Ethernet cable.=C2=A0 I have been printing WolfSSL deb= ug messages and Lwip debug messages without solving the issue yet.

=C2=A0

No, we do not have the ability to =E2=80=9Chardware= =E2=80=9D determine when the cable is unplugged.=C2=A0 Our system has these= devices =E2=80=9Cdaisy chained=E2=80=9D so one would need to ping to deter= mine if the network is available.=C2=A0 The last good trace I got is this (= then my laptop crashed)

=C2=A0

ip4_route: No route to 172.20.0.14

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

tcp_slowtmr: polling application

b

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

ip4_route: No route to 172.20.0.14

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

[512942] Link up? 0

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

tcp_slowtmr: polling application

b

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

ip4_route: No route to 172.20.0.14

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

tcp_slowtmr: polling application

b

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

ip4_route: No route to 172.20.0.14

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

[514966] Link up? 0

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

tcp_slowtmr: polling application

b

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

ip4_route: No route to 172.20.0.14

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

[517070] Link up? 0

tcp_slowtmr: processing active pcb

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

tcp_slowtmr: polling application

b

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

ip4_route: No route to 172.20.0.14

data=3D0x0

=3D0x0)

sum)

4ac (0x14ac, 0x14ac, 0x64080000)

)

x64080000)

ac, 0x14ac, 0x64080000)

JSH=CB=9B=C3=93d=C4=98=C3=9A@=C2=A80=C4=8E$=C3=BC=E2= =80=A1ou=C3=B3=C4=87q

T

=C2=A0

Any ideas would be greatly appreciated.

=C2=A0

Dan

_______________________________________________
lwip-users mailing list
lwip-users@nongn= u.org
https://lists.nongnu.org/mailman/listinfo/lwip-u= sers
--000000000000f6f63205a22dd638-- From MAILER-DAEMON Tue Mar 31 18:45:27 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1jJPdP-0006SN-7r for mharc-lwip-users@gnu.org; Tue, 31 Mar 2020 18:45:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39076) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jJPdK-0006S0-J9 for lwip-users@nongnu.org; Tue, 31 Mar 2020 18:45:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jJPdE-0006Q0-6f for lwip-users@nongnu.org; Tue, 31 Mar 2020 18:45:18 -0400 Received: from mail10.saint-gobain.com ([77.158.16.85]:33032) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jJPdD-00069s-LH for lwip-users@nongnu.org; Tue, 31 Mar 2020 18:45:16 -0400 Received: from pps.filterd (ppmail25.saint-gobain.com [127.0.0.1]) by ppmail25.saint-gobain.com (8.16.0.42/8.16.0.42) with SMTP id 02VMfSHc144507 for ; Wed, 1 Apr 2020 00:45:12 +0200 From: "Bomsta, Dan" To: Mailing list for lwIP users Thread-Topic: [lwip-users] Network Loss causes network to go down Thread-Index: AdYHpO2TkNmwFAuuRFqU5zfGDHr9rQAJc2kAAAdFkVA= Date: Tue, 31 Mar 2020 22:45:09 +0000 Message-ID: <7ed64c5de1a04687b9340f61fa77832c@sageglass.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Content-Type: multipart/alternative; boundary="_000_7ed64c5de1a04687b9340f61fa77832csageglasscom_" MIME-Version: 1.0 x-stgb-extloop1: 1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.676 definitions=2020-03-31_07:2020-03-31, 2020-03-31 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 adultscore=0 impostorscore=0 mlxlogscore=999 clxscore=1015 mlxscore=0 lowpriorityscore=0 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 priorityscore=1501 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2003310183 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 77.158.16.85 Subject: Re: [lwip-users] Network Loss causes network to go down X-BeenThere: lwip-users@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for lwIP users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Mar 2020 22:45:25 -0000 --_000_7ed64c5de1a04687b9340f61fa77832csageglasscom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzIFRyYW1wYXMhICBZb3Ugd2VudCBkb3duIHRoZSBzYW1lIHJvYWQgSSBzdGFydGVkIG9u IHdpdGggdGhlIGFiaWxpdHkgdG8gZGV0ZWN0IHRoZSBkaXNjb25uZWN0aW9uLiAgSSB3YXMgdG9s ZCB3ZSBjYW5ub3QgY2hhbmdlIHRoZSBoYXJkd2FyZSwgc28gSSBhbSB0cnlpbmcgdG8gZmluZCB0 aGUgY29ycmVjdCBsb2NhdGlvbiBpbiBMd2lwIHRvIOKAnGNsZWFuIHVw4oCdIHdoZW4gdGhlcmUg aXMgbm8gcm91dGUuICBKdXN0IGhhdmVu4oCZdCBmb3VuZCBpdCB5ZXQuDQoNClRoZSBjb3JyZWN0 IHNvbHV0aW9uIGluIHVzaW5nIHRoZSBjYXJyaWVyIHNlbnNlIHBpbi4NCg0KVGhhbmtzIGFnYWlu LA0KRGFuDQoNCkZyb206IGx3aXAtdXNlcnMgPGx3aXAtdXNlcnMtYm91bmNlcytkYW4uYm9tc3Rh PXNhZ2VnbGFzcy5jb21Abm9uZ251Lm9yZz4gT24gQmVoYWxmIE9mIFRyYW1wYXMgU3Rlcm4NClNl bnQ6IFR1ZXNkYXksIE1hcmNoIDMxLCAyMDIwIDU6MTEgUE0NClRvOiBNYWlsaW5nIGxpc3QgZm9y IGx3SVAgdXNlcnMgPGx3aXAtdXNlcnNAbm9uZ251Lm9yZz4NClN1YmplY3Q6IFJlOiBbbHdpcC11 c2Vyc10gTmV0d29yayBMb3NzIGNhdXNlcyBuZXR3b3JrIHRvIGdvIGRvd24NCg0KRGFuLA0KDQpJ IGhhZCBiZWVuIHVzaW5nIGEgUk1JSSBwaHkgYW5kIG5vdGljZWQgc2ltaWxhciBpc3N1ZXMuICBT cGVjaWZpY2FsbHkgSSBjb3VsZCBub3QgZGV0ZWN0IGNhYmxlIGNvbm5lY3RlZCBvciBkaXNjb25u ZWN0ZWQgdXNpbmcgdGhlIFJNSUksIHRoZSBsaW5rIGFjdGl2aXR5IGJpdCBkb2VzIG5vdCB3b3Jr IGZvciBjYWJsZSBjb25uZWN0ZWQvZGlzY29ubmVjdGVkLiAgSSB3YXMgc2hvY2tlZCB0byBmaW5k IHRoYXQgUk1JSSBkaWQgbm90IHByb3ZpZGUgdGhpcyBmdW5jdGlvbmFsaXR5LiAgU3VyZSB0aGUg TEVEIGJsaW5rIGJ1dCBubyBiaXRzIGluIHRoZSBSTUlJIHJlZ2lzdGVyIG1hcCBjaGFuZ2VzIHdo ZW4gY2FibGUgaXMgaW5zZXJ0ZWQgb3Igbm90Lg0KDQpXZSBoYWQgcHJvYmxlbXMgd2hlcmUgaXQg dGltZW91dHMgaW4gc2V0dGluZyB1cCB0aGUgbmV0aWYvbHdpcCAgd2VyZSBjYXVzaW5nIHdhdGNo IGRvZyB0aW1lIG91dHMgaWYgY2FibGUgd2FzIHVucGx1Z2dlZCBvbiBib290LiBUaGVuIHdoZW4g Y2FibGUgd2FzIHJlbW92ZWQgYW5kIHJlaW5zZXJ0ZWQgKG5vdCBhIG5vcm1hbCBjYXNlIGZvciBv dXIgZGV2aWNlKSB3ZSB3ZXJlIGhhdmluZyBzaW1pbGFyIGlzc3VlcyBhcyB5b3UuICBXZSBjb3Vs ZCBub3QgZmluZCBhIHdheSB0byBrbm93IGlmIHRoZSBjYWJsZSB3YXMgY29ubmVjdGVkIG9yIG5v dCwgZXhjZXB0IGJ5IHJlZGVzaWduaW5nIGhhcmR3YXJlLiAgU28gd2UgYXJlIHJlZGVzaWduaW5n IGhhcmR3YXJlIHRvIHVzZSBoYXJkd2FyZSBjYWJsZSBjb25uZWN0aW9uIGRldGVjdGlvbiB1c2lu ZyBQSFkgY2FycmllciBzZW5zZSBwaW4uICAgVGhlIHBsYW4gd2FzIHRyeSBhbmQgc2h1dGRvd24g bHdpcCBhbmQgcmVzdGFydCBuZXRpZiBhbmQgbHdpcCB3aGVuIGNhYmxlIHdhcyBwbHVnZ2VkIGJh Y2sgaW4uDQoNClRyYW1wYXMNCg0KDQpPbiBUdWUsIE1hciAzMSwgMjAyMCBhdCA1OjUxIFBNIEJv bXN0YSwgRGFuIDxEYW4uQm9tc3RhQHNhZ2VnbGFzcy5jb208bWFpbHRvOkRhbi5Cb21zdGFAc2Fn ZWdsYXNzLmNvbT4+IHdyb3RlOg0KSSBoYXZlIGFtIHdvcmtpbmcgIG9uIGFuIGlzc3VlIHdpdGgg b3VyIGRldmljZS4gIEZpcnN0IGhlcmUgYXJlIHRoZSBwYXJ0aWN1bGFycw0KTWljcm86ICBTVE0z MkY0MjcNCkx3SVA6IDIuMC4zDQpXb2xmU1NMOiAzLjE1LjMNCk1pY3JvY2hpcCBtYW5hZ2VkIHN3 aXRjaCBLU1o4ODYzUkxMSS4NCg0KSWYgb25lIHJlbW92ZXMgdGhlIEV0aGVybmV0IGNhYmxlIGZy b20gb3VyIGRldmljZSAodHlwaWNhbGx5IGR1cmluZyBoZWF2eSB0cmFmZmljKSB0aGUgbmV0d29y ayBpcyBub3QgdXNhYmxlIGZvciBtYW55IG1pbnV0ZXMgdXBvbiByZWNvbm5lY3RpbmcgdGhlIEV0 aGVybmV0IGNhYmxlLiAgSSBoYXZlIGJlZW4gcHJpbnRpbmcgV29sZlNTTCBkZWJ1ZyBtZXNzYWdl cyBhbmQgTHdpcCBkZWJ1ZyBtZXNzYWdlcyB3aXRob3V0IHNvbHZpbmcgdGhlIGlzc3VlIHlldC4N Cg0KTm8sIHdlIGRvIG5vdCBoYXZlIHRoZSBhYmlsaXR5IHRvIOKAnGhhcmR3YXJl4oCdIGRldGVy bWluZSB3aGVuIHRoZSBjYWJsZSBpcyB1bnBsdWdnZWQuICBPdXIgc3lzdGVtIGhhcyB0aGVzZSBk ZXZpY2VzIOKAnGRhaXN5IGNoYWluZWTigJ0gc28gb25lIHdvdWxkIG5lZWQgdG8gcGluZyB0byBk ZXRlcm1pbmUgaWYgdGhlIG5ldHdvcmsgaXMgYXZhaWxhYmxlLiAgVGhlIGxhc3QgZ29vZCB0cmFj ZSBJIGdvdCBpcyB0aGlzICh0aGVuIG15IGxhcHRvcCBjcmFzaGVkKQ0KDQppcDRfcm91dGU6IE5v IHJvdXRlIHRvIDE3Mi4yMC4wLjE0DQpkYXRhPTB4MA0KPTB4MCkNCnN1bSkNCjRhYyAoMHgxNGFj LCAweDE0YWMsIDB4NjQwODAwMDApDQopDQp4NjQwODAwMDApDQphYywgMHgxNGFjLCAweDY0MDgw MDAwKQ0KSlNIy5vDk2TEmMOaQMKoMMSOJMO84oChb3XDs8SHcQ0KdGNwX3Nsb3d0bXI6IHByb2Nl c3NpbmcgYWN0aXZlIHBjYg0KZGF0YT0weDANCj0weDApDQpzdW0pDQo0YWMgKDB4MTRhYywgMHgx NGFjLCAweDY0MDgwMDAwKQ0KKQ0KeDY0MDgwMDAwKQ0KYWMsIDB4MTRhYywgMHg2NDA4MDAwMCkN CkpTSMubw5NkxJjDmkDCqDDEjiTDvOKAoW91w7PEh3ENCnRjcF9zbG93dG1yOiBwcm9jZXNzaW5n IGFjdGl2ZSBwY2INCmRhdGE9MHgwDQo9MHgwKQ0Kc3VtKQ0KNGFjICgweDE0YWMsIDB4MTRhYywg MHg2NDA4MDAwMCkNCikNCng2NDA4MDAwMCkNCmFjLCAweDE0YWMsIDB4NjQwODAwMDApDQpKU0jL m8OTZMSYw5pAwqgwxI4kw7zigKFvdcOzxIdxDQp0Y3Bfc2xvd3RtcjogcG9sbGluZyBhcHBsaWNh dGlvbg0KYg0KZGF0YT0weDANCj0weDApDQpzdW0pDQo0YWMgKDB4MTRhYywgMHgxNGFjLCAweDY0 MDgwMDAwKQ0KKQ0KeDY0MDgwMDAwKQ0KYWMsIDB4MTRhYywgMHg2NDA4MDAwMCkNCkpTSMubw5Nk xJjDmkDCqDDEjiTDvOKAoW91w7PEh3ENCmlwNF9yb3V0ZTogTm8gcm91dGUgdG8gMTcyLjIwLjAu MTQNCmRhdGE9MHgwDQo9MHgwKQ0Kc3VtKQ0KNGFjICgweDE0YWMsIDB4MTRhYywgMHg2NDA4MDAw MCkNCikNCng2NDA4MDAwMCkNCmFjLCAweDE0YWMsIDB4NjQwODAwMDApDQpKU0jLm8OTZMSYw5pA wqgwxI4kw7zigKFvdcOzxIdxDQpbNTEyOTQyXSBMaW5rIHVwPyAwDQp0Y3Bfc2xvd3RtcjogcHJv Y2Vzc2luZyBhY3RpdmUgcGNiDQpkYXRhPTB4MA0KPTB4MCkNCnN1bSkNCjRhYyAoMHgxNGFjLCAw eDE0YWMsIDB4NjQwODAwMDApDQopDQp4NjQwODAwMDApDQphYywgMHgxNGFjLCAweDY0MDgwMDAw KQ0KSlNIy5vDk2TEmMOaQMKoMMSOJMO84oChb3XDs8SHcQ0KdGNwX3Nsb3d0bXI6IHByb2Nlc3Np bmcgYWN0aXZlIHBjYg0KZGF0YT0weDANCj0weDApDQpzdW0pDQo0YWMgKDB4MTRhYywgMHgxNGFj LCAweDY0MDgwMDAwKQ0KKQ0KeDY0MDgwMDAwKQ0KYWMsIDB4MTRhYywgMHg2NDA4MDAwMCkNCkpT SMubw5NkxJjDmkDCqDDEjiTDvOKAoW91w7PEh3ENCnRjcF9zbG93dG1yOiBwb2xsaW5nIGFwcGxp Y2F0aW9uDQpiDQpkYXRhPTB4MA0KPTB4MCkNCnN1bSkNCjRhYyAoMHgxNGFjLCAweDE0YWMsIDB4 NjQwODAwMDApDQopDQp4NjQwODAwMDApDQphYywgMHgxNGFjLCAweDY0MDgwMDAwKQ0KSlNIy5vD k2TEmMOaQMKoMMSOJMO84oChb3XDs8SHcQ0KaXA0X3JvdXRlOiBObyByb3V0ZSB0byAxNzIuMjAu MC4xNA0KZGF0YT0weDANCj0weDApDQpzdW0pDQo0YWMgKDB4MTRhYywgMHgxNGFjLCAweDY0MDgw MDAwKQ0KKQ0KeDY0MDgwMDAwKQ0KYWMsIDB4MTRhYywgMHg2NDA4MDAwMCkNCkpTSMubw5NkxJjD mkDCqDDEjiTDvOKAoW91w7PEh3ENCnRjcF9zbG93dG1yOiBwcm9jZXNzaW5nIGFjdGl2ZSBwY2IN CmRhdGE9MHgwDQo9MHgwKQ0Kc3VtKQ0KNGFjICgweDE0YWMsIDB4MTRhYywgMHg2NDA4MDAwMCkN CikNCng2NDA4MDAwMCkNCmFjLCAweDE0YWMsIDB4NjQwODAwMDApDQpKU0jLm8OTZMSYw5pAwqgw xI4kw7zigKFvdcOzxIdxDQp0Y3Bfc2xvd3RtcjogcHJvY2Vzc2luZyBhY3RpdmUgcGNiDQpkYXRh PTB4MA0KPTB4MCkNCnN1bSkNCjRhYyAoMHgxNGFjLCAweDE0YWMsIDB4NjQwODAwMDApDQopDQp4 NjQwODAwMDApDQphYywgMHgxNGFjLCAweDY0MDgwMDAwKQ0KSlNIy5vDk2TEmMOaQMKoMMSOJMO8 4oChb3XDs8SHcQ0KdGNwX3Nsb3d0bXI6IHBvbGxpbmcgYXBwbGljYXRpb24NCmINCmRhdGE9MHgw DQo9MHgwKQ0Kc3VtKQ0KNGFjICgweDE0YWMsIDB4MTRhYywgMHg2NDA4MDAwMCkNCikNCng2NDA4 MDAwMCkNCmFjLCAweDE0YWMsIDB4NjQwODAwMDApDQpKU0jLm8OTZMSYw5pAwqgwxI4kw7zigKFv dcOzxIdxDQppcDRfcm91dGU6IE5vIHJvdXRlIHRvIDE3Mi4yMC4wLjE0DQpkYXRhPTB4MA0KPTB4 MCkNCnN1bSkNCjRhYyAoMHgxNGFjLCAweDE0YWMsIDB4NjQwODAwMDApDQopDQp4NjQwODAwMDAp DQphYywgMHgxNGFjLCAweDY0MDgwMDAwKQ0KSlNIy5vDk2TEmMOaQMKoMMSOJMO84oChb3XDs8SH cQ0KWzUxNDk2Nl0gTGluayB1cD8gMA0KdGNwX3Nsb3d0bXI6IHByb2Nlc3NpbmcgYWN0aXZlIHBj Yg0KZGF0YT0weDANCj0weDApDQpzdW0pDQo0YWMgKDB4MTRhYywgMHgxNGFjLCAweDY0MDgwMDAw KQ0KKQ0KeDY0MDgwMDAwKQ0KYWMsIDB4MTRhYywgMHg2NDA4MDAwMCkNCkpTSMubw5NkxJjDmkDC qDDEjiTDvOKAoW91w7PEh3ENCnRjcF9zbG93dG1yOiBwcm9jZXNzaW5nIGFjdGl2ZSBwY2INCmRh dGE9MHgwDQo9MHgwKQ0Kc3VtKQ0KNGFjICgweDE0YWMsIDB4MTRhYywgMHg2NDA4MDAwMCkNCikN Cng2NDA4MDAwMCkNCmFjLCAweDE0YWMsIDB4NjQwODAwMDApDQpKU0jLm8OTZMSYw5pAwqgwxI4k w7zigKFvdcOzxIdxDQp0Y3Bfc2xvd3RtcjogcG9sbGluZyBhcHBsaWNhdGlvbg0KYg0KZGF0YT0w eDANCj0weDApDQpzdW0pDQo0YWMgKDB4MTRhYywgMHgxNGFjLCAweDY0MDgwMDAwKQ0KKQ0KeDY0 MDgwMDAwKQ0KYWMsIDB4MTRhYywgMHg2NDA4MDAwMCkNCkpTSMubw5NkxJjDmkDCqDDEjiTDvOKA oW91w7PEh3ENCmlwNF9yb3V0ZTogTm8gcm91dGUgdG8gMTcyLjIwLjAuMTQNCmRhdGE9MHgwDQo9 MHgwKQ0Kc3VtKQ0KNGFjICgweDE0YWMsIDB4MTRhYywgMHg2NDA4MDAwMCkNCikNCng2NDA4MDAw MCkNCmFjLCAweDE0YWMsIDB4NjQwODAwMDApDQpKU0jLm8OTZMSYw5pAwqgwxI4kw7zigKFvdcOz xIdxDQp0Y3Bfc2xvd3RtcjogcHJvY2Vzc2luZyBhY3RpdmUgcGNiDQpkYXRhPTB4MA0KPTB4MCkN CnN1bSkNCjRhYyAoMHgxNGFjLCAweDE0YWMsIDB4NjQwODAwMDApDQopDQp4NjQwODAwMDApDQph YywgMHgxNGFjLCAweDY0MDgwMDAwKQ0KSlNIy5vDk2TEmMOaQMKoMMSOJMO84oChb3XDs8SHcQ0K WzUxNzA3MF0gTGluayB1cD8gMA0KdGNwX3Nsb3d0bXI6IHByb2Nlc3NpbmcgYWN0aXZlIHBjYg0K ZGF0YT0weDANCj0weDApDQpzdW0pDQo0YWMgKDB4MTRhYywgMHgxNGFjLCAweDY0MDgwMDAwKQ0K KQ0KeDY0MDgwMDAwKQ0KYWMsIDB4MTRhYywgMHg2NDA4MDAwMCkNCkpTSMubw5NkxJjDmkDCqDDE jiTDvOKAoW91w7PEh3ENCnRjcF9zbG93dG1yOiBwb2xsaW5nIGFwcGxpY2F0aW9uDQpiDQpkYXRh PTB4MA0KPTB4MCkNCnN1bSkNCjRhYyAoMHgxNGFjLCAweDE0YWMsIDB4NjQwODAwMDApDQopDQp4 NjQwODAwMDApDQphYywgMHgxNGFjLCAweDY0MDgwMDAwKQ0KSlNIy5vDk2TEmMOaQMKoMMSOJMO8 4oChb3XDs8SHcQ0KaXA0X3JvdXRlOiBObyByb3V0ZSB0byAxNzIuMjAuMC4xNA0KZGF0YT0weDAN Cj0weDApDQpzdW0pDQo0YWMgKDB4MTRhYywgMHgxNGFjLCAweDY0MDgwMDAwKQ0KKQ0KeDY0MDgw MDAwKQ0KYWMsIDB4MTRhYywgMHg2NDA4MDAwMCkNCkpTSMubw5NkxJjDmkDCqDDEjiTDvOKAoW91 w7PEh3ENClQNCg0KQW55IGlkZWFzIHdvdWxkIGJlIGdyZWF0bHkgYXBwcmVjaWF0ZWQuDQoNCkRh bg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCmx3aXAt dXNlcnMgbWFpbGluZyBsaXN0DQpsd2lwLXVzZXJzQG5vbmdudS5vcmc8bWFpbHRvOmx3aXAtdXNl cnNAbm9uZ251Lm9yZz4NCmh0dHBzOi8vbGlzdHMubm9uZ251Lm9yZy9tYWlsbWFuL2xpc3RpbmZv L2x3aXAtdXNlcnM8aHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0 dHBzLTNBX19saXN0cy5ub25nbnUub3JnX21haWxtYW5fbGlzdGluZm9fbHdpcC0yRHVzZXJzJmQ9 RHdNRmFRJmM9dGtnNnFCcFZLYXltUXY5dFRFcHlDdjVlMjNDNG9LclNkWndqRTdRNjhUcyZyPS1C Rk5CX0doN3VWc0I1MldjYmlGd1VqN28yNFA2RWQtSTNTaFd0TnI2V0kmbT10VGRRRWRnMlF3cVpS QmxFcGV6VlZQekd1WUV0cnRoMUM4b2l4YjF3X3BjJnM9WUtQMGdBUno5aFZOckpJYU03U3laVXJu M2dxNE1zT2lueTlKR0hlU1VlQSZlPT4NCg== --_000_7ed64c5de1a04687b9340f61fa77832csageglasscom_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6 IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy IDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWws IGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJ Zm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIixzZXJpZjt9 DQphOmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCglj b2xvcjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFu Lk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpw dXJwbGU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLm1zb25vcm1hbDAsIGxpLm1z b25vcm1hbDAsIGRpdi5tc29ub3JtYWwwDQoJe21zby1zdHlsZS1uYW1lOm1zb25vcm1hbDsNCglt c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzsNCgltYXJnaW4tcmlnaHQ6MGluOw0KCW1zby1tYXJnaW4t Ym90dG9tLWFsdDphdXRvOw0KCW1hcmdpbi1sZWZ0OjBpbjsNCglmb250LXNpemU6MTIuMHB0Ow0K CWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLHNlcmlmO30NCnNwYW4uRW1haWxTdHlsZTE4 DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJp IixzYW5zLXNlcmlmOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0 eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7 fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6OC41aW4gMTEuMGluOw0KCW1hcmdpbjoxLjBp biAxLjBpbiAxLjBpbiAxLjBpbjt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rp b24xO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1 bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+PCFbZW5kaWZdLS0+PCEt LVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2OmV4dD0iZWRpdCI+DQo8bzpp ZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFwZWxheW91dD48L3htbD48IVtl bmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLVVTIiBsaW5rPSJibHVlIiB2bGluaz0i cHVycGxlIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+VGhhbmtzIFRyYW1wYXMhJm5ic3A7IFlv dSB3ZW50IGRvd24gdGhlIHNhbWUgcm9hZCBJIHN0YXJ0ZWQgb24gd2l0aCB0aGUgYWJpbGl0eSB0 byBkZXRlY3QgdGhlIGRpc2Nvbm5lY3Rpb24uJm5ic3A7IEkgd2FzIHRvbGQgd2UgY2Fubm90IGNo YW5nZSB0aGUgaGFyZHdhcmUsIHNvIEkgYW0gdHJ5aW5nDQogdG8gZmluZCB0aGUgY29ycmVjdCBs b2NhdGlvbiBpbiBMd2lwIHRvIOKAnGNsZWFuIHVw4oCdIHdoZW4gdGhlcmUgaXMgbm8gcm91dGUu Jm5ic3A7IEp1c3QgaGF2ZW7igJl0IGZvdW5kIGl0IHlldC48bzpwPjwvbzpwPjwvc3Bhbj48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250 LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86 cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5 bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z LXNlcmlmO2NvbG9yOiMxRjQ5N0QiPlRoZSBjb3JyZWN0IHNvbHV0aW9uIGluIHVzaW5nIHRoZSBj YXJyaWVyIHNlbnNlIHBpbi48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3Nw YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5 N0QiPlRoYW5rcyBhZ2Fpbiw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+RGFuPG86cD48L286cD48L3NwYW4+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7 Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Qi PjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxz cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv dDssc2Fucy1zZXJpZiI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+IGx3aXAtdXNl cnMgJmx0O2x3aXAtdXNlcnMtYm91bmNlcyYjNDM7ZGFuLmJvbXN0YT1zYWdlZ2xhc3MuY29tQG5v bmdudS5vcmcmZ3Q7DQo8Yj5PbiBCZWhhbGYgT2YgPC9iPlRyYW1wYXMgU3Rlcm48YnI+DQo8Yj5T ZW50OjwvYj4gVHVlc2RheSwgTWFyY2ggMzEsIDIwMjAgNToxMSBQTTxicj4NCjxiPlRvOjwvYj4g TWFpbGluZyBsaXN0IGZvciBsd0lQIHVzZXJzICZsdDtsd2lwLXVzZXJzQG5vbmdudS5vcmcmZ3Q7 PGJyPg0KPGI+U3ViamVjdDo8L2I+IFJlOiBbbHdpcC11c2Vyc10gTmV0d29yayBMb3NzIGNhdXNl cyBuZXR3b3JrIHRvIGdvIGRvd248bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv Tm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij5EYW4sPG86cD48L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4m bmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JIGhh ZCBiZWVuIHVzaW5nIGEgUk1JSSBwaHkgYW5kIG5vdGljZWQgc2ltaWxhciZuYnNwO2lzc3Vlcy4m bmJzcDsgU3BlY2lmaWNhbGx5IEkgY291bGQgbm90IGRldGVjdCBjYWJsZSBjb25uZWN0ZWQgb3Ig ZGlzY29ubmVjdGVkIHVzaW5nIHRoZSBSTUlJLCB0aGUgbGluayBhY3Rpdml0eSBiaXQgZG9lcyBu b3Qgd29yayBmb3IgY2FibGUgY29ubmVjdGVkL2Rpc2Nvbm5lY3RlZC4mbmJzcDsgSSB3YXMgc2hv Y2tlZCB0byBmaW5kIHRoYXQgUk1JSQ0KIGRpZCBub3QgcHJvdmlkZSB0aGlzIGZ1bmN0aW9uYWxp dHkuJm5ic3A7IFN1cmUgdGhlIExFRCBibGluayBidXQgbm8gYml0cyBpbiB0aGUgUk1JSSByZWdp c3RlciBtYXAgY2hhbmdlcyB3aGVuIGNhYmxlIGlzIGluc2VydGVkIG9yIG5vdC4mbmJzcDs8bzpw PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5i c3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+V2UgaGFk IHByb2JsZW1zIHdoZXJlIGl0IHRpbWVvdXRzIGluIHNldHRpbmcgdXAgdGhlIG5ldGlmL2x3aXAm bmJzcDsgd2VyZSBjYXVzaW5nIHdhdGNoIGRvZyB0aW1lIG91dHMgaWYgY2FibGUgd2FzIHVucGx1 Z2dlZCBvbiBib290LiBUaGVuIHdoZW4gY2FibGUgd2FzIHJlbW92ZWQgYW5kIHJlaW5zZXJ0ZWQg KG5vdCBhIG5vcm1hbCBjYXNlIGZvciBvdXIgZGV2aWNlKSB3ZSB3ZXJlIGhhdmluZyBzaW1pbGFy IGlzc3Vlcw0KIGFzIHlvdS4mbmJzcDsgV2UgY291bGQgbm90IGZpbmQgYSB3YXkgdG8ga25vdyBp ZiB0aGUgY2FibGUgd2FzIGNvbm5lY3RlZCBvciBub3QsIGV4Y2VwdCBieSByZWRlc2lnbmluZyBo YXJkd2FyZS4mbmJzcDsgU28gd2UgYXJlIHJlZGVzaWduaW5nIGhhcmR3YXJlIHRvIHVzZSBoYXJk d2FyZSBjYWJsZSBjb25uZWN0aW9uIGRldGVjdGlvbiB1c2luZyBQSFkgY2FycmllciBzZW5zZSBw aW4uJm5ic3A7ICZuYnNwO1RoZSBwbGFuIHdhcyB0cnkgYW5kIHNodXRkb3duIGx3aXAgYW5kIHJl c3RhcnQNCiBuZXRpZiBhbmQgbHdpcCB3aGVuIGNhYmxlIHdhcyBwbHVnZ2VkIGJhY2sgaW4uJm5i c3A7Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O b3JtYWwiPlRyYW1wYXM8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIj5PbiBUdWUsIE1hciAzMSwgMjAyMCBhdCA1OjUxIFBNIEJvbXN0YSwgRGFu ICZsdDs8YSBocmVmPSJtYWlsdG86RGFuLkJvbXN0YUBzYWdlZ2xhc3MuY29tIj5EYW4uQm9tc3Rh QHNhZ2VnbGFzcy5jb208L2E+Jmd0OyB3cm90ZTo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGJs b2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4w cHQ7cGFkZGluZzowaW4gMGluIDBpbiA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tcmln aHQ6MGluIj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5JIGhhdmUgYW0g d29ya2luZyZuYnNwOyBvbiBhbiBpc3N1ZSB3aXRoIG91ciBkZXZpY2UuJm5ic3A7IEZpcnN0IGhl cmUgYXJlIHRoZSBwYXJ0aWN1bGFyczxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph dXRvIj5NaWNybzombmJzcDsgU1RNMzJGNDI3PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t YWx0OmF1dG8iPkx3SVA6IDIuMC4zPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1 dG8iPldvbGZTU0w6IDMuMTUuMzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv Ij5NaWNyb2NoaXAgbWFuYWdlZCBzd2l0Y2ggS1NaODg2M1JMTEkuPG86cD48L286cD48L3A+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h cmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t LWFsdDphdXRvIj5JZiBvbmUgcmVtb3ZlcyB0aGUgRXRoZXJuZXQgY2FibGUgZnJvbSBvdXIgZGV2 aWNlICh0eXBpY2FsbHkgZHVyaW5nIGhlYXZ5IHRyYWZmaWMpIHRoZSBuZXR3b3JrIGlzIG5vdCB1 c2FibGUgZm9yIG1hbnkgbWludXRlcyB1cG9uIHJlY29ubmVjdGluZyB0aGUgRXRoZXJuZXQgY2Fi bGUuJm5ic3A7IEkgaGF2ZSBiZWVuDQogcHJpbnRpbmcgV29sZlNTTCBkZWJ1ZyBtZXNzYWdlcyBh bmQgTHdpcCBkZWJ1ZyBtZXNzYWdlcyB3aXRob3V0IHNvbHZpbmcgdGhlIGlzc3VlIHlldC48bzpw PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPk5vLCB3ZSBkbyBub3QgaGF2ZSB0aGUgYWJpbGl0eSB0 byDigJxoYXJkd2FyZeKAnSBkZXRlcm1pbmUgd2hlbiB0aGUgY2FibGUgaXMgdW5wbHVnZ2VkLiZu YnNwOyBPdXIgc3lzdGVtIGhhcyB0aGVzZSBkZXZpY2VzIOKAnGRhaXN5IGNoYWluZWTigJ0gc28g b25lIHdvdWxkIG5lZWQgdG8gcGluZyB0byBkZXRlcm1pbmUgaWYgdGhlIG5ldHdvcmsNCiBpcyBh dmFpbGFibGUuJm5ic3A7IFRoZSBsYXN0IGdvb2QgdHJhY2UgSSBnb3QgaXMgdGhpcyAodGhlbiBt eSBsYXB0b3AgY3Jhc2hlZCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0 eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+ Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPmlwNF9yb3V0ZTog Tm8gcm91dGUgdG8gMTcyLjIwLjAuMTQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6 YXV0byI+ZGF0YT0weDA8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PTB4 MCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+c3VtKTxvOnA+PC9vOnA+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj40YWMgKDB4MTRhYywgMHgxNGFjLCAweDY0MDgw MDAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4pPG86cD48L286cD48 L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87 bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPng2NDA4MDAwMCk8bzpwPjwvbzpwPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy Z2luLWJvdHRvbS1hbHQ6YXV0byI+YWMsIDB4MTRhYywgMHg2NDA4MDAwMCk8bzpwPjwvbzpwPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+SlNIy5vDk2TEmMOaQMKoMMSOJMO84oChb3XDs8SH cTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj50Y3Bfc2xvd3RtcjogcHJv Y2Vzc2luZyBhY3RpdmUgcGNiPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i PmRhdGE9MHgwPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPj0weDApPG86 cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPnN1bSk8bzpwPjwvbzpwPjwvcD4N CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+NGFjICgweDE0YWMsIDB4MTRhYywgMHg2NDA4MDAwMCk8 bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+KTxvOnA+PC9vOnA+PC9wPg0K PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t YXJnaW4tYm90dG9tLWFsdDphdXRvIj54NjQwODAwMDApPG86cD48L286cD48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i b3R0b20tYWx0OmF1dG8iPmFjLCAweDE0YWMsIDB4NjQwODAwMDApPG86cD48L286cD48L3A+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h cmdpbi1ib3R0b20tYWx0OmF1dG8iPkpTSMubw5NkxJjDmkDCqDDEjiTDvOKAoW91w7PEh3E8bzpw PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+dGNwX3Nsb3d0bXI6IHByb2Nlc3Np bmcgYWN0aXZlIHBjYjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9 Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5kYXRh PTB4MDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj49MHgwKTxvOnA+PC9v OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5zdW0pPG86cD48L286cD48L3A+DQo8cCBj bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp bi1ib3R0b20tYWx0OmF1dG8iPjRhYyAoMHgxNGFjLCAweDE0YWMsIDB4NjQwODAwMDApPG86cD48 L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0 OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPik8bzpwPjwvbzpwPjwvcD4NCjxwIGNs YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu LWJvdHRvbS1hbHQ6YXV0byI+eDY0MDgwMDAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t LWFsdDphdXRvIj5hYywgMHgxNGFjLCAweDY0MDgwMDAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t Ym90dG9tLWFsdDphdXRvIj5KU0jLm8OTZMSYw5pAwqgwxI4kw7zigKFvdcOzxIdxPG86cD48L286 cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1 dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPnRjcF9zbG93dG1yOiBwb2xsaW5nIGFwcGxp Y2F0aW9uPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPmI8bzpwPjwvbzpw PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0 bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+ZGF0YT0weDA8bzpwPjwvbzpwPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy Z2luLWJvdHRvbS1hbHQ6YXV0byI+PTB4MCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h bHQ6YXV0byI+c3VtKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9 Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj40YWMg KDB4MTRhYywgMHgxNGFjLCAweDY0MDgwMDAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t LWFsdDphdXRvIj4pPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPng2NDA4 MDAwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+YWMsIDB4MTRhYywg MHg2NDA4MDAwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+SlNIy5vD k2TEmMOaQMKoMMSOJMO84oChb3XDs8SHcTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs dDphdXRvIj5pcDRfcm91dGU6IE5vIHJvdXRlIHRvIDE3Mi4yMC4wLjE0PG86cD48L286cD48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPmRhdGE9MHgwPG86cD48L286cD48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i b3R0b20tYWx0OmF1dG8iPj0weDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1 dG8iPnN1bSk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+NGFjICgweDE0 YWMsIDB4MTRhYywgMHg2NDA4MDAwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6 YXV0byI+KTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj54NjQwODAwMDAp PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10 b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPmFjLCAweDE0YWMsIDB4NjQw ODAwMDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPkpTSMubw5NkxJjD mkDCqDDEjiTDvOKAoW91w7PEh3E8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi IHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0 byI+WzUxMjk0Ml0gTGluayB1cD8gMDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph dXRvIj50Y3Bfc2xvd3RtcjogcHJvY2Vzc2luZyBhY3RpdmUgcGNiPG86cD48L286cD48L3A+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h cmdpbi1ib3R0b20tYWx0OmF1dG8iPmRhdGE9MHgwPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0 b20tYWx0OmF1dG8iPj0weDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i PnN1bSk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+NGFjICgweDE0YWMs IDB4MTRhYywgMHg2NDA4MDAwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi IHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0 byI+KTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj54NjQwODAwMDApPG86 cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPmFjLCAweDE0YWMsIDB4NjQwODAw MDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPkpTSMubw5NkxJjDmkDC qDDEjiTDvOKAoW91w7PEh3E8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0 eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+ dGNwX3Nsb3d0bXI6IHByb2Nlc3NpbmcgYWN0aXZlIHBjYjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t Ym90dG9tLWFsdDphdXRvIj5kYXRhPTB4MDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs dDphdXRvIj49MHgwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9 Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5zdW0p PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10 b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjRhYyAoMHgxNGFjLCAweDE0 YWMsIDB4NjQwODAwMDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPik8 bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+eDY0MDgwMDAwKTxvOnA+PC9v OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5hYywgMHgxNGFjLCAweDY0MDgwMDAwKTxv OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5KU0jLm8OTZMSYw5pAwqgwxI4k w7zigKFvdcOzxIdxPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPnRjcF9z bG93dG1yOiBwb2xsaW5nIGFwcGxpY2F0aW9uPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t YWx0OmF1dG8iPmI8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+ZGF0YT0w eDA8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PTB4MCk8bzpwPjwvbzpw PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0 bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+c3VtKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t Ym90dG9tLWFsdDphdXRvIj40YWMgKDB4MTRhYywgMHgxNGFjLCAweDY0MDgwMDAwKTxvOnA+PC9v OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4pPG86cD48L286cD48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i b3R0b20tYWx0OmF1dG8iPng2NDA4MDAwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h bHQ6YXV0byI+YWMsIDB4MTRhYywgMHg2NDA4MDAwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv dHRvbS1hbHQ6YXV0byI+SlNIy5vDk2TEmMOaQMKoMMSOJMO84oChb3XDs8SHcTxvOnA+PC9vOnA+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5pcDRfcm91dGU6IE5vIHJvdXRlIHRvIDE3Mi4y MC4wLjE0PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPmRhdGE9MHgwPG86 cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPj0weDApPG86cD48L286cD48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPnN1bSk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv bS1hbHQ6YXV0byI+NGFjICgweDE0YWMsIDB4MTRhYywgMHg2NDA4MDAwMCk8bzpwPjwvbzpwPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+KTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t LWFsdDphdXRvIj54NjQwODAwMDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1 dG8iPmFjLCAweDE0YWMsIDB4NjQwODAwMDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t YWx0OmF1dG8iPkpTSMubw5NkxJjDmkDCqDDEjiTDvOKAoW91w7PEh3E8bzpwPjwvbzpwPjwvcD4N CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+dGNwX3Nsb3d0bXI6IHByb2Nlc3NpbmcgYWN0aXZlIHBj YjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5kYXRhPTB4MDxvOnA+PC9v OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj49MHgwKTxvOnA+PC9vOnA+PC9wPg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJn aW4tYm90dG9tLWFsdDphdXRvIj5zdW0pPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0 OmF1dG8iPjRhYyAoMHgxNGFjLCAweDE0YWMsIDB4NjQwODAwMDApPG86cD48L286cD48L3A+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h cmdpbi1ib3R0b20tYWx0OmF1dG8iPik8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6 YXV0byI+eDY0MDgwMDAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5 bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5h YywgMHgxNGFjLCAweDY0MDgwMDAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph dXRvIj5KU0jLm8OTZMSYw5pAwqgwxI4kw7zigKFvdcOzxIdxPG86cD48L286cD48L3A+DQo8cCBj bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp bi1ib3R0b20tYWx0OmF1dG8iPnRjcF9zbG93dG1yOiBwcm9jZXNzaW5nIGFjdGl2ZSBwY2I8bzpw PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+ZGF0YT0weDA8bzpwPjwvbzpwPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PTB4MCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv dHRvbS1hbHQ6YXV0byI+c3VtKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv Ij40YWMgKDB4MTRhYywgMHgxNGFjLCAweDY0MDgwMDAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t Ym90dG9tLWFsdDphdXRvIj4pPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i Png2NDA4MDAwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+YWMsIDB4 MTRhYywgMHg2NDA4MDAwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0 eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+ SlNIy5vDk2TEmMOaQMKoMMSOJMO84oChb3XDs8SHcTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90 dG9tLWFsdDphdXRvIj50Y3Bfc2xvd3RtcjogcG9sbGluZyBhcHBsaWNhdGlvbjxvOnA+PC9vOnA+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5iPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0 b20tYWx0OmF1dG8iPmRhdGE9MHgwPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1 dG8iPj0weDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPnN1bSk8bzpw PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+NGFjICgweDE0YWMsIDB4MTRhYywg MHg2NDA4MDAwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+KTxvOnA+ PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj54NjQwODAwMDApPG86cD48L286cD48 L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87 bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPmFjLCAweDE0YWMsIDB4NjQwODAwMDApPG86cD48 L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0 OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPkpTSMubw5NkxJjDmkDCqDDEjiTDvOKA oW91w7PEh3E8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+aXA0X3JvdXRl OiBObyByb3V0ZSB0byAxNzIuMjAuMC4xNDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs dDphdXRvIj5kYXRhPTB4MDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5 bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj49 MHgwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5zdW0pPG86cD48L286 cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1 dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjRhYyAoMHgxNGFjLCAweDE0YWMsIDB4NjQw ODAwMDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPik8bzpwPjwvbzpw PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0 bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+eDY0MDgwMDAwKTxvOnA+PC9vOnA+PC9wPg0K PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t YXJnaW4tYm90dG9tLWFsdDphdXRvIj5hYywgMHgxNGFjLCAweDY0MDgwMDAwKTxvOnA+PC9vOnA+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5KU0jLm8OTZMSYw5pAwqgwxI4kw7zigKFvdcOz xIdxPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPls1MTQ5NjZdIExpbmsg dXA/IDA8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+dGNwX3Nsb3d0bXI6 IHByb2Nlc3NpbmcgYWN0aXZlIHBjYjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph dXRvIj5kYXRhPTB4MDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9 Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj49MHgw KTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5zdW0pPG86cD48L286cD48 L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87 bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjRhYyAoMHgxNGFjLCAweDE0YWMsIDB4NjQwODAw MDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPik8bzpwPjwvbzpwPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+eDY0MDgwMDAwKTxvOnA+PC9vOnA+PC9wPg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJn aW4tYm90dG9tLWFsdDphdXRvIj5hYywgMHgxNGFjLCAweDY0MDgwMDAwKTxvOnA+PC9vOnA+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z by1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5KU0jLm8OTZMSYw5pAwqgwxI4kw7zigKFvdcOzxIdx PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10 b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPnRjcF9zbG93dG1yOiBwcm9j ZXNzaW5nIGFjdGl2ZSBwY2I8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0 eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+ ZGF0YT0weDA8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PTB4MCk8bzpw PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+c3VtKTxvOnA+PC9vOnA+PC9wPg0K PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t YXJnaW4tYm90dG9tLWFsdDphdXRvIj40YWMgKDB4MTRhYywgMHgxNGFjLCAweDY0MDgwMDAwKTxv OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4pPG86cD48L286cD48L3A+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h cmdpbi1ib3R0b20tYWx0OmF1dG8iPng2NDA4MDAwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv dHRvbS1hbHQ6YXV0byI+YWMsIDB4MTRhYywgMHg2NDA4MDAwMCk8bzpwPjwvbzpwPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy Z2luLWJvdHRvbS1hbHQ6YXV0byI+SlNIy5vDk2TEmMOaQMKoMMSOJMO84oChb3XDs8SHcTxvOnA+ PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj50Y3Bfc2xvd3RtcjogcG9sbGluZyBh cHBsaWNhdGlvbjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5iPG86cD48 L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0 OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPmRhdGE9MHgwPG86cD48L286cD48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPj0weDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0 b20tYWx0OmF1dG8iPnN1bSk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0 eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+ NGFjICgweDE0YWMsIDB4MTRhYywgMHg2NDA4MDAwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv dHRvbS1hbHQ6YXV0byI+KTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5 bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj54 NjQwODAwMDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPmFjLCAweDE0 YWMsIDB4NjQwODAwMDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPkpT SMubw5NkxJjDmkDCqDDEjiTDvOKAoW91w7PEh3E8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv bS1hbHQ6YXV0byI+aXA0X3JvdXRlOiBObyByb3V0ZSB0byAxNzIuMjAuMC4xNDxvOnA+PC9vOnA+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5kYXRhPTB4MDxvOnA+PC9vOnA+PC9wPg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJn aW4tYm90dG9tLWFsdDphdXRvIj49MHgwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs dDphdXRvIj5zdW0pPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjRhYyAo MHgxNGFjLCAweDE0YWMsIDB4NjQwODAwMDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t YWx0OmF1dG8iPik8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+eDY0MDgw MDAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5hYywgMHgxNGFjLCAw eDY0MDgwMDAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5KU0jLm8OT ZMSYw5pAwqgwxI4kw7zigKFvdcOzxIdxPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0 OmF1dG8iPnRjcF9zbG93dG1yOiBwcm9jZXNzaW5nIGFjdGl2ZSBwY2I8bzpwPjwvbzpwPjwvcD4N CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+ZGF0YT0weDA8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv dHRvbS1hbHQ6YXV0byI+PTB4MCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi IHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0 byI+c3VtKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj40YWMgKDB4MTRh YywgMHgxNGFjLCAweDY0MDgwMDAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph dXRvIj4pPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPng2NDA4MDAwMCk8 bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+YWMsIDB4MTRhYywgMHg2NDA4 MDAwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+SlNIy5vDk2TEmMOa QMKoMMSOJMO84oChb3XDs8SHcTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv Ij5bNTE3MDcwXSBMaW5rIHVwPyAwPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1 dG8iPnRjcF9zbG93dG1yOiBwcm9jZXNzaW5nIGFjdGl2ZSBwY2I8bzpwPjwvbzpwPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy Z2luLWJvdHRvbS1hbHQ6YXV0byI+ZGF0YT0weDA8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv bS1hbHQ6YXV0byI+PTB4MCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0 eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+ c3VtKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj40YWMgKDB4MTRhYywg MHgxNGFjLCAweDY0MDgwMDAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv Ij4pPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPng2NDA4MDAwMCk8bzpw PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+YWMsIDB4MTRhYywgMHg2NDA4MDAw MCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+SlNIy5vDk2TEmMOaQMKo MMSOJMO84oChb3XDs8SHcTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5 bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj50 Y3Bfc2xvd3RtcjogcG9sbGluZyBhcHBsaWNhdGlvbjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90 dG9tLWFsdDphdXRvIj5iPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPmRh dGE9MHgwPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPj0weDApPG86cD48 L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0 OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPnN1bSk8bzpwPjwvbzpwPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy Z2luLWJvdHRvbS1hbHQ6YXV0byI+NGFjICgweDE0YWMsIDB4MTRhYywgMHg2NDA4MDAwMCk8bzpw PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+KTxvOnA+PC9vOnA+PC9wPg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJn aW4tYm90dG9tLWFsdDphdXRvIj54NjQwODAwMDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0 b20tYWx0OmF1dG8iPmFjLCAweDE0YWMsIDB4NjQwODAwMDApPG86cD48L286cD48L3A+DQo8cCBj bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp bi1ib3R0b20tYWx0OmF1dG8iPkpTSMubw5NkxJjDmkDCqDDEjiTDvOKAoW91w7PEh3E8bzpwPjwv bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6 YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+aXA0X3JvdXRlOiBObyByb3V0ZSB0byAx NzIuMjAuMC4xNDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5kYXRhPTB4 MDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj49MHgwKTxvOnA+PC9vOnA+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5zdW0pPG86cD48L286cD48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i b3R0b20tYWx0OmF1dG8iPjRhYyAoMHgxNGFjLCAweDE0YWMsIDB4NjQwODAwMDApPG86cD48L286 cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1 dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPik8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv dHRvbS1hbHQ6YXV0byI+eDY0MDgwMDAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs dDphdXRvIj5hYywgMHgxNGFjLCAweDY0MDgwMDAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90 dG9tLWFsdDphdXRvIj5KU0jLm8OTZMSYw5pAwqgwxI4kw7zigKFvdcOzxIdxPG86cD48L286cD48 L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87 bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPlQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv bS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i PkFueSBpZGVhcyB3b3VsZCBiZSBncmVhdGx5IGFwcHJlY2lhdGVkLjxvOnA+PC9vOnA+PC9wPg0K PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t YXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv bS1hbHQ6YXV0byI+RGFuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X188YnI+DQpsd2lwLXVzZXJzIG1haWxpbmcgbGlzdDxicj4NCjxhIGhyZWY9Im1haWx0bzpsd2lw LXVzZXJzQG5vbmdudS5vcmciIHRhcmdldD0iX2JsYW5rIj5sd2lwLXVzZXJzQG5vbmdudS5vcmc8 L2E+PGJyPg0KPGEgaHJlZj0iaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3Vy bD91PWh0dHBzLTNBX19saXN0cy5ub25nbnUub3JnX21haWxtYW5fbGlzdGluZm9fbHdpcC0yRHVz ZXJzJmFtcDtkPUR3TUZhUSZhbXA7Yz10a2c2cUJwVktheW1Rdjl0VEVweUN2NWUyM0M0b0tyU2Ra d2pFN1E2OFRzJmFtcDtyPS1CRk5CX0doN3VWc0I1MldjYmlGd1VqN28yNFA2RWQtSTNTaFd0TnI2 V0kmYW1wO209dFRkUUVkZzJRd3FaUkJsRXBlelZWUHpHdVlFdHJ0aDFDOG9peGIxd19wYyZhbXA7 cz1ZS1AwZ0FSejloVk5ySklhTTdTeVpVcm4zZ3E0TXNPaW55OUpHSGVTVWVBJmFtcDtlPSIgdGFy Z2V0PSJfYmxhbmsiPmh0dHBzOi8vbGlzdHMubm9uZ251Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2x3 aXAtdXNlcnM8L2E+PG86cD48L286cD48L3A+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjwvZGl2 Pg0KPC9ib2R5Pg0KPC9odG1sPg0K --_000_7ed64c5de1a04687b9340f61fa77832csageglasscom_--