From patchwork Tue Sep 1 20:03:10 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kevin Darbyshire-Bryant X-Patchwork-Id: 513049 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from arrakis.dune.hu (arrakis.dune.hu [78.24.191.176]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id AB1A2140134 for ; Wed, 2 Sep 2015 06:03:50 +1000 (AEST) Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id 95F5F28C622; Tue, 1 Sep 2015 22:02:39 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on arrakis.dune.hu X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAD_ENC_HEADER,BAYES_00 autolearn=unavailable version=3.3.2 Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id 43A9928C622 for ; Tue, 1 Sep 2015 22:02:33 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 HELO_IP_IN_CL_SUBNET=-1.2 (check from: .darbyshire-bryant. - helo: .emea01-am1-obe.outbound.protection.outlook. - helo-domain: .outlook.) FROM/MX_MATCHES_HELO(DOMAIN)=-2; rate: -7.7 Received: from emea01-am1-obe.outbound.protection.outlook.com (mail-am1on0099.outbound.protection.outlook.com [157.56.112.99]) by arrakis.dune.hu (Postfix) with ESMTPS for ; Tue, 1 Sep 2015 22:02:32 +0200 (CEST) Received: from HE1PR07MB0938.eurprd07.prod.outlook.com (10.162.27.144) by HE1PR07MB1305.eurprd07.prod.outlook.com (10.164.51.155) with Microsoft SMTP Server (TLS) id 15.1.256.15; Tue, 1 Sep 2015 20:03:26 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kevin@darbyshire-bryant.me.uk; lists.openwrt.org; dkim=none (message not signed) header.d=none; lists.openwrt.org; dmarc=none action=none header.from=darbyshire-bryant.me.uk; Received: from Animal.darbyshire-bryant.me.uk (151.226.12.52) by HE1PR07MB0938.eurprd07.prod.outlook.com (10.162.27.144) with Microsoft SMTP Server (TLS) id 15.1.256.15; Tue, 1 Sep 2015 20:03:23 +0000 From: Kevin Darbyshire-Bryant To: Date: Tue, 1 Sep 2015 21:03:10 +0100 Message-ID: <1441137790-18893-1-git-send-email-kevin@darbyshire-bryant.me.uk> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 X-Originating-IP: [151.226.12.52] X-ClientProxiedBy: AMSPR02CA0031.eurprd02.prod.outlook.com (10.242.225.159) To HE1PR07MB0938.eurprd07.prod.outlook.com (25.162.27.144) X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0938; 2:Dk9r5lE09DDSFwKMof6F8qo3Pq+AvWiPfDNWWVg9VI0EtzF1+DlBpLm3E2kC474aZdd1PVSoVptiS7vcs80CaF8xke6PkSlz2zzd2vp+t9ORYrGAzhTwtSgSQBrYTPxE9IoAyuzOSvq4YEYEhAwNBfNyCsOIWVPALTRCpQaCSEE=; 3:SIxK1Nxov3Zz4/UMtbG2nSQ5HPkm0OP0pMm/ejlX7/X6dAPon31CiJv4o8D+Ng1zH4IgcvP9TVDqTnPePrppxvhrzSh/0CKWa62Nthqs5MoKlmKhhgAI21AgRoMIb9SPJzU3ZH4jSoEt9WKyja5GPA==; 25:8AsuUyrXo69139/HEzc1Hg4IEUe75W93BkcauN64xshArEvXtNx2khfOMB5U+CQRw9ys674e01elv+vbahnxMvesP8h56p0e+CkOmsNN/64uf8a8exwr4hEQdJ5Hwi0qBKsojgFD7CVA9GHYdqpezlRhu+ON7RJdjZHzbtqGPsaX/89950fgWHmWOnGjPgqVujmd/tA8b2eWi2jWkWYUpUDC7lHUTV3nJAJaRH722+J9TEBIdaS5UJow57B1O8T3qNbveCt5BE+s2hBKqtWoBA==; 4:X9fb/EHPpUhgLWGNZn5jpz+62BfqYJvra8kuwyyw9rMSqS5auoHelWXAkW9z0jxtxiu5ap/YaZ1bHnHoMHuL1Xb3j81JAtyp2+6OXOrGAibZYhh+E/Z8YvLZK5HYn0EmhXAYpc1bh1i2rosgmLXfPn7pdu4D77s9f5SR2RLTRUm7pv5mHKEx5QtjK278kDHfLk8oXW0kJuv8UdXwjD2+2o6fqZ0iNyix64D9u9eHboomC1cx4E5XMhN63A9Fz6ipdl/9OBxH2se6OmGn0maezNjD0aUfldR3TdrMwWS0rEGCQ/WlYjem/Ten/KWFEO1Y X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:; SRVR:HE1PR07MB0938; UriScan:; BCL:0; PCL:0; RULEID:; SRVR:HE1PR07MB1305; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(8121501046)(5005006)(3002001); SRVR:HE1PR07MB0938; BCL:0; PCL:0; RULEID:; SRVR:HE1PR07MB0938; X-Forefront-PRVS: 06860EDC7B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(189002)(199003)(69596002)(5004730100002)(2351001)(50986999)(42186005)(46102003)(101416001)(105586002)(33646002)(66066001)(229853001)(106356001)(74482002)(19580405001)(53416004)(64706001)(47776003)(19580395003)(450100001)(77156002)(5001860100001)(48376002)(50466002)(77096005)(36756003)(97736004)(87976001)(5001960100002)(50226001)(81156007)(92566002)(5007970100001)(189998001)(5001920100001)(5003940100001)(107886002)(122386002)(5001830100001)(40100003)(68736005)(62966003)(86362001)(4001540100001)(110136002)(4001430100001); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR07MB0938; H:Animal.darbyshire-bryant.me.uk; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: darbyshire-bryant.me.uk does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR07MB0938; 23:qzUYaVd55g0sWm04GBxDcOpFOZ7+YVPJxaViPyG1z?= =?us-ascii?Q?b+VF1hWA/R5M6dfrcQO8qkqgwgwZ3B41yF8xw+VFTYzyXFzs84v+cID5qgYz?= =?us-ascii?Q?JtW9ickvjiAlWP1Fh4kAXQolU7/lEQeYkQgP1F/awBubQu9FnUyJJ12EV2ho?= =?us-ascii?Q?ykZyFOqGeW1sinecPpp6pfETHJu9tzeRWtPpvAEiNe4Qt7jD6apGy3RD8PLZ?= =?us-ascii?Q?MmFwhpMRA3yfVkkAMgz1VOORYYdpiVGnLN8zvcB0ts8/cG8eF8tZAEUw9Udt?= =?us-ascii?Q?pyA9/JV9ZKs3Iz9GCyCP7+lu2x8yrXZwNUlTbP3Cj9pqEq8vIqKd9X9hxxKb?= =?us-ascii?Q?Sb+5j+jNoS44eqmCBx9HQYyXvytiw5qpywqh45UM/mxMLOcfoaeBus0nsByX?= =?us-ascii?Q?RzCXRA+b3CO6OIGQrlDRenHUJKlSk5H6UKOMF0801UJxyvaLhEtiYQej0gQ5?= =?us-ascii?Q?/wRN6Y3FAyGdetsv6fuID3ti4ospY0id0fB2dMJu8205CSMXC1yTkfiIh5AX?= =?us-ascii?Q?OrXLElfXQ+FE9iDwOnqSxQGTzLd2sYztQK4J4N3h3WVjWUdM0GBaFbsGbErm?= =?us-ascii?Q?pqxb+sFsd1tyd6n9GbHMSXyndTRoMrYtLOosu4L66hXyH902DuVECwzUNZ2A?= =?us-ascii?Q?K1y1mWgHfKy70zuh78fIjMfqHeUgvlKvKH2JvzIeHdAgmuwbfSYHXQBUeydc?= =?us-ascii?Q?jCVNBkSZ1XWs335UakhLgu13y2cCkYRfQ86460b/O/ruoBxiMzkp/Z6UxKiy?= =?us-ascii?Q?V2nQgYRoD9gIsLEDAoPWEDDPcbszEeI757M2uiBAK9vz+ui69QzsVc0j0V6g?= =?us-ascii?Q?M4OKTSKNG0pXpq9wAnK5WUeVmlWf4zjgGxj/Eon7++BIGsEcjWd9M/B7YRF/?= =?us-ascii?Q?dCMIGGjJMx153tuLVfd4SA335/MdwlDEXO2f8PigVj9yzJh3WtTwq7F0sB94?= =?us-ascii?Q?OMEIdVGJtUPb4I7RBbmZ2XG3gPgFvh8/HVfF5BQ4/rCW8qJnWI2AYuqRvR6k?= =?us-ascii?Q?FnCdAVuDVZ0dQBd+pEa3BoqwwIVLN38sPXi9J1E0u9Too1nBZYVlkXB/XWwN?= =?us-ascii?Q?P5mbq8wI/tgRemIwfWyp6FE17AfJHRhnBAyLu3LTWrw1l0Y65TFOqxnmWNdB?= =?us-ascii?Q?3rceW42xIjJthUMbw0t16RAdFtqQwdn+EO6Q+NnarNb6D/1Jubt6+lhPkaLy?= =?us-ascii?Q?64OCkdOnWqkG9WbCe4TlTJGFdiNwXoR9rIQDfDqr7l+aGJdf0r/RjQKjUWMl?= =?us-ascii?Q?SmnLpfKIS5bNFQdCTP6gjKvUs4IfcB5MCGDjDtilTVGlFllNZh+gt/b2pjQE?= =?us-ascii?B?Zz09?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0938; 5:yQ7KZnWS1pBOvqeI2N3ODYCyp0ZiRxBgwNkzXK8qMOtDLi8T5iZT4OlbTjJ89F1ABx0MDZheZ+i12FhFaImIL7TQx7eGAm8sRRku/4rCQU22ud8YEhJpvXywRDBcOEfuxbTFhJFz2i4nZrP38Zam8g==; 24:NlBG5AqyZJ6+R5sE/G48N/anD980aaktW4eZIw5nONPYAhGcr9oehyIapXnGfyqjFY5kVhJeb3h1QlLdwrHVzt5ROludYhLyAzAuDfWfhFs=; 20:2vL6rP98Sze2i7S/gtVAANyF0U3pOQWYf9VmWAKzOX7NJAXksB4SNiZr16DtbAicq8wrBAvKqGlSgpoPUc4ZaQ== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Sep 2015 20:03:23.7959 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR07MB0938 X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB1305; 2:xCX9YbujWlbIHtGoJeadUZQyGxeYXvarJGkyZKictUGNx4vhqwgmy79+39CdfG7S3ccLUs7yWbzUfipyTWWspDGSpVcBCJY/pMNFpJiYUCW5Ocvi0li4GA4cSprkBEFhz2TvOYch8+N8mcGYCTjKmpf2LhPr56cFl6YlNaYD2sw=; 3:7StGcMDXniX6cNopbUvtW3dWd4w893FupFxMYP4lLJeCDFz7TYCpB/GbfPf8UiZmByZVJP72I/e4JLtgjFFEZcKVL9xar9ORRYib41mxhWQbPRz3jLokBrGa0MpJuxRpin9QD/LGqE7PTgIi7/LsCA==; 25:Am3fUjDHCzv4n9c6eubxJugVMRL+iB+K5M3fdLzM3bImdf/Xf210q7eZsFKLS4r5fvPb6ocucna5M77EIYpWeq7vw9ssTXLW4aAMfbOQKMedZIiWhUTp29LoWRWM0e7w1XzS57loD/a5IXMReIxI4GHYlpGs2gpSCcvtgtLsqlYZg/6BKKK26jPOZ4/uUvEMY83w48ZhBck+63nMLpv62sBdQkXZgWW2MRD4G4evTwbPpmPZRrgvf8aDg4Sz0qlAa/zkZ5JGiuzCBbHeTaeMkQ==; 23:fcKxX6adzM8hfOSchl1kXHsXNgvPtGe0VtUynFGoh2KMvQhiJBdQa+kYWCinyzVisaFj3EZeYJPULN+9YTxkREIQYfphBrJdmpQyQaa1PtwmWtvUkUR++rSzyXpaHNjawYOuZ6MH4Iwkc5nYpUOVV5zPNUFWc439caeuzsKQ8QGywlX08bf3lB2UZhSJrGMg X-OriginatorOrg: darbyshire-bryant.me.uk Subject: [OpenWrt-Devel] [PATCH] dnsmasq: support hostid ipv6 address suffix option X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: openwrt-devel-bounces@lists.openwrt.org Sender: "openwrt-devel" Add support for hostid dhcp config entry to dnsmasq. This allows specification of dhcpv6 hostid suffix and works in the same way as odhcpd. Entries in auto generated dnsmasq.conf should conform to: dhcp-host=mm:mm:mm:mm:mm:mm,IPv4addr,[::V6:su:ff:ix],hostname example based on sample config/dhcp entry: config host option name 'Kermit' option mac 'E0:3F:49:A1:D4:AA' option ip '192.168.235.4' option hostid '4' dhcp-host=E0:3F:49:A1:D4:AA,192.168.235.4,[::00:00:00:04],Kermit Signed-off-by: Kevin Darbyshire-Bryant --- Proper thanks to jow_laptop for lots of help with this .../network/services/dnsmasq/files/dnsmasq.init | 29 +++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/package/network/services/dnsmasq/files/dnsmasq.init b/package/network/services/dnsmasq/files/dnsmasq.init index ab64e88..58c301f 100644 --- a/package/network/services/dnsmasq/files/dnsmasq.init +++ b/package/network/services/dnsmasq/files/dnsmasq.init @@ -23,6 +23,27 @@ xappend() { echo "${value#--}" >> $CONFIGFILE } +hex_to_hostid() { + local var="$1" + local hex="${2#0x}" # strip optional "0x" prefix + + if [ -n "${hex//[0-9a-fA-F]/}" ]; then + # is invalid hex literal + return 1 + fi + + # convert into host id + export "$var=$( + printf "%02x:%02x:%02x:%02x\n" \ + $(((0x$hex >> 24) % 256)) \ + $(((0x$hex >> 16) % 256)) \ + $(((0x$hex >> 8) % 256)) \ + $(( 0x$hex % 256)) + )" + + return 0 +} + dhcp_calc() { local ip="$1" local res=0 @@ -329,10 +350,16 @@ dhcp_host_add() { config_get tag "$cfg" tag + config_get hostid "$cfg" hostid + + if [ -n "$hostid" ]; then + hex_to_hostid hostid "$hostid" + fi + config_get_bool broadcast "$cfg" broadcast 0 [ "$broadcast" = "0" ] && broadcast= - xappend "--dhcp-host=$macs${networkid:+,net:$networkid}${broadcast:+,set:needs-broadcast}${tag:+,set:$tag}${ip:+,$ip}${name:+,$name}" + xappend "--dhcp-host=$macs${networkid:+,net:$networkid}${broadcast:+,set:needs-broadcast}${tag:+,set:$tag}${ip:+,$ip${hostid:+,[::$hostid]}}${name:+,$name}" } dhcp_tag_add() {