[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
snmpconf #4: Code reuse
Options as I see it (I'm not going to describe how each one "could" be
done, as this message would get far too long. If feedback (consensus)
is given that one should be explored more, I'd be happy to elaborate
on an item at that time):
1) Leave things as they are without changing the document. This is
probably the easiest option. I suspect, however, that as we get
into the point of interoperability and even more likely deployment
and usage tests this will come back to bite us. I doubt it'll be a
huge problem until then.
2) Implement function definitions in the base language.
Problems: This was previously decided not to be done.
3) Implement functions as a new capability, registering the "function"
capability in the capabilities table.
Problems: It's beyond a basic capability. How to deal with
some machines that don't have functions and others do? To a
large extent, if you had any that didn't you'd write your code
ignoring (and suffering from) the reuse problem.
The following suggestions all have one problem:
- the first index to the code table is explicitly managed by the
Filter/Action tables and creation of new entries is currently
prohibited by the description clause of pmPolicyCodeProgramIndex.
This would have to be dealt with in order to implement any of the
4) Implement a "gosub(codenum)" style function that calls the
functionality of another code block.
Values would have to be passed via something like the scratchpad,
5) Implement a "link to" set of columns in the pmPolicyCodeTable. The
definition for a given segment isn't stored here, but rather in a
different code/segment base. Two new columns would be needed,
something like otherCodeIndex, otherCodeSegment. When the policy
engine hit this row it would check to see that the code definition
was "", and refer to these numbers to find the real location of the
code (or else run-time-error).
Kind of hacky feeling.
6) Implement a "copy from" column in the pmPolicyCodeTable. It would
copy code from a different code so that
Copies from an entire code entry, or just a segment. If from an
entire entry the value should be the int pointing to that
segment. If a segment, however, two values are needed which
would require two additional columns and a "doit" button or
Tracking: if code is copied, it is not updated later and all
entries must be updated by the manager.
My personal opinions:
1) this will bite us later if don't fix it now.
2) this is the way to go, IMHO, but I won't attempt to argue this point.
3) This is probably the next best thing to do.
4-6) ugly, but "could work". I'd prefer 4 and probably think 5 and
6 aren't worth the trouble.