Subject: [lmap] Information Model draft 10: Storage status parameter

From: "Carey, Timothy (Nokia - US)" <[email-masked]>
Date: Mon, 11 Jul 2016 17:05:14 +0000

Juergen,

I see we added a parameter in the status for schedules and actions that reports the "storage" - not sure if this is memory or disk but at any rate - these parameters might be difficult to obtain for some MAs. Could we please make these parameters optional.

Thanks,
Tim

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Mon, 11 Jul 2016 19:59:32 +0200

> I see we added a parameter in the status for schedules and actions that reports the "storage" - not sure if this is memory or disk but at any rate - these parameters might be difficult to obtain fo…

I do not really know what 'mandatory' and 'optional' means for an
information model. I am not sure I really want to investigate this
question.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>

---

From: "Carey, Timothy (Nokia - US)" <[email-masked]>
Date: Mon, 11 Jul 2016 18:19:24 +0000

Optional elements has the "[]" construct

-----Original Message-----
From: Juergen Schoenwaelder [mailto:[email-masked]] 
Sent: Monday, July 11, 2016 1:00 PM
To: Carey, Timothy (Nokia - US)
Cc: [email-masked]
Subject: Re: [lmap] Information Model draft 10: Storage status parameter

> I see we added a parameter in the status for schedules and actions that reports the "storage" - not sure if this is memory or disk but at any rate - these parameters might be difficult to obtain fo…

I do not really know what 'mandatory' and 'optional' means for an information model. I am not sure I really want to investigate this question.

/js

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Tue, 12 Jul 2016 15:19:06 +0200

Oh, this gets interesting. The text says:

   An optional property is enclosed by square brackets, [ ],

Now does this mean that [foo] is essentially a shortcut of foo<0..1>
or foo<0..*> (like it is in ABNF) or is [foo] indicating that this is
a portion of the information model that can be ignored by a data
model. So far I have interpreted it in the ABNF sense but I now see
that other interpretations are possible.

Back to the -storage definitions: What makes them difficult to
implement?  Is it the fact that it says "amount of allocated physical
storage and not the storage used by logical data records" or are there
any other reasons why this is difficult to implement?

/js

---

From: "Carey, Timothy (Nokia - US)" <[email-masked]>
Date: Tue, 12 Jul 2016 13:25:30 +0000

Well I didn't know if you were talking about memory allocated to a process/thread or some other storage. We need to clear that up first.

If it is memory allocation that would be I would have to know the memory used by a task (diagnostic) which might be just a feature of an existing task.

For example - some diagnostics use DNS resolution and ping to determine connectivity. The MA may not know or be able to know the current memory usage of the IP stack process or the DNS client. Not all CPEs use a Linux framework some use proprietary Operating systems which might not have these capabilities.

-----Original Message-----
From: Juergen Schoenwaelder [mailto:[email-masked]] 
Sent: Tuesday, July 12, 2016 8:19 AM
To: Carey, Timothy (Nokia - US)
Cc: [email-masked]
Subject: Re: [lmap] Information Model draft 10: Storage status parameter

Now does this mean that [foo] is essentially a shortcut of foo<0..1> or foo<0..*> (like it is in ABNF) or is [foo] indicating that this is a portion of the information model that can be ignored by a data model. So far I have interpreted it in the ABNF sense but I now see that other interpretations are possible.

Back to the -storage definitions: What makes them difficult to implement?  Is it the fact that it says "amount of allocated physical storage and not the storage used by logical data records" or are there any other reasons why this is difficult to implement?

/js

On Mon, Jul 11, 2016 at 06:19:24PM +0000, Carey, Timothy (Nokia - US) wrote:
> From: Juergen Schoenwaelder 
> [mailto:[email-masked]]

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Tue, 12 Jul 2016 15:56:05 +0200

