Re: [I2nsf] Service Layer Policies - Post 1: Background Information on PCIM
John Strassner <strazpdj@gmail.com> Thu, 10 December 2015 20:14 UTC
Return-Path: <strazpdj@gmail.com>
X-Original-To: i2nsf@ietfa.amsl.com
Delivered-To: i2nsf@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 79F7A1B2A53 for <i2nsf@ietfa.amsl.com>; Thu, 10 Dec 2015 12:14:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.399
X-Spam-Level:
X-Spam-Status: No, score=-1.399 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, J_CHICKENPOX_45=0.6, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZvtKgm6aH6la for <i2nsf@ietfa.amsl.com>; Thu, 10 Dec 2015 12:14:47 -0800 (PST)
Received: from mail-vk0-x22e.google.com (mail-vk0-x22e.google.com [IPv6:2607:f8b0:400c:c05::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F2F3F1A065C for <i2nsf@ietf.org>; Thu, 10 Dec 2015 12:14:46 -0800 (PST)
Received: by vkca188 with SMTP id a188so100294143vkc.0 for <i2nsf@ietf.org>; Thu, 10 Dec 2015 12:14:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=U/jbKa6k8UojE8kkn3q3LpSbyBwU8TzuGJ8utM7WK50=; b=Sace3NFg5Z0py+RTD//SbyO3ilcIKx985NC7bYEeBPLWAsCWVPhEp20tKu6PSfBc6B p1Wh2a9qHf8lXfyI7WGCMpCtmX9uziOLE7+CBaGk/9SXUsXQJCKRvaPr8eleRhnBzIgr LDTgHNre7lzq4k/Cn0nNBBwOPjeVLNuew+E1n0jd5CvBKocqEC/L+jLN/M29fAmfUCSf ygmXz/SMWnPjoK29yJg9Xi9Ld8juTOPq4rWvmhVmeuGoGonL9r3aMgzqaKtlsV/ecYE0 4DQgeWONRDzxbPg4f3uWgEuz4wXk8NV4Vo7Qd9Tb51Ddke4u3ZSEzbMfc0loF98QGmSt SQKA==
MIME-Version: 1.0
X-Received: by 10.31.162.16 with SMTP id l16mr12414405vke.69.1449778486092; Thu, 10 Dec 2015 12:14:46 -0800 (PST)
Received: by 10.103.40.131 with HTTP; Thu, 10 Dec 2015 12:14:46 -0800 (PST)
In-Reply-To: <CY1PR09MB0922848FC13661E5FE2ED9BFA8E90@CY1PR09MB0922.namprd09.prod.outlook.com>
References: <CAJwYUrE=Lqf1tzggRoJ=yRCTGa2BsGuWs34XVVUmoA7WkhJ5gA@mail.gmail.com> <4A95BA014132FF49AE685FAB4B9F17F657DAE627@dfweml701-chm> <CY1PR09MB0922848FC13661E5FE2ED9BFA8E90@CY1PR09MB0922.namprd09.prod.outlook.com>
Date: Thu, 10 Dec 2015 12:14:46 -0800
Message-ID: <CAJwYUrGJA7LxSC+1=qTCKCofHfFAGZFF4EsPNgy2_d2K3SsZeg@mail.gmail.com>
From: John Strassner <strazpdj@gmail.com>
To: "Natale, Bob" <RNATALE@mitre.org>
Content-Type: multipart/alternative; boundary="001a114402deaaaa67052690db60"
Archived-At: <http://mailarchive.ietf.org/arch/msg/i2nsf/R0Kr1izCLJ4iPaq9qkgxhUubCaU>
Cc: "i2nsf@ietf.org" <i2nsf@ietf.org>, Linda Dunbar <linda.dunbar@huawei.com>
Subject: Re: [I2nsf] Service Layer Policies - Post 1: Background Information on PCIM
X-BeenThere: i2nsf@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "*I2NSF: Interface to Network Security Functions mailing list*" <i2nsf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/i2nsf>, <mailto:i2nsf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/i2nsf/>
List-Post: <mailto:i2nsf@ietf.org>
List-Help: <mailto:i2nsf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/i2nsf>, <mailto:i2nsf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 10 Dec 2015 20:14:50 -0000
Good point, Bob! Note that PCIM does not even have a scalable priority mechanism to disambiguate this conflict. PCIMe is better, but still flawed (sorry, I'm trying to finish post 2). best regards, John On Wed, Dec 9, 2015 at 10:46 PM, Natale, Bob <RNATALE@mitre.org> wrote: > Hi Linda, > > > > Input here from a lurker … calibrate accordingly! > > > > You asked: > “[Linda] in I2NSF, there could be a lot of conflicts, for example, there > could be two rules entered at different time: > > 1. Virtual Network X can’t access “YouTube”, > > 2. 10.1.1.1 can access “YouTube” (where 10.1.1.1 is a host within > the Virtual Network X). > > Do you call the 2 rules above conflict?” > > The answer is “it depends” … depends on a broader policy execution context > … a concept that PCIM itself does not directly support. For example, that > broader context could stipulate (via policy) that #1 is the default but > explicit exception specifications like #2 can override the default … > alternatively, that broader context could stipulate that #1 is absolute and > any attempt to specify (preferably) or execute #2 would be denied … those > are only two examples, there are multiple potentially valid variations. How > much of that context a group wants to standardize is an important decision > for the group to understand and make … PCIM itself will not take you very > far, however. > > Avanti, > > BobN > > > > *From:* I2nsf [mailto:i2nsf-bounces@ietf.org] *On Behalf Of *Linda Dunbar > *Sent:* Tuesday, December 08, 2015 4:11 PM > *To:* John Strassner <strazpdj@gmail.com>; i2nsf@ietf.org > *Subject:* Re: [I2nsf] Service Layer Policies - Post 1: Background > Information on PCIM > > > > John, > > > > Thank you very much for the in-depth analysis of PCIM and its suitability > as something that I2NSF should be based on. What you write is very > valuable. I think the analysis should be added to the I2NSF gap analysis, > (or be a standalone Policy Analysis ID). > > > > I have some questions inserted below: > > > > *From:* I2nsf [mailto:i2nsf-bounces@ietf.org <i2nsf-bounces@ietf.org>] *On > Behalf Of *John Strassner > *Sent:* Sunday, December 06, 2015 7:01 PM > *To:* i2nsf@ietf.org > *Subject:* [I2nsf] Service Layer Policies - Post 1: Background > Information on PCIM > > > > <Snipped> > > > > 2. Brief description of PCIM > > > > The PCIM Class Hierarchy is very simple, as this is a CA > (condition-action) model. Events are NOT represented. PCIM defines a > PolicyRule, a PolicyGroup (group of PolicyRules), PolicyCondition, and > PolicyAction. These are all siblings; their common superclass is called > Policy, as shown below: > > > > ManagedElement (abstract) > | > +---Policy (abstract) > | | > | +---PolicyGroup > | | > | +---PolicyRule > | | > | +---PolicyCondition (abstract) > | | | > | | +---PolicyTimePeriodCondition > | | | > | | +---VendorPolicyCondition > | | > | +---PolicyAction (abstract) > | | > | +---VendorPolicyAction > > > > Note: PCIM does have a simple notion of Roles, but implements them as > attributes, instead of objects. This is not scalable, and does not fully > realize the power of using roles. This will be discussed more in Post 3. > > > > Note: It is possible to define limited constraints in PCIM as conditions. > For example, the VendorPolicyCondition class has two attributes, Constraint > and ConstraintEncoding, that do this. This will be discussed more in Post 4. > > > > Note: Context is NOT defined in the PCIM. > > > > [Linda] Do you agree that “Condition of the PCIM” == “I2NSF subject” & > “the Contextual states (or the I2NSF object)”? > > > > > > 3. Summary: main drawbacks of using PCIM > > > > Note that the current CIM Policy Model (2.44.1) is significantly different > than either PCIM or PCIMe. PCIM is based on CIM 2.4; PCIMe is based on CIM > 2.5. PCIMe is NOT backwards compatible with PCIM in all areas. > > > > Critical Problems: > > - There is no unique ID that can be used to distinguish different > instances of the same PolicyRule, PolicyGroup, PolicyCondition, > or PolicyAction. > > [Linda] Can we simply create an ID (string or numeric) for instances of > the same PolicyRule? Or it is more complicated? > > - Relationships are implemented by defining an abstract class > with keys, and then overriding the keys in the subclasses of the > relationship. This is broken. Would you override keys in an RDBMS? > > [Linda] Is the “Key” to differentiating different “PolicyRule”? Can you > give an example of “subclasses of the relationship”? > > What events can cause “overriding the keys in the subclasses of the > relationship”? > > - Most of the classes that are used to implement the relationships > do NOT have attributes, so it is impossible to restrict which > classes are related to which other classes (e.g., by context). > Put another way, the same relationship must always be used > between two types, even if the semantics varies. (The two > exceptions are PolicyConditionInPolicyRule and > PolicyActionInPolicyRule). > > [Linda] Does “classes” == “PolicyRule”? > > - The "ignore this unless you need this" philosophy does not > work. How do you know if other implementations that you are > supposed to interoperate with are using them? > > [Linda] Is “Ignore this unless you need this” an new type of “PolicyRule”? > > - There is no concept of error or exception handling > - There is no concept of the subject or the target of a policy > > [Linda] Does your “subject” have the same meaning as the “I2NSF subject” > which means bits&bytes extracted from packets? > > - Adding a new type of policy (e.g., declarative or functional) > will cause a major rewrite of the entire model > > > > [Linda] Can we say that I2NSF policies have one type > “Subject-ContextualStates- action- function? So in I2NSF environment, there > is only the notion of adding a new “PolicyRule”, but no adding a new policy > type. Is this correct statement? > > - There is no approach to detecting and solving policy conflicts; > this is due to the simplistic notion of just using a PDP and a > PEP for applying policies. > > > > [Linda] in I2NSF, there could be a lot of conflicts, for example, there > could be two rules entered at different time: > > 1. Virtual Network X can’t access “YouTube”, > > 2. 10.1.1.1 can access “YouTube” (where 10.1.1.1 is a host within > the Virtual Network X). > > Do you call the 2 rules above conflict? > > > > > > 4. Recommendations > > > > Given the large amount of problems, I recommend that we not consider PCIM > further. > > [Linda] should I2NSF reference PCIM? > > > > Thank you very much. Linda > > > > 5. Origin of PCIM/PCIMe > > > > This is a **theory** section; please skip unless you want to understand > the model in more detail. > > > > The PCIM is based on the DMTF CIM, which is actually a **data model** > (despite its name) because it uses relational technologies (e.g., keys and > weak references) to create its model. PCIM is based on an early version of > the CIM (2.4); the current version of the CIM is 2.44.1 as of this writing. > Since this is tied to the CIM, this means that: > > > > 1) Policy is subclassed from a more generic class (ManagedElement) > > 2) ALL relationships (associations, aggregations, and compositions) > > are realized as **classes** > > 3) As a result of 2), relationships are subclassed > > 4) Both attributes and associations are **inherited** > > 5) The same design approach (as much as possible) was used in > > PCIM/PCIMe as was in CIM. Specifically, it was thought better > > to define a generic, but optional, relationship instead of not > > defining the relationship. > > 6) The CIM does NOT have a single rooted hierarchy; this makes > > code generation more complex > > 7) The CIM uses a proprietary language and is not strictly UML > > compliant, even though it looks like UML (unfortunately, this > > language is also called MOF) > > > > Depending on the complexity of the implementation, the above have been > shown to produce problems in large environments. For example, the spirit of > "let's define an attribute or association in case it is useful, and make it > optional so you don't have to worry about it" not only violates some > well-known software architectural guidelines (e.g., Single Responsibility > Principle and the Liskov Substitution Principle), but it makes things > difficult to interoperate with (since you never really know if an attribute > or relationship should be instantiated or not). > > > > > > regards, > > John > -- regards, John
- [I2nsf] Service Layer Policies - Post 1: Backgrou… John Strassner
- Re: [I2nsf] Service Layer Policies - Post 1: Back… Linda Dunbar
- Re: [I2nsf] Service Layer Policies - Post 1: Back… Natale, Bob
- Re: [I2nsf] Service Layer Policies - Post 1: Back… Linda Dunbar
- Re: [I2nsf] Service Layer Policies - Post 1: Back… John Strassner
- Re: [I2nsf] Service Layer Policies - Post 1: Back… John Strassner
- [I2nsf] 答复: Service Layer Policies - Post 1: Back… Xialiang (Frank)
- Re: [I2nsf] Service Layer Policies - Post 1: Back… John Strassner
- [I2nsf] 答复: Service Layer Policies - Post 1: Back… Xialiang (Frank)
- Re: [I2nsf] 答复: Service Layer Policies - Post 1: … John Strassner
- Re: [I2nsf] 答复: Service Layer Policies - Post 1: … John Strassner
- [I2nsf] 答复: 答复: Service Layer Policies - Post 1: … Xialiang (Frank)