From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1avSWu-0003K6-76 for mharc-grub-devel@gnu.org; Wed, 27 Apr 2016 12:41:36 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40452) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1avQfG-000160-5j for grub-devel@gnu.org; Wed, 27 Apr 2016 10:42:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1avQfC-0000IA-PD for grub-devel@gnu.org; Wed, 27 Apr 2016 10:42:05 -0400 Received: from eu-smtp-delivery-143.mimecast.com ([207.82.80.143]:26758) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1avQfC-0000Hn-FS for grub-devel@gnu.org; Wed, 27 Apr 2016 10:42:02 -0400 Received: from emea01-am1-obe.outbound.protection.outlook.com (mail-am1lrp0014.outbound.protection.outlook.com [213.199.154.14]) (Using TLS) by eu-smtp-1.mimecast.com with ESMTP id uk-mta-22-3fHTQ9iURvGEo0UCaKBbzA-1; Wed, 27 Apr 2016 15:40:34 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=i7LfiJ6KZGTaz7zgE2Dtwj4VUrYifD8jekOBiJUdwyo=; b=NuvCsBBU5ggKXlg+UOqDroeegRIwCfmaknkQ8P0pf4Ku9qqkUv5GD/GOHeo/TJW9yarYjejkccdbGQtMrqsn9SGRCZ7V6kNd1cW4KOBnhZ/Ur44N6h7As5IO00r7Uxx+Ut/EzPGANR9GSoD0KY+SP8SJNUyGaE4mc9X4sjT+xfk= Received: from [10.1.195.130] (217.140.96.140) by DB5PR08MB1141.eurprd08.prod.outlook.com (10.166.174.28) with Microsoft SMTP Server (TLS) id 15.1.477.8; Wed, 27 Apr 2016 14:40:32 +0000 Subject: Re: [PATCH v2] bootp: add native DHCPv4 support To: The development of GNU GRUB References: <1458458983-29281-1-git-send-email-arvidjaar@gmail.com> <1458671180-15616-1-git-send-email-arvidjaar@gmail.com> CC: , From: Punit Agrawal Message-ID: <5720CF5D.9040309@arm.com> Date: Wed, 27 Apr 2016 15:40:29 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Icedove/38.6.0 MIME-Version: 1.0 In-Reply-To: <1458671180-15616-1-git-send-email-arvidjaar@gmail.com> X-Originating-IP: [217.140.96.140] X-ClientProxiedBy: DB5PR06CA0004.eurprd06.prod.outlook.com (10.162.165.14) To DB5PR08MB1141.eurprd08.prod.outlook.com (10.166.174.28) X-MS-Office365-Filtering-Correlation-Id: 92b5474f-c102-4e8f-bbf3-08d36ea9e310 X-Microsoft-Exchange-Diagnostics: 1; DB5PR08MB1141; 2:bP7oyNWV99KoxV4gxhDWzoARct87Ul4mSjLIqjxBgwPUypVP124mbtftX4qwUmGgko7L8CmAq6rzrBQwrUvRdbUxepkT9rvy3gJBWhbAZy4nK8u+b0pPrQgW4QUwf5jYciCXeL+m83B66HeRsfgOhcPYFOt+7ycIEoClDeLq3cA5QHiU8TJraxz+ngrVAr34; 3:CK7PJA+uDT/bfR5uWBnX1jwXCkxP+LbOWlV+gOrf+QwceR9qa2f1ycl2pvhJ6ilQjHQpFgT0WHmtyUTqXZUt8Ueu0F1U9NGQkJWbBlPvXrPG+u0vM60jFyl7lpc4sJgg; 25:fG95w8cElWFZpyOpeErupkWVYkqDxZq08mq+9zG2St7Xeub75LH/j5jEtyaw5khnopyuNsjtksrqA0GP/ORbvyRBpHxJW043oSD/tR033dCsXj/9qcOYbHR6RVdXoJZV2V6F4WF88YEyea3PGbTvA7VzmZ46VbG51PAXTnFO/xe7JxUNw6k18xaoI9tmNjaByrCv/U677pD5cwkRI85xp672Qj0IeJyR8pY6Ti5oBXa6H5qZvT4HcGbFB4cdLd1mBpifrLicvOeIEtTxlbT39MfThl3vKnZ46JlONAAzpzF1hZ3mLISmz772OoLk1JC0/7fq2WZEHns2Kk1dyxBpdw==; 20:fzI3hhUsaR9khxGH+IBMC2CgRzew2tsMPdcK4DgSn1x4/miIlITwPNka5CF0i2ovdmECxjjR3h4y0Tp2uMTI8IkPtGtMBnMuBdaO92WbyHXYItrq0MlvRm5FoID2nu/34n6VnDl9PFvZn4R9nJ8NEtQ3nyRg5B4xq6uG7GvSyGT4mMfg0zfFdW9JlKXZUNHlvMTBJAiZKH+DLCug22DTUd/HpdkFBA+fScCIHY2umbnVkPUEsRlo7I1wjVyWvVPO X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB5PR08MB1141; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(9101521072)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026); SRVR:DB5PR08MB1141; BCL:0; PCL:0; RULEID:; SRVR:DB5PR08MB1141; X-Microsoft-Exchange-Diagnostics: 1; DB5PR08MB1141; 4:nfpbGvkDNKBsa4ojWuf4lBk2QRhYRsDk/N5xNGZp8D+6bLJb1Hv0vZh074i9WuY58xahyrgZoK5Mvgfb6VEIhNBNStGLh+9t2rb17o4+gVEvw5T14prXugXZ/wV++dCv/Ld1LVIMTUZsYNMPcJTdpLugEDVZbBvNV1VjOOVyeZRGx5DmZkV0cGAwMS5r27DcSo+ywYpm3aznEaW16GwaeC0aLRcE0wqOud5EZ9PQTnwQtEAn+8ouK3fCdMS7UdTMCU8k7exMJXnIhIevkmxnftrsbmWUTdo/5AgIMUgdGpr1yRvvFK3S284XhmuWe1lzZ5VDoCDzYm9+xaY2n91FxlNyhlHtK1Qc0Fr5rYxTPMhpY1hYgzx/Re37Vb3VXoHARzocCJUxzSs8GD6XF93WaGpcMS1acx9RaKS/zZQxSlM= X-Forefront-PRVS: 0925081676 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6049001)(40434004)(24454002)(42186005)(551934003)(86362001)(33656002)(65816999)(4326007)(76176999)(50986999)(54356999)(87266999)(4001350100001)(92566002)(47776003)(66066001)(1096002)(81166005)(3846002)(6116002)(59896002)(5004730100002)(586003)(83506001)(5890100001)(77096005)(5008740100001)(2950100001)(23746002)(2906002)(64126003)(36756003)(189998001)(80316001)(50466002)(110136002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB5PR08MB1141; H:[10.1.195.130]; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; DB5PR08MB1141; 23:+MPbX/KUnj5GjaiUg5mDbz/j6uIfcr3y9IhCC?= =?Windows-1252?Q?seAkpCAFCex9Yw95oxhbYjK+au8QMlCcXufyCAPB3ZyxUtO1jH3aSZTt?= =?Windows-1252?Q?s5Qvg9W8oDj6ltidJYqo9zwvGkVBYXTT+TGEn7+uJwzCY43MiaWLzjv5?= =?Windows-1252?Q?Ni4Bmo2mk6HL2hogWWQbbd2/P8pos8hobXlNztnS1t9pop0bQ7GNmPhx?= =?Windows-1252?Q?dcMK1VeJE/HjbIcms2SqR2FXK2EzLnR51uTpiejaBqOy1/1GqwL18dWS?= =?Windows-1252?Q?wi9foSppUI8YsSoIISp1URLHcVBN4huWIBZKKX8bNlIgoLueeaS4GF2K?= =?Windows-1252?Q?I/REET4DpqXI61EH31zHuTQKD1ppJBA5yZwZM2QK1bGqtGyT3RiSijHv?= =?Windows-1252?Q?0dVuwE/vwvdK+/TOHxw9ALrzh/qb0CtL2TE0p1jeWrzKJNmU3DoxJP/K?= =?Windows-1252?Q?fZlK+y8zmVQ+4U6R6V4lHkGQ9xV/CFppyFWToa1c/5uh9qP8iioKHbyD?= =?Windows-1252?Q?ID4HghyY5PELIIEwx/IsVGWkQtD0WnZth7R4CVqxu4HoJFFK+JZzxp1M?= =?Windows-1252?Q?JoQW0lY9h3URfyJgiko+eI8sPmFJyHXC5Zq9bJsXGat8HcI46nz8doSL?= =?Windows-1252?Q?9giw50TRKnY3FjMacukfhFTxFtVKjCBlTdL75SmJnei2+IHm0PVvCXsv?= =?Windows-1252?Q?imQP7myK5fSXaf9UTrcak8WWgcMRhTuLCm+CXI9s3eZcdHpoZ9Q+gQUt?= =?Windows-1252?Q?ngc/Ld6FnHWAU+Oprkb/ZPeNsDchetxrapLKshiLB2s7CovQ77/g6pXu?= =?Windows-1252?Q?O7NfaPUkyjFyrQ95gbnzA2Dtf5wARpWBSyUiyT7cnhZj9J8xv6f8ufAK?= =?Windows-1252?Q?0q31FHI0KSlbmmRMA4bn2xIjxPYz/yI5lQTE5bcTLemuPXj16L3YyyA5?= =?Windows-1252?Q?GY0kczcVPeJKruxv5x4n2GjBUskgTZrE5FN2jVuR5Q3JsP7fOxFfIwCO?= =?Windows-1252?Q?Fw8DTWYuo4igtq5D5tYB4ho+s16nSXNj56PmAxj985OUSJmGI0LXAW4y?= =?Windows-1252?Q?lvzsT5H/uMp0cQAW++EHyia5GnnHl7W8Eo/zURSp5NcG8kPWzdHtW4QV?= =?Windows-1252?B?UT09?= X-Microsoft-Exchange-Diagnostics: 1; DB5PR08MB1141; 5:J3kX0BORa2nRfHgDK1TGVB0GcoW25Z9RdDrHj4+b2Ij7tI6+F5CuyjKkr27kdfW5RGU3ImGv4Hg6a4DMkDnPUggJXl5IFMU81hmJFFQSp0cQBOPBP+wBeOa88PFhoMcoejQFR8f85OnjM9URTWDeWQ==; 24:mziMwesRtq0atX40wHhGM2sEX9u+EcGZHZcdkSFWaduAlXVLqzRvREgcRHMOnkK3/lpM6uaKTyEEB/DfFRAfRBYS0y5YZS/DX4uleqcr8vE=; 7:G5UClYzgM7gJQ1JLi7/eJGy2kZ5h5YseZSEC1mMZNaOnOcfn4jpbjXU/+AeU5eqGzp9jdLCX/8tMgWm+TPrqiCPqkT2/HlJskzQKDEG7aIHsZVVzuvqddEBDbljN/6Qeb9eBN3s1V//nYGIRtAxoYf2Ry4TBN1l/3Swlw4rq63ag7MPAYzFCSE18CwZ+CGMe; 20:+7G08ymkYy6bxZWGbtH3WM5jBsQW0t1+yoq+Xtd9gVmABHABBhWYyT4dBdLg7XBBdI8t0jjd/3L5sTHZ8NO4OQhE+A4EKB06XiLlCzevqiIhnn7gPYMZjqOINoNISpTjsXTi+mJ82h1NOgH45EXWyDgfts4NA2Ov4eR1NRzIxf0= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Apr 2016 14:40:32.6174 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR08MB1141 X-MC-Unique: 3fHTQ9iURvGEo0UCaKBbzA-1 Content-Type: text/plain; charset=WINDOWS-1252; format=flowed Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 207.82.80.143 X-Mailman-Approved-At: Wed, 27 Apr 2016 12:41:34 -0400 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Apr 2016 14:42:12 -0000 Hi Andrei, Thanks for refreshing the patch. I was using a locally fixed up version of your wip post from earlier in the year. On 22/03/16 18:26, Andrei Borzenkov wrote: > This patch adds support for native DHCPv4 and removes requirement for > BOOTP compatibility support in DHCP server. > > There is no provision for selecting preferred server. We take the first > OFFER and try to REQUEST configuration from it. If NAK was received, > transaction is restarted, but if we hit timeout, configuration fails. > > It also handles pure BOOTP reply (detected by lack of DHCP message type > option) and proceeds with configuration immedately. I could not test it > because I do not have pure BOOTP server. > > Because we need access to DHCP options in multiple places now, it also > factors out DHCP option processing, adding support for option overload. > > Timeout handling is now per-interface, with independent timeouts for > both DISCOVER and REQUEST. It should make it more responsive if answer > was delayed initially. Total timeout remains the same as originally, as > well as backoff algorithm, but we poll in fixed 200ms ticks so notice > (successful) reply earlier. > > Failure to send packet to interface now does not terminate command (and > leaks memory) but rather simply ignores this interface and continues with > remaining ones if present. > > Finally it adds net_dhcp alias with intention to deprecate net_bootp > completely (it would be possible to make net_bootp to actually send BOOTP > packet if someone thinks it is required). > The patch works for me on an arm64 board. With the patch, the board is able to get an IP via DHCP and subsequently is able to load a kernel image via tftp. I haven't tested the bootp functionality as I don't have a DHCP server I can control. > Features not implements: > > - DHCP server selection. We take first DHCPOFFER or BOOTPREPLY. No plans > to implement. > > - DHCP option concatenation (RFC3396). I do not expect to hit it in real > life and it rather complicates implementation, so let's wait for actual > use case. > > - client identifier (RFC6842). So far we expect valid MAC address, which > should be enough to uniquely identify client. It is also not clear how to > generate unique client identifier if we ever need one. The unimplemented features don't seem to be an issue in my environment. It would be great to see this functionality merged and working out of the box. Thanks for your efforts. Punit > > v2: change find_dhcp_option to use subscripts to avoid signed/unsigned > comparison warning. > > Should fix "may be used uninitialized" warning (although I could not > reproduce it). > > --- > grub-core/net/bootp.c | 759 ++++++++++++++++++++++++++++++++++---------= ------- > grub-core/net/ip.c | 2 +- > include/grub/net.h | 14 +- > 3 files changed, 528 insertions(+), 247 deletions(-) > [...] IMPORTANT NOTICE: The contents of this email and any attachments are confid= ential and may also be privileged. If you are not the intended recipient, p= lease notify the sender immediately and do not disclose the contents to any= other person, use it for any purpose, or store or copy the information in = any medium. Thank you.