Re: [netmod] AD review of draft-ietf-netmod-entity-06

"Bogaert, Bart (Nokia - BE/Antwerp)" <bart.bogaert@nokia.com> Fri, 12 January 2018 09:21 UTC

Return-Path: <bart.bogaert@nokia.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 643BF12DA68 for <netmod@ietfa.amsl.com>; Fri, 12 Jan 2018 01:21:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.921
X-Spam-Level:
X-Spam-Status: No, score=-1.921 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cBt3dmAQSQOL for <netmod@ietfa.amsl.com>; Fri, 12 Jan 2018 01:21:00 -0800 (PST)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr60131.outbound.protection.outlook.com [40.107.6.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BF54712D77C for <netmod@ietf.org>; Fri, 12 Jan 2018 01:20:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com; s=selector1-nokia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=O2umOT4xLPsO28YeT8mSty3PENzoiMyXNd5mgUViHKw=; b=aayC28TiV/xJ0E/ZnLarzGfxNFE35Y1CknmYnsd/JPTS193GtFxafBR3tPsVMRsEzuAVv+5d5jMmKOtbvG8Jndt3QqsQwZq+f0iKJN6/tTHBHqRAW0tEgKuL/FnzuZVNrZIvTajG3fzJtrlrnkDDnzgBblP0K/X0hUsqPc0/uuM=
Received: from AM4PR07MB1716.eurprd07.prod.outlook.com (10.166.133.24) by AM4PR07MB1665.eurprd07.prod.outlook.com (10.166.133.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.407.1; Fri, 12 Jan 2018 09:20:56 +0000
Received: from AM4PR07MB1716.eurprd07.prod.outlook.com ([fe80::a52a:4acb:dfe8:24c0]) by AM4PR07MB1716.eurprd07.prod.outlook.com ([fe80::a52a:4acb:dfe8:24c0%14]) with mapi id 15.20.0407.009; Fri, 12 Jan 2018 09:20:56 +0000
From: "Bogaert, Bart (Nokia - BE/Antwerp)" <bart.bogaert@nokia.com>
To: Martin Bjorklund <mbj@tail-f.com>
CC: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] AD review of draft-ietf-netmod-entity-06
Thread-Index: AQHTeZsGj/By4wgWGkSTA5QT6Ag4U6NN6XKHgBw2jXCAAazigIABZ5tAgAGdp6OAAUenoA==
Date: Fri, 12 Jan 2018 09:20:56 +0000
Message-ID: <AM4PR07MB171685685B9EA721342BA8F094170@AM4PR07MB1716.eurprd07.prod.outlook.com>
References: <20180109.163933.49682684192910889.mbj@tail-f.com> <AM4PR07MB1716D69A0AF0BBCD3BAF71D094110@AM4PR07MB1716.eurprd07.prod.outlook.com> <20180110.144453.957272588242505523.mbj@tail-f.com> <20180111.144705.493071366326080006.mbj@tail-f.com>
In-Reply-To: <20180111.144705.493071366326080006.mbj@tail-f.com>
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=bart.bogaert@nokia.com;
x-originating-ip: [135.245.212.5]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; AM4PR07MB1665; 7:dDMTrHy/1vLqdSSl0n1dPTHf+40To3cy9RW20/C8MM61z5Myj4O2qROfH0qES/CL8t5QSAsRlzUWQODSNMqDShScnAwHag66CFqUiK3+MHPg5qAJgitxlo8Vx8GaBjOgJHoxv5I/Ag5GYrODHqesAImbQC39AEDAMgxqfThVmG8mkjoyhO4pvfDV5buUPWX9nWHbMIf90uEwHI524Q14Bh9pZeGO3gi5B+p7yZlidGtmiH6HI92jJCPHLBOW+WFi
x-ms-exchange-antispam-srfa-diagnostics: SSOS;
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: d70b7e7e-e975-4358-96d4-08d5599dc972
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020079)(4652020)(4534109)(4602075)(4627205)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(3008032)(2017052603307)(7193020); SRVR:AM4PR07MB1665;
x-ms-traffictypediagnostic: AM4PR07MB1665:
x-microsoft-antispam-prvs: <AM4PR07MB166531417D759665BEB35EC194170@AM4PR07MB1665.eurprd07.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(158342451672863)(20558992708506)(82608151540597)(95692535739014);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(8121501046)(5005006)(3231023)(11241501184)(806099)(944501142)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041268)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(6072148)(201708071742011); SRVR:AM4PR07MB1665; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:AM4PR07MB1665;
x-forefront-prvs: 0550778858
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39380400002)(396003)(366004)(346002)(376002)(39860400002)(54094003)(51444003)(24454002)(40224003)(13464003)(189003)(199004)(81166006)(102836004)(66066001)(8936002)(105586002)(106356001)(2906002)(966005)(7736002)(59450400001)(7696005)(99286004)(14454004)(93886005)(68736007)(316002)(230783001)(76176011)(6506007)(53546011)(8676002)(81156014)(6916009)(2950100002)(33656002)(55016002)(4326008)(53946003)(229853002)(478600001)(86362001)(74316002)(53936002)(3280700002)(3660700001)(305945005)(6116002)(3846002)(9686003)(5660300001)(25786009)(6246003)(6436002)(6306002)(5250100002)(97736004)(2900100001); DIR:OUT; SFP:1102; SCL:1; SRVR:AM4PR07MB1665; H:AM4PR07MB1716.eurprd07.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en;
received-spf: None (protection.outlook.com: nokia.com does not designate permitted sender hosts)
x-microsoft-antispam-message-info: w/X/xlWOHLfMIMM+uyqI3DArigGnXy6NmfT5KcsQfQFYIS1c8p2QtDbp1+mXgtzSpcpNhtzeHGTi7+B5nlf9qu7G3Yf54gji9fbL6h9pIkJ3rvV2ehfR4NHmGForp76K
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d70b7e7e-e975-4358-96d4-08d5599dc972
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jan 2018 09:20:56.6323 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR07MB1665
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/9v_gbqxuixphnDoIolzkHF8d2bo>
Subject: Re: [netmod] AD review of draft-ietf-netmod-entity-06
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jan 2018 09:21:03 -0000

