Re: [netconf] WGLC: draft-ietf-netconf-notification-capabilities-11

Balázs Lengyel <balazs.lengyel@ericsson.com> Tue, 10 March 2020 12:24 UTC

Return-Path: <balazs.lengyel@ericsson.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E2CF63A11E9; Tue, 10 Mar 2020 05:24:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.101
X-Spam-Level:
X-Spam-Status: No, score=-2.101 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.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 TW_3Ow_WVyum; Tue, 10 Mar 2020 05:24:11 -0700 (PDT)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02on0628.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe06::628]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 475BC3A11EA; Tue, 10 Mar 2020 05:24:11 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; =?utf-8?q?b=3DoJ5lcV7oi40/GFA/5jfS/DiY4P4yVP8K4hB92Fk6Xx/eqAtJDl7m+AfbhDZ10?= =?utf-8?q?LXzSNpJLw2RiODvOimXsL8rdgdpGQcjYY8NJZ4zn5yvIDjDuptPAKzk90jIhIqE1k?= =?utf-8?q?xs4zmOC00Te2DOaJVzb3ggJwNgldjRMA6+VJEXRc2QQmOwzk2domAABS+GC6V7ynT?= =?utf-8?q?R7FqpKOlf4GSx7RpChC2zeUal9Q6ijLN65s5/Vc0sWsb4ktR9O4ikvqCWsntTs3Wq?= =?utf-8?q?v10P3pBW3up3OnJLZTRAwNjbOpmKq8ycc9ukS4tXDkqYtlAQKIDxQR0K9vt07VLXz?= =?utf-8?q?e6RS2EWztbXOVvA6zq6yA=3D=3D?=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; =?utf-8?q?h=3DFrom=3ADate=3ASubject=3AMessage-ID=3ACont?= =?utf-8?q?ent-Type=3AMIME-Version=3AX-MS-Exchange-SenderADCheck=3B?= =?utf-8?q?bh=3DnVZvbgJ/Fe4r2I6zjEdjhCVsRqBl+qerFqbwYLw9S2w=3D=3B_b=3DJR2hVH?= =?utf-8?q?Ae/ere0OWl5Mhnsv/kX0B6ihzXj4tqh4wsIukRrhpNybymTT68Uy95va4WzpIy9GT?= =?utf-8?q?R44jGtaMfuP2tMu4FM+mHaR6cDiR1flydKg85NB2RnkMe8RMn2uJZSkCM/ZJz6tq9?= =?utf-8?q?xwMVtpPM4QXnfEHGX3PAVP0znMSHTFbJYN3ayPEx+V5np5Ux6H8YorzQ0MIrvglhG?= =?utf-8?q?x5jRmcvwBE230IL0ZkULMglbMAgP1Zc2R6izTXBLmL+q2XllkoM+EFFLVLDvJ6Xqx?= =?utf-8?q?aVo4MbDL3+1fqlkYiI1D0kw3wb7KC3ySC1hfBbsvNFSTIsz6cN+EaGnKZMKy3FJeK?= =?utf-8?q?pJJ5FQXQdDA=3D=3D?=
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; =?utf-8?q?h=3DFrom=3ADate=3ASubject=3AMessage-ID=3AContent-Typ?= =?utf-8?q?e=3AMIME-Version=3AX-MS-Exchange-SenderADCheck=3B?= =?utf-8?q?bh=3DnVZvbgJ/Fe4r2I6zjEdjhCVsRqBl+qerFqbwYLw9S2w=3D=3B_b=3DgFCNb2?= =?utf-8?q?00nlLKlMDn0YeuBJpSvQ/f3V61iUUfXiYBVM+bGaIzDJRr8uRWAfaZBr+RLsL1aA/?= =?utf-8?q?qwJLjkajxiw6mzuaMwmzLbqXVKv/8YkVSp8skB6tYUhJndkbVRB2hJucH7pjgFg5K?= =?utf-8?q?9seJRJW9ZVIULIGO9Sq/prOp+6A1fDt1dBk=3D?=
Received: from DB7PR07MB4011.eurprd07.prod.outlook.com (52.134.97.155) by DB7PR07MB5963.eurprd07.prod.outlook.com (20.178.84.210) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2814.10; Tue, 10 Mar 2020 12:24:08 +0000
Received: from DB7PR07MB4011.eurprd07.prod.outlook.com ([fe80::15cf:dc81:c6f4:aa0c]) by DB7PR07MB4011.eurprd07.prod.outlook.com ([fe80::15cf:dc81:c6f4:aa0c%7]) with mapi id 15.20.2814.007; Tue, 10 Mar 2020 12:24:08 +0000
From: =?iso-8859-2?Q?Bal=E1zs_Lengyel?= <balazs.lengyel@ericsson.com>
To: "Rob Wilton (rwilton)" <rwilton@cisco.com>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-notification-capabilities@ietf.org" <draft-ietf-netconf-notification-capabilities@ietf.org>
Thread-Topic: [netconf] WGLC: draft-ietf-netconf-notification-capabilities-11
Thread-Index: AQHV5fT9KP6991uunUyOxSTTpAhfm6ggKT0AgBjpugCAB6OcAIAA/NWw
Date: Tue, 10 Mar 2020 12:24:08 +0000
Message-ID: =?utf-8?q?=3CDB7PR07MB4011F0C718EF704D1B0F5385F0FF0=40DB7PR07MB4?= =?utf-8?q?011=2Eeurprd07=2Eprod=2Eoutlook=2Ecom=3E?=
References: =?utf-8?q?=3C0100017055c347e5-13b624a9-04c0-4ba5-8a53-26a80f0796?= =?utf-8?q?07-000000=40email=2Eamazonses=2Ecom=3E_=3C0100017055e833dd-1a2eca?= =?utf-8?q?c4-53e4-4bb7-aab9-f75516c5fd38-000000=40email=2Eamazonses=2Ecom?= =?utf-8?q?=3E_=3C01000170a78abdde-66112ceb-d466-4c72-ad18-6058ef07ab02-0000?= =?utf-8?q?00=40email=2Eamazonses=2Ecom=3E_=3CBY5PR11MB43554B2EDF3D395D2680D?= =?utf-8?q?9C1B5FE0=40BY5PR11MB4355=2Enamprd11=2Eprod=2Eoutlook=2Ecom=3E?=
In-Reply-To: =?utf-8?q?=3CBY5PR11MB43554B2EDF3D395D2680D9C1B5FE0=40BY5PR11MB?= =?utf-8?q?4355=2Enamprd11=2Eprod=2Eoutlook=2Ecom=3E?=
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=balazs.lengyel@ericsson.com;
x-originating-ip: [89.135.192.225]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: b42251a1-a274-456a-d385-08d7c4edee8e
x-ms-traffictypediagnostic: DB7PR07MB5963:
x-microsoft-antispam-prvs: =?utf-8?q?=3CDB7PR07MB5963EF99ED95CAE47E5BA5C0F0F?= =?utf-8?q?F0=40DB7PR07MB5963=2Eeurprd07=2Eprod=2Eoutlook=2Ecom=3E?=
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 033857D0BD
x-forefront-antispam-report: SFV:NSPM; =?utf-8?q?SFS=3A=2810009020=29=284636?= =?utf-8?b?MDA5KSgzNzYwMDIpKDM5NjAwMykoMTM2MDAzKSgzNjYwMDQpKDM5ODYwNDAw?= =?utf-8?b?MDAyKSgzNDYwMDIpKDE5OTAwNCkoMTg5MDAzKSg1MjUzNjAxNCkoMzE2MDAyKSg4?= =?utf-8?q?6362001=29=2815650500001=29=2830864003=29=289686003=29=284326008?= =?utf-8?b?KSg1NTAxNjAwMikoOTY2MDA1KSg3MTIwMDQwMDAwMSkoNjY1NzQwMTIpKDY2?= =?utf-8?q?476007=29=2866616009=29=2866556008=29=287696005=29=285660300002?= =?utf-8?b?KSg3NjExNjAwNikoNjY0NDYwMDgpKDI5MDYwMDIpKDY2OTQ2MDA3KSg0Nzg2?= =?utf-8?b?MDAwMDEpKDExMDEzNjAwNSkoMjYwMDUpKDE4NjAwMykoODkzNjAwMikoMzM2?= =?utf-8?b?NTYwMDIpKDg2NzYwMDIpKDgxMTY2MDA2KSg2NDc1NjAwOCkoNjUwNjAwNyko?= =?utf-8?q?81156014=29=2853546011=29=3B?= DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR07MB5963; H:DB7PR07MB4011.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: =?utf-8?q?y8ATOOcU6gMUPueKYB6i+HeKwDV9g4e?= =?utf-8?q?87YZi6E7hP0w0OiGHX5xepqGttK31juVEt9nFC+5Zu8QHEwgo5l/sCkxTDi6vr/sR?= =?utf-8?q?GaFd5/OVeH5B2fNYM0ksehRftl2TnYKBBAppoObF2aKO+9xQqGekQDnm/d28EmXJK?= =?utf-8?q?yNW8G+bo2P5IbTmNsOyAiJx2r0X0ja17J5wPFNipGCD0PxsDp8zG55X+yh5TT1J6g?= =?utf-8?q?q0aOEHNa29Z15NzaRA3oLIMQirnsM1vJ5IwKQHhD7u67KFGfA//Ks1Nh+6VJM9qK/?= =?utf-8?q?lX4zLmw3rRaZZnfieuakjzY1/CVBs76ERxfsHyY2RzXotJOHrnzBOUa44Ot4jKksk?= =?utf-8?q?vfaAN+Fg1pieajku9uvrLsL74621BZM9NRIGjyDyHARCMq7RFErWoitxJP8r2wH//?= =?utf-8?q?dmjhNOjdn+N/j7cIuSsokkVmBuLcFNHAvtNQ3sA4yyQYhW4NOMuiYgUAOWF2wozn5?= =?utf-8?q?RISEHiZ4ECWr7F7TqnsbcTeOCOVvhuxsnhNldhMg3bHeLupA=3D=3D?=
x-ms-exchange-antispam-messagedata: =?utf-8?q?G3f1pY71qpp+lFK4yJiZFZVecG81d0?= =?utf-8?q?klJGFIeNm+WLam0O85C72Y4/LTReBCPIqWdNIY/H5UR2rEOP4hwCapwp7hi4vnrP8?= =?utf-8?q?fZgx1yHymNEYftvMxVl6hJ8oYQexL8WE3lsIIoju4jghwQ6jkrbwOQg=3D=3D?=
x-ms-exchange-transport-forked: True
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=SHA1; boundary="----=_NextPart_000_01AC_01D5F6DF.2CD27E70"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b42251a1-a274-456a-d385-08d7c4edee8e
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Mar 2020 12:24:08.3226 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: =?utf-8?q?fYGqgDQtp57xQPJGdC6OS?= =?utf-8?q?lKBbC3KBm8cQtg8unG4/w8CIJl81KRQueotLfxA0/qahJpew9T3sRo9RTK2ECg+90?= =?utf-8?q?rflvqBVEYYxZ00QWlAYVU=3D?=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR07MB5963
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/0tAL7M2Do569dJob3A0rhe0PVpI>
Subject: Re: [netconf] WGLC: draft-ietf-netconf-notification-capabilities-11
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Mar 2020 12:24:14 -0000

-----Original Message-----
From: Rob Wilton (rwilton) <rwilton@cisco.com> 
Sent: 2020. március 9., hétfő 19:34
To: netconf@ietf.org; Balázs Lengyel <balazs.lengyel@ericsson.com>om>;
draft-ietf-netconf-notification-capabilities@ietf.org
Cc: Kent Watsen <kent+ietf@watsen.net>
Subject: RE: [netconf] WGLC: draft-ietf-netconf-notification-capabilities-11

Hi,

Thank you for this work.  I've reviewed this document as an individual
contributor and also as an early incoming AD review.


Overall comments:

I support the progression of this work, I think that it is both useful and
important, and the document is well written.  I like the split into two
separate YANG modules covering system capabilities vs YANG push
notifications.  I think that in an ideal world this work would probably be
split into two separate documents, one covering system capabilities, and the
second for notification capabilities.  In particular, I could imagine the
system capabilities evolving over time.  However, I also understand the
desire to complete this work, and I don't want to delay it.


Comments on individual sections:


1. Title:
 Perhaps it would be more accurate to name it as 
   "YANG Modules for describing System Capabilities and Yang-Push
Notification Capabilities?"
BALAZS: OK
 
2. Abstract
I propose that you rework the text to.
 
 OLD:
 
    This document proposes two YANG modules.  The module ietf-system-
   capabilities provides a structure that can be used to specify any
   YANG related system capability.

   The module ietf-notification-capabilities allows a publisher to
   specify capabilities related to "Subscription to YANG Datastores"
   (YANG-Push).  It proposes to use YANG Instance Data to document this
   information and make it already available at implementation-time, but
   also allow it to be reported at run-time.
   
 NEW:
 
   This document defines two YANG modules:
   
   The module ietf-system-capabilities provides a structure that can be
   used to specify YANG related system capabilities for servers.  The module
   can be used in conjunction with YANG Instance Data to make this
information
   available at implementation-time.  The module can also be used to report
   capability information from the server at run-time.

   The module ietf-notification-capabilities augments
ietf-system-capabilities
   to specify capabilities related to "Subscription to YANG Datastores"
   (YANG-Push). 
BALAZS: OK


3. Terminology:

- Please add a reference to "instance data" from
draft-lengyel-netmod-yang-instance-data
BALAZS: OK

- Add the sentence: "In addition, this document defines the following
terms:"
BALAZS: OK

- Perhaps change "On-change Notification Capability" -> "On-change
notification capability"?
- Move the definition of on-change notification capability last.
BALAZS: OK

- Implementation-time information and Run-time information.  I think that
these definitions should only be defined in terms of "server" and not
"publisher", because I think that these considerations apply to all system
capabilities, not only notifications.  Perhaps also reference YANG instance
data.
BALAZS: I like the original text more, but I will change it. The term server
is included in both definitions. It can be debated whether sending
notifications is a server activity, as it not immediately connected to a
request; hence I originally  had the "publisher" included too.

E.g.

OLD:

   Implementation-time information: Information about the publisher's or
   server's behavior that is made available during the implementation of
   the publisher/server, available from a source other then a running
   server.

   Run-time information: Information about the publisher's or server's
   behavior that is available from the running server via management
   protocols such as NETCONF [RFC6241] or RESTCONF [RFC8040].

NEW:

   Implementation-time information: Information about the server's
   behavior that is made available during the implementation of
   the server, available from a source other then a running server, such
   as YANG Instance Data [XXXX].

   Run-time information: Information about the server's behavior that is
   available from the running server via management protocols such as
   NETCONF [RFC6241] or RESTCONF [RFC8040].


   
4. Section 2:
Please state that the YANG modules are compliant to NMDA.
BALAZS: What does it mean that a read-only module is NMDA compliant? Please
explain. I would rather not add text that I do not understand.


5. YANG model:

- Does "minimum-dampening-period" only apply of "on-change-supported" is
enabled.  If so, it might be helpful for the description to state this.  I
would also put the "on-change-supported" leaf before the
"minimum-dampening-period" leaf.
BALAZS: The leaf has an if-feature "yp:on-change" substatement, which should
indicate it is relevant to on-change. I would like to avoid replicating too
much information from the Yang-Push RFC.
I will rearrange the order of leaves grouping periodic and on-change related
leaves.

- Does "minimum-dampening-period" only apply if dampening is requested, or
does that mean that dampening is always required?  The text may need to be
clarified.  Otherwise, I'm concerned about the on-change notification for
interface statistics ... that could generate a lot of notifications ;-)
BALAZS: The answer is not trivial. I can see logic in both cases:
a) if there is a minimum-dampening-period declared  here, that means that
dampening MUST always be used. Logical because if the publisher can not
support a smaller than 5 sec dampening period, it is probably incapable to
support on-change without dampening.
b) the publisher MAY support on-change without dampening, but if dampening
is requested the period MUST NOT be smaller than the
minimum-dampening-period

- For both "minimum-dampening-period" and on-change-supported", can probably
remove "data store or" from the description.
BALAZS: OK

- Suggest moving "supported-excluded-change-type" above
periodic-notifications-supported, to keep all the on-change options
together.  I'm also not particularly keen on the negative enumeration
values, having them as positive values would seem more normal to me.
BALAZS: I will rearrange the order of leaves grouping periodic and on-change
related leaves.
I used negative numbers as the type's union also includes type
yp:change-type which is an enumeration with implicit value assignment. Using
negative numbers is a way to avoid clashing with these implicitly assigned
numbers.

6. Section 6 (Security):

Is there a risk that the capabilities information, if available offline and
also from a device, could be used to fingerprint the device and gain
information about what version of software/hardware is being run?
BALAZS: I t could be used as part of the fingerprinting, as any readable
data that changes infrequently. IMHO this is a generic problem, to be solved
by proper access control rules. Adding it as a kind of standard boiler text
to every YANG module would not help. Maybe we would need an OAM security
RFC. 


7. Could you please add a brief section to thank folks who have contributed
and reviewed this work.
- I think that it easier to get reviews, if the time/effort spent in the
review is acknowledged.
BALAZS: I usually do it. It seems I forgot it now.


8. Appendix A:
- Your examples look like they probably have some introduced line wrapping
(e.g. for the description, node-selector, and others).  Perhaps we should be
using the artwork draft for this, or alternatively add a comment that
linespaces have been introduced in various fields to improve readability.
BALAZS: I would prefer to wait till  draft-ietf-netmod-artwork-folding
becomes a full RFC. Even creating/using the folding header without the RFC
number is problematic.

- Perhaps:

OLD:

 The following example is instance-data describing the notification
   capabilities of a hypothetical "acme-switch" ...
   
NEW:

 The following instance-data example describes the notification
   capabilities of a hypothetical "acme-switch" ...
BALAZS: OK

- First example:
  "        </datastore-capabilities>" should be outdented at two spaces
after first block.
BALAZS: OK

- I would normally expect candidate/running to be listed before operational,
although there is obviously no harm in having it the other way.

 
9. Appendix B:
 - Please add a note to ask the RFC Editor to remove this section on
publication.
BALAZS: OK
 
Nits:
 - Please check for full stops (e.g. terminology)
BALAZS: OK, I corrected what I found. If you see more, please notify me.

Thanks,
Rob


> -----Original Message-----
> From: netconf <netconf-bounces@ietf.org> On Behalf Of Kent Watsen
> Sent: 04 March 2020 21:54
> To: netconf@ietf.org
> Subject: Re: [netconf] WGLC: 
> draft-ietf-netconf-notification-capabilities-
> 11
> 
> Dear All,
> 
> This WGLC has received zero responses, which is insufficient to 
> progress the document at this time.  The chairs have therefore decided 
> to extend the WGLC for another two weeks, now ending March 18th.
> 
> Again, positive comments, e.g., "I've reviewed this document and 
> believe it is ready for publication", are welcomed.  This is useful 
> and important, even from authors.  Objections, concerns, and 
> suggestions are also welcomed at this time.
> 
> The NETCONF Chairs
> 
> 
> 
> 
> > On Feb 17, 2020, at 8:27 PM, Kent Watsen <kent+ietf@watsen.net> wrote:
> >
> > FWIW, this is WGLC #2, after the major updates resulting from WGLC 
> > #1
> (in October).
> >
> > K.
> >
> >
> >> On Feb 17, 2020, at 7:47 PM, Kent Watsen <kent+ietf@watsen.net> wrote:
> >>
> >> This message begins a two-week WGLC for draft-ietf-netconf-
> notification-capabilities-11 ending on March 2nd (a week before the 
> IETF
> 107 submission cutoff deadline).  Here is a direct link to the HTML 
> version of the draft:
> >>
> >> 	https://tools.ietf.org/html/draft-ietf-netconf-notification-
> capabilities-11
> >>
> >> Positive comments, e.g., "I've reviewed this document and believe 
> >> it is
> ready for publication", are welcome!  This is useful and important, 
> even from authors.  Objections, concerns, and suggestions are also 
> welcomed at this time.
> >>
> >> Thank you,
> >> NETCONF Chairs
> >> _______________________________________________
> >> netconf mailing list
> >> netconf@ietf.org
> >> https://www.ietf.org/mailman/listinfo/netconf
> >
> > _______________________________________________
> > netconf mailing list
> > netconf@ietf.org
> > https://www.ietf.org/mailman/listinfo/netconf
> 
> _______________________________________________
> netconf mailing list
> netconf@ietf.org
> https://www.ietf.org/mailman/listinfo/netconf