[Sis-dtn] FW: [EXT] [dtn] review of draft-ietf-dtn-dtnma-05

Birrane, Edward J. Edward.Birrane at jhuapl.edu
Thu Jun 29 15:44:32 UTC 2023


FYI

Edward J. Birrane, III, Ph.D. (he/him/his)
Chief Engineer, Space Constellation Networking
Supervisor, Embedded Applications Group 
Space Exploration Sector
Johns Hopkins Applied Physics Laboratory
(W) 443-778-7423 / (C) 443-690-8272

-----Original Message-----
From: dtn <dtn-bounces at ietf.org> On Behalf Of Jürgen Schönwälder
Sent: Monday, June 26, 2023 3:42 AM
To: dtn at ietf.org
Cc: Rob Wilton (rwilton) <rwilton at cisco.com>
Subject: [EXT] [dtn] review of draft-ietf-dtn-dtnma-05

APL external email warning: Verify sender dtn-bounces at ietf.org before clicking links or attachments 

Hi,

Rob Wilton asked me to review draft-ietf-dtn-dtnma-05. First of all, the document is very well written and easy to read. I am not sure whether the NMRG is aware of this work, perhaps this is another good place to ask for reviews and feedback on this work since the NMRG did discuss autonomic management quite a bit. There are likely some more people on the NMRG list recalling that policy-based management was a big thing in the late 1990s when people believed that distributing management logic is the way to go, before we got a large push for centralization at the beginning of this century.

* Section 4

  - It remains somewhat opaque what 'inclusion' means in Section 4.2.
    Perhaps this is on purpose but inclusion comes in many different
    forms and flavors. And perhaps you really mean reuse and not
    inclusion?

* Section 5

  - Consider referencing RFC 3410, which is the general reference for
    the SNMPv3 framework. RFC 3410 also details some differences
    between the different versions.

  - We generally talk about 'event notifications' in later versions of
    SNMP, traps are a specific message format to convey an event
    notification, informs are another message format. The purpose of
    both is to notify a manager that an event has happened..

  - SNMP originally used trap-directed polling; the idea simply was to
    be able to react to events quickly while polling relatively
    infrequently. SNMP notifications are not really about autonomy,
    they are used to decrease reaction time: You poll every five or
    ten minutes but the device sends you a notification immediately if
    a link goes down.

  - The DISMAN WG did standardize MIB modules for more autonomous
    behaviour of SNMP agents (the expression MIB, the scriting MIB,
    the scheduling MIB) but they were not widely deployed. Worth
    noting here is that autonomous functions were considered to be a
    data model writing exercise and not a protocol mechanisms exercise
    (Back then, adding verbs to the protocol was considered really
    bad.)

  - YANG is just called YANG (don't try to expand it). Any particular
    reason why you do not cite YANG 1.1 (RFC 7950), which largely has
    replaced YANG 1?

  - The modeling of operational state was a bit simplistic in the
    early years. Perhaps consider mentioning RFC 8342. Some of the
    distinctions made there (e.g., the difference between configured
    state and applied configuration state) has already been an issue
    in the SNMP world and perhaps this may be relevant for a DTMNA
    world as well.

  - Work on policy-based management has a 20+ years history. For
    example, using event-condition-action rules to offload control has
    been studied extensively, including things like conflict detection
    or stability analysis. There was an entire series of policy-based
    management workshops back then. Another direction was to be less
    restrictive on the format (i.e., a specific rule language) but
    instead allow managers to send 'management scripts' that are then
    executed locally. Sandboxing was an issue back then and it still
    is. But meanwhile we are all excited again about eBPF (pushing
    byte code into the kernel) so perhaps we get to this "lets simply
    send some control logic as code" approach again.

* Section 7

  - It is not clear what command-based means. Some may consider SNMP
    variable-based, CMIP object-based, CLIs command-based, and YANG
    document-based. Many early policy-based network management systems
    were rule-based. There were also some experiments with code-based
    approaches, where some form of binary executable code was pushed
    around.

  - Are directives the same as commands?

  - Why is the Autonomy Engine not simply called a Policy Execution
    Engine?  More importantly, is the DM configuring the Autonomy
    Engine or just the Rules Database? If so, why is there a
    conceptual difference between configuring the Rules Database and
    the Autonomy Engine?

  - With multiple managers, how are conflicts resolved? Or how is
    stability achieved? What if A says every 2 seconds to up and B
    says every 3 seconds go down?

  - Why does DTMA not aim to standardize specific transports or
    encoding of policies (autonomy model instances)? I would have
    expected that there is a standard exchange format over BP7 at
    least.

* Section 8

  - Can the policy rules access fused data, i.e., can predicates of
    rules refer to fused data? My reading of section 10 says that the
    answer is likely yes but perhaps make this clearer here.

* Section 9

  - In the history of policy models, event-condition-action rules were
    often used since in many situations you want to react to events:

    ON <event> IF <condition> THEN <action>

    Sure, you can somehow make events part of your 'stimulus' (the
    predicate) but this often makes things more complicated to
    understand. Also note that events may need to be created from
    monitoring data (or data fusion in your architecture). So why do
    you prefer the IF <stimulus> THEN <response> approach? (Note that
    <event> did often include time triggered events, i.e., timers
    throw events that you can bind a rule to.)

  - Large rule sets have been found difficult to understand and
    debug. How are you going to deal with this? How do you make them
    conflict free?  How do you avoid oscillating effects? What do you
    mean by deterministic if stimuly (events and conditions) can
    depend on dynamically acquired state? If you want to be able to
    understand what happened after the fact, you likely need a
    reliable log much more than anything else.

  - It feels like section 9 is going into details that do not belong
    into an architecture document (e.g., sections 9.3 and 9.4).

* References

  - Relevant work (perhaps worth reading and considering):

    - A. Westerinen et. al: Terminology for Policy-Based
      Management. RFC 3198, November 2001

    - R. Boutaba, I. Aib: Policy-Based Management: A Historical
      Perspective. Journal of Network and Systems Management. Vol. 15,
      No. 4, pp. 447-480, Springer, December 2007

* Editorial

  - s/Oner/One/

  - s/any changes the require/any changes that require/

  - s/controls a are/controls are/

-- 
Jürgen Schönwälder              Constructor University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://constructor.university/>

_______________________________________________
dtn mailing list
dtn at ietf.org
https://www.ietf.org/mailman/listinfo/dtn


More information about the SIS-DTN mailing list