Hi Martin,

We agree with option 2.

Regards, Bart

-----Original Message-----
From: Martin Bjorklund [mailto:mbj@tail-f.com] 
Sent: Thursday, January 11, 2018 2:47 PM
To: Bogaert, Bart (Nokia - BE/Antwerp) <bart.bogaert@nokia.com>
Cc: netmod@ietf.org
Subject: Re: [netmod] AD review of draft-ietf-netmod-entity-06

Hi,

To summarize this, I think we have three options for the three nodes 'model-name', 'mfg-name', and 'serial-num':

  1.  Do nothing (keep the nodes as config true).

  2.  Make these three nodes config false (fairly simple change).
      (vendors can augment w/ their own config true nodes).

  3.  Add three new nodes for the configured values.


After thinking about this some more, and discussing with Benoit, I think the best path forward is to do 2, i.e., mark the nodes 'model-name', 'mfg-name', and 'serial-num' as "config false".  As such they would not be configurable, and thus contain the detected values.
If no value is detected, the node is not present.

Note that 1 or 3 can be done in a future update to this module (or by a vendor).


/martin


Martin Bjorklund <mbj@tail-f.com> wrote:
> Hi,
> 
> "Bogaert, Bart (Nokia - BE/Antwerp)" <bart.bogaert@nokia.com> wrote:
> > Hi,
> > 
> > --- snip ---
> > 
> > > state.”, so the above sentence only applies for the second case below.
> > 
> > Ok.
> > 
> > > 2. The second case is that something is detected but it can’t be read.
> > > We do not see a reason to use the value configured for the leafs 
> > > ‘serial-num’, ‘mfg-name’ and ‘model-name’ of a matching entry in 
> > > the configuration data.  These leafs are defined as optional so 
> > > why would we report something entered by an operator in the 
> > > operational datastore that intends to report on what is detected?  
> > > Is it not better to not report them at all?  In an NMDA context it 
> > > would be possible to have a different value (or no value at all) 
> > > for certain leafs while there is something in the running/intended datastore.
> > 
> > The normal NMDA procedure for a configuration leaf is to repeat it 
> > in operational state.  This is then the "applied configuration".
> > I don't think we should have a special rule for these leafs.
> > 
> > This also means that a client that just wants to read all the serial 
> > numbers can do so from one place, the operational state, regardless 
> > of how they came into existance.
> > 
> > [Bogaert, Bart ]
> > 
> > We do understand that a target of NMDA is to read out the actually 
> > applied data in one request.  But the result should not be 
> > confusion. A key word is “applied”.
> > 
> > Section 5.3 of draft-ietf-netmod-revised-datastores-09 also contains 
> > (I put a part of the section between ***):
> > The datastore schema for <operational> MUST be a superset of the 
> > combined datastore schema used in all configuration datastores 
> > except that configuration data nodes supported in a configuration 
> > datastore ***MAY be omitted from <operational> if a server is not 
> > able to accurately report them ***.
> 
> Note that this text talks about the *schema*.  It is intended for 
> servers to migrate to NMDA without having to instrument all config 
> nodes in <operational> immediately.  If you apply this to 
> ietf-hardware, it could be a server that implements the node 
> "serial-num" in config, but not in <operational> (which would be 
> weird).
> 
> > For example, it is expected that the value of multiple leafs need to 
> > be a consistent set, e.g. the mfg-name, the model-name, and the 
> > serial-num.
> > Suppose we have a use case in which a hardware component is 
> > planned/configured (e.g. a board supporting DSL interfaces) but a 
> > different one is plugged (e.g. a board supporting ethernet 
> > interfaces).
> > Suppose it is possible to read some fields on the detected component 
> > but due to an issue not to read other fields.
> > If in that case the operational datastore will be completed with the 
> > data taken from the running datastore, then the presented view might 
> > be inconsistent.
> 
> This is true for other similar nodes as well - "asset-id" and "uri".
> 
> > The question is also: what data is applied? Our assumption: if there 
> > is a mismatch between detected versus configured hardware, then the 
> > interface/service related data that is configured consistently with 
> > the planned hardware is not applied on the mismatching hardware. 
> > I.e. the detected hardware is not brought in service so not 
> > ‘applied’, the operational datastore only (accurately) reports on 
> > what is detected.
> 
> If there is a mismatch and the server doesn't apply the configured 
> values, then obviously the configured 'mfg-name' etc are not copied to 
> <operational>.
> 
> > We do not see this as a special rule for this data but rather would 
> > apply a general rule:
> > -	if there is a ‘missing resource’, then the data is not reported in the
> >  	operational datastore.
> > -	If the server is not able to report accurately, then the data is
> >  	omitted from the operational
> 
> I think that if you want complete separation between the values of 
> 'mfg-name', 'model-name', and 'serial-num' in configuration and 
> operational state, then these should be modelled as separate leafs.
> We should have a config false leaf 'serial-num' that only contains the 
> detected value (if found), and a config true leaf 'config-serial-num'
> or something, that contains the configured serial number.
> 
> But if this is the case, I wonder if it wouldn't be better to leave 
> such additional config objects to vendors, and simply make these three 
> nodes config false in ietf-hardware.
> 
> 
> /martin
> 
> > 
> > Regards, Bart
> > 
> > /martin
> > 
> > 
> > > 
> > > Best regards, Bart
> > > 
> > > -----Original Message-----
> > > From: netmod [mailto:netmod-bounces@ietf.org] On Behalf Of Robert 
> > > Wilton
> > > Sent: Thursday, December 21, 2017 4:14 PM
> > > To: Martin Bjorklund <mbj@tail-f.com>om>; netmod@ietf.org
> > > Subject: Re: [netmod] AD review of draft-ietf-netmod-entity-06
> > > 
> > > Hi Martin,
> > > 
> > > 
> > > On 21/12/2017 11:37, Martin Bjorklund wrote:
> > > > Hi,
> > > >
> > > > I need WG input on this issue.  The question is how to handle 
> > > > 'serial-num', 'mfg-name', and 'model-name'.  I think they should 
> > > > all be treated the same.  Based on previous WG discussion (see 
> > > > e.g. the mail thread "draft-ietf-netmod-entity issue #13"), I 
> > > > think they should all be configurable, but the configured value 
> > > > is only used in operational state if the system cannot read it from the hardware.
> > > I think that this approach is probably OK:
> > >   - The client can always see the real value if it is available.
> > >   - If it is not available then they can assign a value via 
> > > configuration.
> > > 
> > > I was also considering an alternative approach of having a 
> > > separate set of config false leaves for the "burnt in values".  
> > > And then having the configurable leaves always override the 
> > > default operational values. E.g. similar to how an interface MAC 
> > > address would expect to be handled.
> > > 
> > > But one set of leaves is probably sufficient.
> > > 
> > > Thanks,
> > > Rob
> > > 
> > > 
> > > >
> > > > So I suggest the following changes:
> > > >
> > > > OLD:
> > > >
> > > >        leaf serial-num {
> > > >          type string;
> > > >          config false;
> > > >          description
> > > >            "The vendor-specific serial number string for the
> > > >             component.  The preferred value is the serial number
> > > >             string actually printed on the component itself (if
> > > >             present).";
> > > >          reference "RFC 6933: entPhysicalSerialNum";
> > > >        }
> > > >
> > > > NEW:
> > > >
> > > >        leaf serial-num {
> > > >          type string;
> > > >          description
> > > >            "The vendor-specific serial number string for the
> > > >             component.  The preferred value is the serial number
> > > >             string actually printed on the component itself (if
> > > >             present).
> > > >
> > > >             This leaf can be configured.  There are two use cases for
> > > >             this; as a 'post-it' note if the server cannot determine
> > > >             this value from the component, or when pre-provisioning a
> > > >             component.
> > > >
> > > >             If the server can determine the serial number from the
> > > >             component, then that value is always used in operational
> > > >             state, even if another value has been configured.";
> > > >          reference "RFC 6933: entPhysicalSerialNum";
> > > >        }
> > > >
> > > > And corresponding text for 'mfg-name' and 'model-name'.
> > > >
> > > > And also:
> > > >
> > > > OLD:
> > > >
> > > >           When the server detects a new hardware component, it
> > > >           initializes a list entry in the operational state.
> > > >
> > > >           If the server does not support configuration of hardware
> > > >           components, list entries in the operational state are
> > > >           initialized with values for all nodes as detected by the
> > > >           implementation.
> > > >
> > > >           Otherwise, the following procedure is followed:
> > > >
> > > >             1. If there is an entry in the /hardware/component list in
> > > >                the intended configuration with values for the nodes
> > > >                'class', 'parent', 'parent-rel-pos' that are equal to
> > > >                the detected values, then:
> > > >
> > > >             1a. If the configured entry has a value for 'mfg-name'
> > > >                 that is equal to the detected value, or if the
> > > >                 'mfg-name' value cannot be detected, then the list
> > > >                 entry in the operational state is initialized with the
> > > >                 configured values for all configured nodes, including
> > > >                 the 'name'.
> > > >
> > > >                 Otherwise, the list entry in the operational state is
> > > >                 initialized with values for all nodes as detected by
> > > >                 the implementation.  The implementation may raise an
> > > >                 alarm that informs about the 'mfg-name' mismatch
> > > >                 condition.  How this is done is outside the scope of
> > > >                 this document.
> > > >
> > > >             1b. Otherwise (i.e., there is no matching configuration
> > > >                 entry), the list entry in the operational state is
> > > >                 initialized with values for all nodes as detected by
> > > >                 the implementation.
> > > >
> > > >           If the /hardware/component list in the intended
> > > >           configuration is modified, then the system MUST behave as if
> > > >           it re-initializes itself, and follow the procedure in 
> > > > (1).";
> > > >
> > > > NEW:
> > > >
> > > >           When the server detects a new hardware component, it
> > > >           initializes a list entry in the operational state.
> > > >
> > > >           If the server does not support configuration of hardware
> > > >           components, list entries in the operational state are
> > > >           initialized with values for all nodes as detected by the
> > > >           implementation.
> > > >
> > > >           Otherwise, the following procedure is followed:
> > > >
> > > >             1. If there is an entry in the /hardware/component list in
> > > >                the intended configuration with values for the nodes
> > > >                'class', 'parent', 'parent-rel-pos' that are equal to
> > > >                the detected values, then the list entry in operational
> > > >                state is initialized with the configured values,
> > > >                including the 'name'.  The leafs 'serial-num',
> > > >                'mfg-name', and 'model-name' are treated specially; see
> > > >                their descriptions for details.
> > > >
> > > >             2. Otherwise (i.e., there is no matching configuration
> > > >                entry), the list entry in the operational state is
> > > >                initialized with values for all nodes as detected by
> > > >                the implementation.
> > > >
> > > >           If the /hardware/component list in the intended
> > > >           configuration is modified, then the system MUST behave as if
> > > >           it re-initializes itself, and follow the procedure in 
> > > > (1).";
> > > >
> > > >
> > > >
> > > > /martin
> > > >
> > > >
> > > >
> > > >
> > > > Benoit Claise <bclaise@cisco.com> wrote:
> > > >> On 12/20/2017 4:00 PM, Martin Bjorklund wrote:
> > > >>> Benoit Claise <bclaise@cisco.com> wrote:
> > > >>>> Hi Martin,
> > > >>>>
> > > >>>> Thanks.
> > > >>>> Only kept the relevant excerpts.
> > > >>>>>> - Some objects are read-write in RFC6933:
> > > >>>>>>          entPhysicalSerialNum
> > > >>>>>>          entPhysicalAlias
> > > >>>>>>          entPhysicalAssetID
> > > >>>>>>          entPhysicalUris
> > > >>>>>>
> > > >>>>>> For example, entPhysicalSerialNum being read-write always 
> > > >>>>>> bothered me.
> > > >>>>>> serial-num is now "config false", which is a good news IMO.
> > > >>>>> Actually, this was not the intention.  In
> > > >>>>> draft-ietf-netmod-entity-03 this is configurable.  I missed 
> > > >>>>> this in the conversion to NMDA.
> > > >>>> Ah. So no good news in this case...
> > > >>>>>> In the reverse direction, entPhysicalMfgName is read-only 
> > > >>>>>> in RFC6933, while it's "config true" in 
> > > >>>>>> draft-ietf-netmod-entity
> > > >>>>> Yes, this was added per request from the WG.  See e.g. the 
> > > >>>>> thread "draft-ietf-netmod-entity issue #13".
> > > >>>> Sure. It was mainly an observation.
> > > >>>>> However, I think that what we have now is probably not correct.  
> > > >>>>> I think that all nodes 'serial-num', 'mfg-name', and 'model-name'
> > > >>>>> should be config true, and the description of list 'component' 
> > > >>>>> updated to reflect that all these tree leafs are handled the same way.
> > > >>>>>
> > > >>>>> I would like to know what the WG thinks about this.
> > > >>>> Talking as a contributor this time.
> > > >>>> It seems that inventory management is kind of broken when 
> > > >>>> someone can change 'serial-num', 'mfg-name', and 'model-name.
> > > >>> They can't really change them.  The configured values are only 
> > > >>> used (i.e. visible in the operational state) if the device 
> > > >>> cannot detect them automatically.  I.e., they work as "post-it" notes only.
> > > >> If I look at, for example, the mfg-name, description, this is 
> > > >> not what it says.
> > > >>
> > > >>     leaf mfg-name {
> > > >>             type string;
> > > >>             description
> > > >>               "The name of the manufacturer of this physical component.
> > > >>                The preferred value is the manufacturer name string
> > > >>                actually printed on the component itself (if present).
> > > >>
> > > >>                Note that comparisons between instances of the model-name,
> > > >>                firmware-rev, software-rev, and the serial-num nodes are
> > > >>                only meaningful amongst component with the same value of
> > > >>                mfg-name.
> > > >>
> > > >>                If the manufacturer name string associated with the
> > > >>                physical component is unknown to the server, then this
> > > >>                node is not instantiated.";
> > > >>             reference "RFC 6933 <https://tools.ietf.org/html/rfc6933>:
> > > >>             entPhysicalMfgName";
> > > >>
> > > >> Regards, Benoit
> > > >>
> > > >>>
> > > >>> /martin
> > > >>> .
> > > >>>
> > > > _______________________________________________
> > > > netmod mailing list
> > > > netmod@ietf.org
> > > > https://www.ietf.org/mailman/listinfo/netmod
> > > > .
> > > >
> > > 
> > > _______________________________________________
> > > netmod mailing list
> > > netmod@ietf.org
> > > https://www.ietf.org/mailman/listinfo/netmod
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod