Subject: [babel] info and data models -- feedback requested

From: "STARK, BARBARA H" <[email-masked]>
Date: Fri, 17 Jan 2020 15:32:12 +0000

There are 2 items related to the info/data models that have been swirling around in my head over the past month. 

1. Since the most recent drafts of rfc6126bis now have 2 examples of initial interval settings (for cases where fast convergence is desired, or where slow convergence is acceptable and less chattiness is desired), I don't like that we have no means for the user to express what their preference is around this (in case an implementation could support both cases). Should we have something at the top level of the model like:
boolean                rw converge-fast;

   converge-fast:  Indicates whether the user wants the network to converge 
      quickly (which will cause Babel messages to be sent more frequently), or
      prefers fewer Babel messages with slower time to convergence.  Fast
      convergence is desired if "true". An implementation MAY choose to expose
      this parameter as read-only ("ro").

2. In BBF, I got a comment related to babel-stats-enable and babel-packet-log-enable. It's unspecified as to whether previous data is discarded when the stats or log are enabled, or the new log entries are appended / existing counts incremented. I tend to agree that the lack of a statement will lead to inconsistency, and would prefer consistent behavior. Mahesh and I had a brief exchange where we disagreed on what the preferred behavior should be -- which suggests there is definitely a strong likelihood of different implementations choosing different behavior in the absence of guidance.

I realize we're past last call. But I think these are important.

Barbara

---

From: Mahesh Jethanandani <[email-masked]>
Date: Fri, 17 Jan 2020 12:13:15 -0800

> On Jan 17, 2020, at 7:32 AM, STARK, BARBARA H <[email-masked]> wrote:
> 

And to clarify the disagreement between Barbara and I was …

The Babel information and data models define a boolean flag that enables/disables the collection of statistics. The Babel data model in addition has an ‘action’ YANG statement defined to clear the statistics being collected. Barbara’s assumption with enabling the boolean flag was that it would implicitly clear all the statistics. But the data model with a separate ‘action’ statement requires it to be called explicitly to clear the statistics. 

Unfortunately, there isn’t a way in YANG to invoke the calling of an ‘action’ statement when a certain attribute value toggles. Implementations can choose to make it implicit by including the call to the ‘action’ statement as part of enabling statistics. But it is not something YANG can enforce.

So the question is - should the information model require that enabling of statistics collection also clear the statistics (even if the YANG model cannot enforce it) or leave it to implementations to decide/enforce?

Cheers.

> _______________________________________________
> babel mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/babel

Mahesh Jethanandani
[email-masked]

---

From: Donald Eastlake <[email-masked]>
Date: Sat, 18 Jan 2020 16:09:29 -0500

Hi Mahesh and Barbara,

Speaking just as a WG member, it seems to me more flexible for the clearing
of statistics and the enablement of statistics to be separate actions. You
can always do both if that's wht you want.

Thanks,
Donald
===============================
 Donald E. Eastlake 3rd   +1-508-333-2270 (cell)
 2386 Panoramic Circle, Apopka, FL 32703 USA
 [email-masked]

On Fri, Jan 17, 2020 at 3:13 PM Mahesh Jethanandani <[email-masked]>
wrote:

> > There are 2 items related to the info/data models that have been
> swirling around in my head over the past month.
> >
> > 1. Since the most recent drafts of rfc6126bis now have 2 examples of
> initial interval settings (for cases where fast convergence is desired, or
> where slow convergence is acceptable and less chattiness is desired), I
> don't like that we have no means for the user to express what their
> preference is around this (in case an implementation could support both
> cases). Should we have something at the top level of the model like:
> > 2. In BBF, I got a comment related to babel-stats-enable and
> babel-packet-log-enable. It's unspecified as to whether previous data is
> discarded when the stats or log are enabled, or the new log entries are
> appended / existing counts incremented. I tend to agree that the lack of a
> statement will lead to inconsistency, and would prefer consistent behavior.
> Mahesh and I had a brief exchange where we disagreed on what the preferred
> behavior should be -- which suggests there is definitely a strong
> likelihood of different implementations choosing different behavior in the
> absence of guidance.
>
> The Babel information and data models define a boolean flag that
> enables/disables the collection of statistics. The Babel data model in
> addition has an ‘action’ YANG statement defined to clear the statistics
> being collected. Barbara’s assumption with enabling the boolean flag was
> that it would implicitly clear all the statistics. But the data model with
> a separate ‘action’ statement requires it to be called explicitly to clear
> the statistics.
>
> Unfortunately, there isn’t a way in YANG to invoke the calling of an
> ‘action’ statement when a certain attribute value toggles. Implementations
> can choose to make it implicit by including the call to the ‘action’
> statement as part of enabling statistics. But it is not something YANG can
> enforce.
>
> So the question is - should the information model require that enabling of
> statistics collection also clear the statistics (even if the YANG model
> cannot enforce it) or leave it to implementations to decide/enforce?
>
> Cheers.
>
> >

---

From: "STARK, BARBARA H" <[email-masked]>
Date: Mon, 20 Jan 2020 16:25:17 +0000

That would suggest we should add a reset action for the packet log. We don’t currently have one.
Barbara

From: Donald Eastlake <[email-masked]>

Hi Mahesh and Barbara,

Speaking just as a WG member, it seems to me more flexible for the clearing of statistics and the enablement of statistics to be separate actions. You can always do both if that's wht you want.

Thanks,
Donald
===============================
 Donald E. Eastlake 3rd   +1-508-333-2270 (cell)
 2386 Panoramic Circle, Apopka, FL 32703 USA
 [email-masked]<mailto:[email-masked]>

On Fri, Jan 17, 2020 at 3:13 PM Mahesh Jethanandani <[email-masked]<mailto:[email-masked]>> wrote:

> On Jan 17, 2020, at 7:32 AM, STARK, BARBARA H <[email-masked]<mailto:[email-masked]>> wrote:
>

Cheers.

> [email-masked]<mailto:[email-masked]>
> https://www.ietf.org/mailman/listinfo/babel<https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mailman_listinfo_babel&d=DwMFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=LoGzhC-8sc8SY8Tq4vrfog&m=Ervar6YVPnCewTWpMGUQdvrWDl--UTRIKVyMm-SEvF4&s=DhjYNDHNRPLsBhCPPje6e653wL9I_VCvgpjEGykc0aA&e=>

Mahesh Jethanandani
[email-masked]<mailto:[email-masked]>

_______________________________________________
babel mailing list
[email-masked]<mailto:[email-masked]>
https://www.ietf.org/mailman/listinfo/babel<https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mailman_listinfo_babel&d=DwMFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=LoGzhC-8sc8SY8Tq4vrfog&m=Ervar6YVPnCewTWpMGUQdvrWDl--UTRIKVyMm-SEvF4&s=DhjYNDHNRPLsBhCPPje6e653wL9I_VCvgpjEGykc0aA&e=>

---

From: Mahesh Jethanandani <[email-masked]>
Date: Mon, 20 Jan 2020 20:23:58 -0800

Hi Barbara,

Good point. What would you expect the reset action on packet log to do?

The difference between packet log and statistics from a data model is that, statistics are maintained by the data model. As such a reset causes the values in the data model to be cleared. For the packet log, all that the model does is maintain a pointer to a URL/file where the log is maintained. It does not maintain the contents of that log. A reset action on an object that is external to the model cannot be enforced by the model. All the model can do is clear the pointer, but I gather that is not what you are looking for it to do.

Cheers.

> On Jan 20, 2020, at 8:25 AM, STARK, BARBARA H <[email-masked]> wrote:
> 
>  [email-masked] <mailto:[email-masked]>
>  
>  
> On Fri, Jan 17, 2020 at 3:13 PM Mahesh Jethanandani <[email-masked] <mailto:[email-masked]>> wrote:
> 
> 
> > On Jan 17, 2020, at 7:32 AM, STARK, BARBARA H <[email-masked] <mailto:[email-masked]>> wrote:
> > 
> > [email-masked] <mailto:[email-masked]>
> > https://www.ietf.org/mailman/listinfo/babel <https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mailman_listinfo_babel&d=DwMFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=LoGzhC-8sc8SY8Tq4vrfog&m=Ervar6YVPnCewTWpMGUQdvrWDl--UTRIKVyMm-SEvF4&s=DhjYNDHNRPLsBhCPPje6e653wL9I_VCvgpjEGykc0aA&e=>
> 
> Mahesh Jethanandani
> [email-masked] <mailto:[email-masked]>
> 
> 
> 
> [email-masked] <mailto:[email-masked]>
> https://www.ietf.org/mailman/listinfo/babel <https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mailman_listinfo_babel&d=DwMFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=LoGzhC-8sc8SY8Tq4vrfog&m=Ervar6YVPnCewTWpMGUQdvrWDl--UTRIKVyMm-SEvF4&s=DhjYNDHNRPLsBhCPPje6e653wL9I_VCvgpjEGykc0aA&e=>

---

From: "STARK, BARBARA H" <[email-masked]>
Date: Tue, 21 Jan 2020 17:29:29 +0000

For logs, I can see several holistic (not focusing on result of a single action) sets of behaviors a user may want to accomplish at the time they’re enabling logging (I’m wording this specifically to be vague about how many commands the user might need to issue):

  1.  Old file is deleted or old memory store is cleared/released, new file is started or memory space created with new reference.
  2.  Old file / memory store stays, new file / memory store is started with new reference. // there is no longer a reference specified in the Babel info model that would point to the old file or memory; some DM schemes, like TR-181, would still allow access to the log (the Babel packet log is a reference to an entry in a log object); where the log came from, though, would be lost unless it was incorporated in the filename by the implementation or otherwise contained in log metadata; may need to consider if something needs to be said about persistence across reboots
  3.  Existing referenced file / memory store is appended.
  4.  Existing referenced file / memory store is cleared and then appended.

1 and 4 are very similar in effect.

Note that there are behaviors that can be enforced by the model, and behaviors that are imposed on compliant implementations (e.g., mandatory to implement). I’m not concerned with whether or not a desired behavior is enforced by a model. I’m perfectly satisfied for desired behaviors to be imposed through implementation compliance. The question for me is what the desired behavior is, and not whether or not any particular DM scheme has the ability to enforce.

I’m thinking (based on opinions expressed to date) that in the absence of a log “reset”, behavior 3 (appending) might be expected to occur (note the info model says nothing about limiting filesize – it’s up to the DM or implementation to do or say something wrt max filesize and what to do when max is reached). If we were to have a log reset, I think either behavior 1 or 4 would be fine, and don’t think we’d need to dictate one or the other in the info model. I’d prefer to avoid 2, because I think it poses a danger of memory leaks. It may also be useful to include a statement that there is no expectation for logs to persist across reboots.

Barbara

From: Mahesh Jethanandani <[email-masked]>

Hi Barbara,

Cheers.

On Jan 20, 2020, at 8:25 AM, STARK, BARBARA H <[email-masked]<mailto:[email-masked]>> wrote:

From: Donald Eastlake <[email-masked]<mailto:[email-masked]>>
Hi Mahesh and Barbara,

Thanks,
Donald

Cheers.

Mahesh Jethanandani