The descriptions say:

  The amount of storage allocated to the [schedule|action] in bytes.
  This object reports the amount of allocated physical storage and not
  the storage used by logical data records.  Data models should use a
  64-bit integer type.

Is 'storage' ambiguous? For me, storage does _not_ include main
memory. In my implementation, this is the amount of filesystem storage
allocated to the schedules and actions. And physical storage means I
count the number of data blocks occupied and not the amount data used
on the data blocks. (If you have potentially many small files, the
difference can be significant and allocation typically fails if you
run out of physical storage.)

/js

---

From: "Carey, Timothy (Nokia - US)" <[email-masked]>
Date: Tue, 12 Jul 2016 14:04:21 +0000

You want the actual size, in octets, of a schedule or action that resides in a device's non-volatile memory, correct?

-----Original Message-----
From: Juergen Schoenwaelder [mailto:[email-masked]] 
Sent: Tuesday, July 12, 2016 8:56 AM
To: Carey, Timothy (Nokia - US)
Cc: [email-masked]
Subject: Re: [lmap] Information Model draft 10: Storage status parameter

The descriptions say:

Is 'storage' ambiguous? For me, storage does _not_ include main memory. In my implementation, this is the amount of filesystem storage allocated to the schedules and actions. And physical storage means I count the number of data blocks occupied and not the amount data used on the data blocks. (If you have potentially many small files, the difference can be significant and allocation typically fails if you run out of physical storage.)

/js

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Tue, 12 Jul 2016 16:14:48 +0200

No. I do not care about the static size of the executable. I want to
report the amount of storage used to temporary buffer data. I had MAs
running out of storage due to a reporting task failing (in one case it
was an expired certificate) and measurement tasks filling storage
until there were GBs of data buffered and the device was running into
trouble.

The last time we discussed this I think the agreement was not to go
into controls that may deal with such situations but instead to make
counters available that allow controllers to detect MA showing unusal
leakage of storage.

/js

---

From: "Carey, Timothy (Nokia - US)" <[email-masked]>
Date: Tue, 12 Jul 2016 14:27:04 +0000

Ok - I wasn't thinking of the executable size either but the non-volatile memory used by the task or action in the process of executing the task and representing the report associated with the scheduled action?

-----Original Message-----
From: Juergen Schoenwaelder [mailto:[email-masked]] 
Sent: Tuesday, July 12, 2016 9:15 AM
To: Carey, Timothy (Nokia - US)
Cc: [email-masked]
Subject: Re: [lmap] Information Model draft 10: Storage status parameter

No. I do not care about the static size of the executable. I want to report the amount of storage used to temporary buffer data. I had MAs running out of storage due to a reporting task failing (in one case it was an expired certificate) and measurement tasks filling storage until there were GBs of data buffered and the device was running into trouble.

The last time we discussed this I think the agreement was not to go into controls that may deal with such situations but instead to make counters available that allow controllers to detect MA showing unusal leakage of storage.

/js

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Tue, 12 Jul 2016 18:57:11 +0200

On Tue, Jul 12, 2016 at 02:27:04PM +0000, Carey, Timothy (Nokia - US) wrote:

> Ok - I wasn't thinking of the executable size either but the
> non-volatile memory used by the task or action in the process of
> executing the task and representing the report associated with the
> scheduled action?

In my implementation, every schedule and every action has a
'workspace' somewhere in the filesystem. This is where I keep some
meta-data and this is also where results may be temporarily stored.
If results move to another schedule, the results essentially just move
in the filesystem from one workspace to another.

If you run on an ordinary computer, this workspace may reside on a
filesystem running on a non-volatile storage device. If you are on an
embedded router, the filesystem hosting the 'workspaces' may actually
be volatile, running on an in-memory filesystem (to avoid permanent
writes to flash memory).

So I decided to use the term 'storage' and I specifically avoided
using the term non-volatile memory since the storage may actually be
volatile, depending on the OS and device specifics you are operating
in.

/js