"Sterne, Jason (Jason)" <jason.ste...@alcatel-lucent.com> wrote: > Hi Martin, > > I think you raised those questions before about the model and they are > useful to discuss but are they specific to my proposed modification to > make the type mandatory or do your questions apply equally to the > current v3 model as-is ? > > We may want to fork off two somewhat independent email threads here: > 1) making type part of the key (what I hoped to focus on in this email > thread) > 2) use acl-type somehow in some constraints on the ace match criteria > (your main point)
I think they are related; if the ace match criteria has no coupling to the acl-type it is not clear to me why the acl-type is needed at all. And if there is a coupling, then I agree the acl-type should be part of the key (or made mandatory). /martin > > Jason > > -----Original Message----- > From: Martin Bjorklund [mailto:m...@tail-f.com] > Sent: Monday, September 21, 2015 3:14 > To: Sterne, Jason (Jason) > Cc: netmod@ietf.org > Subject: Re: [netmod] ACL Model 03 - ACL Type should be mandatory > > Hi, > > See below for some clarifying questions. > > > "Sterne, Jason (Jason)" <jason.ste...@alcatel-lucent.com> wrote: > > Hi all, > > > > I met with Dean at IETF93 and we agreed that I should send a specific > > proposal to the list for this. Here it is: > > > > ----------------------------------------------------- > > Replace the following current snippets from model-03: > > ----------------------------------------------------- > > > > list acl { > > key "acl-name"; > > ... > > } > > > > leaf acl-type { > > type acl-type; > > description > > "It is recommended to have an Access Control List with > > uniform access list entries, all of the same type. When > > this type is not explicitly specified, if vendor > > implementation permits, the access control entries > > in the list can be mixed, > > by containing L2, L3 and L4 entries"; } > > > > identity ip-acl { > > base acl:acl-base; > > description > > "IP Access Control List is a common name for lists that contain > > layer 3 and/or layer 4 match conditions."; } > > > > identity eth-acl { > > base acl:acl-base; > > description > > "Ethernet Access Control List is name for layer 2 Ethernet > > technology Access Control List types, like 10/100/1000baseT or > > WiFi Access Control List"; > > } > > > > -------------------- > > with the following: > > -------------------- > > > > list acl { > > key "acl-type acl-name"; > > ... > > } > > (note this is similar construct to the routing model: > > list routing-protocol {key "type name"... ) > > > > leaf acl-type { > > type acl-type; > > description > > "Type of access control list. Indicates the primary intended > > type of match criteria (e.g. ethernet, IPv4, IPv6, mixed, etc) > > used in the list instance."; > > What exactly does "primary intended type of match criteria" mean? > > How is the ace-type related to the acl-type? Shouldn't the > ace-type-specific params be conditional (with "when") based on the > acl-type? > > > /martin > > > > > } > > > > identity ipv4-acl { > > base acl:acl-base; > > description > > "ACL that primarily matches on fields from the IPv4 header > > (e.g. IPv4 destination address) and layer 4 headers (e.g. TCP > > destination > > port). An acl of type ipv4-acl does not contain matches on fields in > > the ethernet header or the IPv6 header."; } > > > > identity ipv6-acl { > > base acl:acl-base; > > description > > "ACL that primarily matches on fields from the IPv6 header > > (e.g. IPv6 destination address) and layer 4 headers (e.g. TCP > > destination > > port). An acl of type ipv6-acl does not contain matches on fields in > > the ethernet header or the IPv4 header."; } > > > > identity eth-acl { > > base acl:acl-base; > > description > > "ACL that primarily matches on fields in the ethernet header. > > An acl of type eth-acl does not contain matches on fields in > > the IPv4 header, IPv6 header or layer 4 headers."; } > > > > > > --------------------------------------- > > Potential future augmentation of type: > > ---------------------------------------- > > > > For future mixed types vendors (or the ietf) could augment the > > acl-type-base with types like the following: > > > > identity mixed-l3-acl { > > base "access-control-list:acl-type-base"; > > description "ACL that contains a mix of entries that primarily match > > on fields > > in IPv4 headers and entries that primarily match on fields in IPv6 > > headers. > > Matching on layer 4 header fields may also exist in the list. > > An acl of type mixed-l3-acl does not contain matches on fields in > > the ethernet header."; > > } > > > > identity mixed-l2-l3-acl { > > base "access-control-list:acl-type-base"; > > description "ACL that contains a mix of entries that primarily match > > on fields > > in ethernet headers, entries that primarily match on fields in IPv4 > > headers, > > and entries that primarily match on fields in IPv6 headers. Matching > > on layer 4 > > header fields may also exist in the list."; > > } > > > > Regards, > > Jason > > > > -----Original Message----- > > From: Sterne, Jason (Jason) > > Sent: Sunday, July 19, 2015 12:58 > > To: Sterne, Jason (Jason); netmod@ietf.org > > Subject: RE: ACL Model 03 - ACL Type should be mandatory > > > > Given the data models below in some of the major implementations it > > also seems like we should also (re-)consider having the 'type' as part > > of the ACL key ("type name"). > > > > In all those cases below it looks like an operator can currently > > configure two different ACLs (e.g. an IPv4 and an IPv6 ACL) with the > > same name/id via their CLI (e.g. a v4 ACL called "my-acl" and a v6 ACL > > called "my-acl"). > > > > How would those lists be read in a <get-config> via the ietf ACL YANG > > modules ? We'd all have to mangle the names and reserve special > > names/prefix-chars (e.g. _ipv4-my-acl and _ipv6-my-acl) to send them > > back to a NC client. I'm not sure if there is much of a disadvantage > > of just having type in the key (assuming it is mandatory as advocated > > below). > > > > I also looked briefly at the Brocade YANG models on github. It looks > > like they have multiple lists as well for v4 vs v6 (and even or > > different types of normal vs extended ACLs - that could be handled by > > augmenting the type with a 'v4-extended' type for example). > > > > Regards, > > Jason > > > > -----Original Message----- > > From: netmod [mailto:netmod-boun...@ietf.org] On Behalf Of Sterne, > > Jason (Jason) > > Sent: Friday, July 17, 2015 23:35 > > To: netmod@ietf.org > > Subject: [netmod] ACL Model 03 - ACL Type should be mandatory > > > > Hi all, > > > > I think we need to revisit this discussion about how ACL type works in > > draft-ietf-netmod-acl-model-03. > > > > It should be mandatory and we should separate v4 from v6. Vendors can > > augment for future "mixed" types (or maybe we should make an > > if-feature for a "mixed" type now that means "anything goes"). > > > > We should follow existing common implementations for this in order to > > foster better adoption. > > > > Cisco IOS-XR has separate lists for ipv4 and ipv6 and part of > > specifying the list: > > ipv4 access-list <name> > > ipv6 access-list <name> > > > > Junos has separate lists for v4 and v6: > > access-list <xyz> ... > > ipv6 access-list <abc> ... > > > > ALU SR OS has separate lists for v4, v6 and mac: > > config filter ip-filter <abc> > > config filter ipv6-filter <def> > > config filter mac-filter <ghi> > > > > Huawei uses separate lists for v4 and v6: > > acl number 3000 > > acl ipv6 number 3000 > > > > Please see below with [>>JTS] > > > > Regards, > > Jason > > > > -----Original Message----- > > From: netmod [mailto:netmod-boun...@ietf.org] On Behalf Of Andy > > Bierman > > Sent: Monday, June 01, 2015 17:00 > > To: Nabil Michraf > > Cc: netmod@ietf.org > > Subject: Re: [netmod] mandatory ACL type (was "comments on > > acl-model-02") > > > > Hi, > > > > > > That appears to be the current version on the data-tracker. > > I agree with you that the access-control-list-type leaf should be > > mandatory. > > > > I noticed that the example in Figure 2 has an extra 'top' > > container and the namespace for 'access-lists' is missing. > > > > > > Andy > > > > On Mon, Jun 1, 2015 at 11:31 AM, Nabil Michraf > > <nabil.mich...@gmail.com> wrote: > > > Hi all, > > > > > > Can you please clarify if we are talking about > > > https://www.ietf.org/id/draft-ietf-netmod-acl-model-02.txt or some > > > other draft? > > > I just want to make sure I am looking at the right ACL model version. > > > > > > Thank you, > > > Nabil > > > > > > On Mon, Jun 1, 2015 at 7:06 AM, Dana Blair (dblair) > > > <dbl...@cisco.com> > > > wrote: > > >> > > >> > > >> > > >> On 4/13/15, 10:11 AM, "Sterne, Jason (Jason)" > > >> <jason.ste...@alcatel-lucent.com> wrote: > > >> > > >> >Hi guys, > > >> > > > >> >Extracting my comments about ACL type into its own thread. I saw > > >> >Martin also had some comments on this topic. > > >> > > > >> >The ACL type was mandatory in an older version of the draft and I > > >> >think we should put it back as mandatory. Implementations that > > >> >don't *need* that leaf value can work fine whether they get it > > >> >during ACL creation or not but some implementations need to know the > > >> >type. > > >> > > >> We don¹t want to make the ACL type mandatory because then we have > > >> to a create a new type for every combination of match criteria. > > >> The model should support any combination of match criteria with > > >> typing optional to map to pre-existing implementations. This is a > > >> tradeoff between making the model backward compatible with existing > > >> implementations but make it flexible enough so that a new match > > >> criteria doesn¹t require a new type. > > > > [>>JTS] We can just create a "mixed" (i.e. unspecified) type and put > > it under an if-feature. Existing implementations have a single type > > (and require knowing the type at list creation time). > > > > >> > > >> > > > >> >It would also be good to create separate identities for > > >> >IPv4-access-control-list and IPv6-access-control-list instead of > > >> >bundling them into IP-access-control-list. If we're separating > > >> >into types in the model it should be the 3 basic types in the base > > >> >model: v4, v6 and enet. > > >> > > >> A vendor specific augmentation/implementation could do this, but > > >> the model needs to support inclusion of ipv4 and ipv6 in the same acl. > > >> I¹m aware of outstanding customers requests for combining ipv4 > > >> rules and ipv6 rules in the same acl, but most implementations have > > >> not caught up to this. When it comes to managing acls there > > >> shouldn¹t be this distinction between IPv6 and IPv4. They are both IP > > >> addresses. > > > > > > [>>JTS] Again - let's focus on capturing common existing > > implementations in these standard models (while also allowing for > > augmentation and flexibility). V4 and V6 are in separate lists today. > > A future mixed list can use the "mixed" type or invent a new "v4+v6" > > type. > > > > >> > > >> > > > >> >That would also help if we decide to put some constraints that > > >> >allow/disallow certain matching criteria when the type is a > > >> >specific value (e.g. don't allow a v6 address match in a v4 list). > > >> > We'd have to be careful about how those constraints are > > >> >formulated though - especially if we want to allow augmentations > > >> >of the list-type for "mixed" ACLs. A new "mixed-v4-enet" type > > >> >(identity) would also need to use the destination-ipv4-network > > >> >matching criteria (can "when" or "must" logic be changed by an > > >> >augmentation ? I'm not sure that works). > > >> > > >> Yes, would have to be careful, and defining constraints based on > > >> existing > > >> implementations could be a very slippery slope. Vendors should be > > >> able > > >> to map to their implementations and/or have a proprietary > > >> augmentation that constrains things more according to > > >> their implementation. Proprietary augmentations could be proposed, > > >> and > > >> reviewed for standardization. > > > > > > [>>JTS] The draft doesn't have any constraints based on type so I > > suppose this point is moot. > > > > >> > > >> thanks, > > >> Dana > > >> > > >> > > > >> >Regards, > > >> >Jason > > >> > > > >> > > > >> >_______________________________________________ > > >> >netmod mailing list > > >> >netmod@ietf.org > > >> >https://www.ietf.org/mailman/listinfo/netmod > > >> > > >> _______________________________________________ > > >> netmod mailing list > > >> netmod@ietf.org > > >> https://www.ietf.org/mailman/listinfo/netmod > > > > > > > > > > > > _______________________________________________ > > > netmod mailing list > > > netmod@ietf.org > > > https://www.ietf.org/mailman/listinfo/netmod > > > > > > > _______________________________________________ > > netmod mailing list > > netmod@ietf.org > > https://www.ietf.org/mailman/listinfo/netmod > > _______________________________________________ > > netmod mailing list > > netmod@ietf.org > > https://www.ietf.org/mailman/listinfo/netmod > > _______________________________________________ > > netmod mailing list > > netmod@ietf.org > > > > > > > > > > https://www.ietf.org/mailman/listinfo/netmod > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > _______________________________________________ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod