Closed Issues appendix from PCIMe
Robert Moore <[email protected]> Mon, 23 Dec 2002 08:13:19 -0500
| Newsgroups | gmane.ietf.policy |
|---|---|
| Message-ID | <[email protected]> |
Now that PCIMe is about to be published as an RFC (really, it is! :-), it's
time to remove the appendix where we tracked the open, and then
subsequently closed, issues. Rather than losing this information entirely,
Bert has suggested that I include it in a note to the mailing list, so that
it will be archived in a place that someone looking for it might logically
try. So here it is:
16. Appendix A: Closed Issues
EDITOR'S NOTE: The following list captures the major technical issues
that were resolved during the course of progressing PCIMe from initial
draft to Proposed Standard. This appendix will be removed for
submission
to the RFC Editor (unless there is a consensus to preserve it in the
RFC), but it should be archived somewhere.
1. Unrestricted use of DNF/CNF for CompoundPolicyConditions.
Alternative: for the conditions aggregated by a
CompoundPolicyCondition, allow only ANDing, with negation of
individual conditions. Note that this is sufficient to build
multi-field packet filters from single-field
SimplePolicyConditions.
RESOLUTION: The same DNF/CNF capabilities present for aggregating
PolicyConditions into a PolicyRule have been retained for
aggregating PolicyConditions into a CompoundPolicyCondition.
2. For a PolicyVariable in a SimplePolicyCondition, restrict the set
of possible values both via associated PolicyValue objects (tied
in with the ExpectedPolicyValuesForVariable association) and via
the ValueTypes property in the PolicyVariable class. Alternative:
restrict values only via associated PolicyValue objects.
RESOLUTION: PCIMe continues to allow both mechanisms for
restricting the values of a PolicyVariable.
3. Transactional semantics, including rollback, for the
ExecutionStrategy property in PolicyRule and in
CompoundPolicyAction. Alternative: have only 'Do until success'
and 'Do all'.
RESOLUTION: No transactional semantics for action execution. The
value 'Mandatory Do All(1)' has been removed from the two
ExecutionStrategy properties.
4. Stating that CompoundFilterConditions are the preferred way to do
packet filtering in a PolicyCondition. Alternative: make
CompoundFilterConditions and FilterEntries available to submodels,
with no stated (or implied) preference.
RESOLUTION: Recommendations for use of CompoundFilterConditions
and FilterEntries are retained, but they have been recast
slightly. CompoundFilterConditions are now positioned as the
recommended approach for domain-level models. FilterEntries are
the recommended approach for device-level models.
5. Prohibiting equal values for Priority within a PolicySet.
Alternative: allow equal values, with resulting indeterminacy in
PEP behavior.
RESOLUTION: PCIMe will continue to prohibit equal Priority values.
6. Modeling a SimplePolicyAction with just a related PolicyVariable
and PolicyValue -- the "set" or "apply" operation is implicit.
Alternative: include an Operation property in SimplePolicyAction,
similar to the Operation property in SimplePolicyCondition.
RESOLUTION: This issue has been resolved by a change in the
opposite direction. The operations are now implicit for BOTH
SimplePolicyCondition and SimplePolicyAction. See Sections 5.8.3
and 5.8.4, respectively, for discussions of
SimplePolicyCondition's implicit MATCH operator and
SimplePolicyAction's implicit SET operator.
7. Representation of PolicyValues: should values like IPv4 addresses
be represented only as strings (as in LDAP), or natively (e.g., an
IPv4 address would be a four-octet field) with mappings to other
representations such as strings?
RESOLUTION: Mappings have been eliminated. Each value type has a
single representation specified for it.
8. The nesting of rules and groups within rules introduces
significant change and complexity in the model. This nesting
introduces program state (procedural language) into the model
(heretofore a declarative model) as well as implicit hierarchical
contexts on which the rules operate. These require a much more
sophisticated rule-evaluation engine than in the past.
Alternative: Maintain the declarative model, by prohibiting
program state in rule evaluation (i.e., no rules within rules).
RESOLUTION: Nesting of rules and groups within rules has been
retained, but with a significant new limitation: actions
associated with a rule do not have side effects that would impact
condition evaluation for subsequent rules. "Subsequent rules"
here includes both rules nested within the rule whose actions are
under discussion, and rules at the same nesting level as this rule
that are evaluated after it. Note that it has been a feature of
PCIM (RFC 3060) all along that condition evaluation has no side
effects that would influence condition evaluation for subsequent
rules.
There is also one modeling detail associated with nesting that has
been changed. Rather than having separate aggregations
(PolicyGroupInPolicyGroup, etc.) for each of the four nesting
varieties, the single aggregation PolicySetComponent is now used
as a concrete aggregation class.
9. Need to specify a join algorithm for disjoint rule sets.
RESOLUTION: PCIMe now states that for different functional domains
(e.g., QoS and IKE), there is no join algorithm. Each domain, in
effect, has its own rule engine, which operates independently of
the other domains' engine(s). Within a functional domain,
disjoint PolicySets are joined by the Priority property in the
PolicySetInSystem association. In this case the decision strategy
is specified to be FirstMatching.
10. Clarify PolicyImplicitVariables.
RESOLUTION: Each subclass of PolicyImplicitVariable will identify
the exact source of the variable data. For example, there will be
a subclass of PolicyImplicitVariable that specifically identifies
the IPv4 source address in the outermost packet header. IPv4 and
IPv6 addresses will require separate subclasses of
PolicyImplicitVariable. We understand the downside of this
approach: a potential explosion in the number of subclasses of
PolicyImplicitVariable.
11. Clarify PolicyExplicitVariables.
NON-RESOLUTION (in PCIMe-01): This issue is still not resolved at
all. The authors continue to believe that we need the capability
of indicating that a condition should compare against (or an
action should set) a particular property in a particular object
instance. But we do not believe that the current mechanism of
specifying a target object class and property name is sufficient.
For the next version of PCIMe, we need to either find a way to
make this work in general; or find a way to make it work in some
cases, and then describe clearly what these cases are; or remove
PolicyExplicitVariables from PCIMe entirely.
RESOLUTION (in PCIMe-02): From the list of choices above, we took
the path of making explicit variables work in a specific case, and
indicating clearly that they work only in this case. See Section
5.8.6
Regards,
Bob
Bob Moore
Advanced Design and Technology
Application Integration Middleware Division
IBM Software Group
+1-919-254-4436
[email protected]