Received: by 2002:a05:7412:3290:b0:fa:6e18:a558 with SMTP id ev16csp311693rdb; Thu, 25 Jan 2024 16:51:08 -0800 (PST) X-Google-Smtp-Source: AGHT+IFi5SjTZ8zpFTe+vd0qmdyZj3K2aqLc0SflRfJBJDUtkjOen6G7eB4ebjZD1FStsIh9IODs X-Received: by 2002:a05:620a:29c9:b0:783:9985:9858 with SMTP id s9-20020a05620a29c900b0078399859858mr842588qkp.9.1706230267905; Thu, 25 Jan 2024 16:51:07 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706230267; cv=pass; d=google.com; s=arc-20160816; b=gByuVTXrpjk8CUu0oacFf6DzqLG3ZnCHGusanffb2f+pKgd/D0wzjkxt9d+a4qNdyA qYZzjqho0AqjQWnqMfvrwKg0fFJbS9mq6LlJAAMomKvJjT6LvN2rqIxl4p2benPKFxKF FuNAuwzl5MXZn3FhrtEcFRQ3pqSZJmxrFSxipG/0CHjwjBptUjDC0cNhQMFOAHAXOJZJ 0KRvwNqlaEifq8CU62DPQ2a51DfW5fRKsaHGGDU/C1YSlUzPeNDPEloPZYpB0WbcDtpN 0aeQnb6Nu5AdW5MMxaDEv/Vaq7q4tMXc/NffXxyuyZCTjgr4P+gVZXGa4CgF0Ro8dtJN cs6g== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=OwmZML1XEoo3mKFn3Rns19ycMh3Tc/+J1jUIvA0cSFs=; fh=zdfexG1r8yvjjXLz/UtYJ+PByZnjoBqLwj8BK1nP60c=; b=mxCO3IlogHKrZwfqh13zK1cmlSDX6mEYdTRjKygNEfiTiJZPM+bcgLWKs3rsDcVSnk mURDCq4D6v4fOlAVcDMJSHgvpG0LQo9+0cr3JPy6OdvOli8dttZYNFBLOp6eZ7Hkzdgy JLV4FW3UWDxjH3xUS7OEA6PbDG1VgQMKifTOlnwvJ+FSE6x5a0DsPArgqBWChUF+qP7A dkYboK7FJfZYXESa0cj31r528l/t0TB0xwCqAyKZ+kja2SGKCWChBgFYV/0SirC+jnUH Ebi5/LKM6RnXzMGrtv/iffX0tVaiP5zWP425Iw4CHPvsq5BFTkAJRUpuHRnYK5/9stV7 U+yw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=XD+f9wnY; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-nfs+bounces-1448-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-nfs+bounces-1448-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id y5-20020a37e305000000b007839c1944f8si162911qki.761.2024.01.25.16.51.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jan 2024 16:51:07 -0800 (PST) Received-SPF: pass (google.com: domain of linux-nfs+bounces-1448-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=XD+f9wnY; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-nfs+bounces-1448-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-nfs+bounces-1448-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 7B6CC1C21DD5 for ; Fri, 26 Jan 2024 00:51:07 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EA8D8EC3; Fri, 26 Jan 2024 00:51:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="XD+f9wnY" X-Original-To: linux-nfs@vger.kernel.org Received: from mail-lf1-f53.google.com (mail-lf1-f53.google.com [209.85.167.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 229C8EBE for ; Fri, 26 Jan 2024 00:51:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706230265; cv=none; b=t7uQp2WVI5tyX58eWMp1B+H8e7HYzJXrCtXrg1JhQFd4mIEqz1Ed0M4gViYPUdXGWbM+mUwKaYx+WyH9uIu76Rwfe0UiOJoj1Ku8TbD2EKwP9GzCCSJITPVySsH99kAEnEcghH63UspFyvglpQy9TRJ7UCJON+F2dVpx7oAOH9M= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706230265; c=relaxed/simple; bh=LCg8pPjX9XQtamxlv1yLvyRFSg9i4GQAAKIKxgFGT6A=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=jq21NhYctykeT5EW8cgz4HrHFEkwatXZ01eF8oYuSaXZcCamDEVK9GpQn31kn5myxOnaR5s2ir6TjyrJgbpVOH7ur7slQPMr8qCnUlbY4BlkLCgLcyumVPCuEE4xGaQCBhPyYF6PZvdDj276Lg0O7cIYzSnHCxw7vi7F2H94k2s= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=XD+f9wnY; arc=none smtp.client-ip=209.85.167.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-lf1-f53.google.com with SMTP id 2adb3069b0e04-50e9e5c97e1so347045e87.0 for ; Thu, 25 Jan 2024 16:51:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706230262; x=1706835062; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=OwmZML1XEoo3mKFn3Rns19ycMh3Tc/+J1jUIvA0cSFs=; b=XD+f9wnYzQDet46pcL9hCreQhaTpqB1szSwLZKjIbsFZSzexTclFmgwUHQimqGsgbp tMKB0ZFRk9PxX1IR5qq1xAYudSP9yfPKSE0woACJL9+TFTjwEq77lppLjoNDCrTj5M/i 10gO6bUkMmSzdFTU8cW+YQTj4obBnnjbISdiEuGzHXjZbm60ixDsPLi3EqhY6I8q0LB7 /C4O8+5/XHYofIt+SWgu91EaNzM+Xkkk5rtyhgjuUG+MWTN1Guebo9D/EWe6RolHC8+U xDboLb+XsVhpZyci+Mv8gI40Fc2DKSBDkmJotHWWt6CtFIld78IIGbL1DdtdQgQk61ub dwZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706230262; x=1706835062; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OwmZML1XEoo3mKFn3Rns19ycMh3Tc/+J1jUIvA0cSFs=; b=myDthQyN2JI25A8vuhGZOEnEXH4JOpqz/pscQniC4EfWPImW3+Ge879Itv7wJEUYyj a9bXXAsqMxnfzd7S6GZMZLg6ELUOs9w4Zmk1b56HQVtgDvZuzs5gdywXGWaVQzKvcllx AotWvWUELZCYDDNHP8BC+IQY9QWh1gLDBSPG7zedrElVkjeSN5zmAackVvV0znNAwYh2 6eXxrzwdQBHcuVRXOzAfDoDbiC8sN/J3Ic41pkI9utrnN7D+cjQm+yKnZbJQGCLMa3cH KVOU6Uh3DJm/f6HVOHmErHaCg3n5QXWG/cwzrSXIR73GuPQSnRk6Q/02TZuLWnrcQRiQ 3L5w== X-Gm-Message-State: AOJu0YyvK8en7g5HVXOW5ad1xe1GqyBquHj0YhXTrUAfJjj0SlBn1H5L v98iNuHy+qtVpjw0GTuOKbNrFVL9tP8FyzwWMsbCCDNButttk5nM5rDEFphESjWdxSXiJqIlGc2 VKzJCHrxilFzB+7jlOmeunJeASWg= X-Received: by 2002:a05:6512:33ca:b0:510:a2f:fc48 with SMTP id d10-20020a05651233ca00b005100a2ffc48mr357392lfg.138.1706230261748; Thu, 25 Jan 2024 16:51:01 -0800 (PST) Precedence: bulk X-Mailing-List: linux-nfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <8a7bbc05b6515109692cb88ad68374d14fc01eca.camel@kernel.org> <66892D4F-4721-48E5-A088-BD75500275AD@oracle.com> In-Reply-To: <66892D4F-4721-48E5-A088-BD75500275AD@oracle.com> From: Dan Shelton Date: Fri, 26 Jan 2024 01:50:34 +0100 Message-ID: Subject: Re: Should we establish a new nfsdctl userland program? To: Chuck Lever III Cc: Cedric Blancher , Jeff Layton , Lorenzo Bianconi , NeilBrown , Dai Ngo , Olga Kornievskaia , Tom Talpey , Linux NFS Mailing List Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, 25 Jan 2024 at 21:25, Chuck Lever III wrot= e: > > > > > On Jan 25, 2024, at 2:54=E2=80=AFPM, Cedric Blancher wrote: > > > > On Thu, 25 Jan 2024 at 20:41, Jeff Layton wrote: > >> > >> The existing rpc.nfsd program was designed during a different time, wh= en > >> we just didn't require that much control over how it behaved. It's > >> klunky to work with. > >> > >> In a response to Chuck's recent RFC patch to add knob to disable > >> READ_PLUS calls, I mentioned that it might be a good time to make a > >> clean break from the past and start a new program for controlling nfsd= . > >> > >> Here's what I'm thinking: > >> > >> Let's build a swiss-army-knife kind of interface like git or virsh: > >> > >> # nfsdctl stats <--- fetch the new stats that got merg= ed > >> # nfsdctl add_listener <--- add a new listen socket, by addre= ss or hostname > > > > Absolutely NOT "hostname". Please do not repeat the mistake AGAIN of > > separating "host name" and "TCP port", as they are both required to > > find the server. Every 10 or 15 years the same mistake is made by the > > next generation of software engineers. > > I don't see how this is a mistake. > > > port > > The port number to connect to. Most schemes designate > > protocols that have a default port number. Another port number > > may optionally be supplied, in decimal, separated from the > > host by a colon. If the port is omitted, the colon is as well. > > NFS has a default port number. Thus, even RFC 1738 states that > "hostname" is just fine. It means "DNS label and default port". > > Most usage scenarios will prefer the shorthand of leaving off the > port. So engineers seem to be designing interfaces for the most > common usage, don't you think? The most common usage? For small shops that might apply, but not for big hosters where IPv4 addresses are a scarce resource. > > > > https://datatracker.ietf.org/doc/html/rfc1738 clearly defined > > "hostport", and that is what should be used here. > > RFC 1738 was published very clearly before the widespread use of > IPv6 addresses, Read below, you need [ and ] for IPv6 addresses, or be in parser hell. > which use a : to separate the components of an > IP address. I think you take the syntax part too seriously, and not Cedric's message: Address and port should be specified together, as they are required to be used together to create the socket. It's part of the address information. Instead of fighting over syntax (hostname@port, hostname:port, ...) it should seriously be considered to include the port. Also, it might be good for hosters to allow more than one nfsd instance with seperate exports file, each running on its own address/port combination. And not force them to use a VM to bloat resources. > Certainly the add_listener subcommand can take a port, but there's > plenty of room to add that in other ways. > > For example, we might want: > > # nfsdctl add_listener > > xprt > > host | addr > > and optionally > > port Nope. Just hostname:port or hostname@port. For raw IPv6 addresses you have to use square brackets anyway, or end up in parser hell. Dan --=20 Dan Shelton - Cluster Specialist Win/Lin/Bsd