Return-Path: <Alex.Campbell@Aviatnet.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
 by ietfa.amsl.com (Postfix) with ESMTP id C34EC12D7E9
 for <netmod@ietfa.amsl.com>; Mon, 22 Jan 2018 14:02:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001,
 SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01]
 autolearn=ham autolearn_force=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 9y98l3GBnIzs for <netmod@ietfa.amsl.com>;
 Mon, 22 Jan 2018 14:02:08 -0800 (PST)
Received: from mail-send.aviatnet.com (mail-send.aviatnet.com [192.147.115.54])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits))
 (No client certificate requested)
 by ietfa.amsl.com (Postfix) with ESMTPS id B7510124D6C
 for <netmod@ietf.org>; Mon, 22 Jan 2018 14:02:06 -0800 (PST)
From: Alex Campbell <Alex.Campbell@Aviatnet.com>
To: Eliot Lear <lear@cisco.com>, Kent Watsen <kwatsen@juniper.net>,
 "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] WG Last Call: draft-ietf-netmod-acl-model-15
Thread-Index: AQHTj93UjCIcW+s9eES+j5KHC1NlIKOA0LyA//+d5sg=
Date: Mon, 22 Jan 2018 22:02:05 +0000
Message-ID: <1516658524969.70610@Aviatnet.com>
References: <8C19AD4C-0DCA-4D96-A070-0D76BE92BFA4@juniper.net>,
 <1e5da232-82cd-5a1a-930e-555796bd2ef7@cisco.com>
In-Reply-To: <1e5da232-82cd-5a1a-930e-555796bd2ef7@cisco.com>
Accept-Language: en-NZ, en-US
Content-Language: en-NZ
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.15.6.9]
Content-Type: multipart/alternative;
 boundary="_000_151665852496970610Aviatnetcom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/GyXk4RRK6T4fHdPcAm4zR76N3WI>
Subject: Re: [netmod] WG Last Call: draft-ietf-netmod-acl-model-15
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>,
 <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>,
 <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 22 Jan 2018 22:02:11 -0000

--_000_151665852496970610Aviatnetcom_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable


Hi,


Good point - adding on to that, I'd like to point out that there are more p=
rotocols that use ports besides TCP and UDP, such as SCTP and DCCP.
If the port number was not protocol-specific then devices would also have t=
o match SCTP ports, DCCP ports, and other protocol ports, even for protocol=
s which haven't been invented yet. This is not possible to implement.

> Thus, if a very simple device can understand TCP and UDP ports but cannot=
 understand more detailed information, that is supported.


I don't think YANG features can possibly envision or handle all the potenti=
al variations between devices, unless we give each criterion its own separa=
te feature.

To my knowledge, the device I am currently working on doesn't support port =
range matching, or operators other than 'equals', and I see there is curren=
tly no YANG feature for that.

Do you think it would be better to let vendors use deviations to indicate w=
hich features aren't supported?



________________________________
From: netmod <netmod-bounces@ietf.org> on behalf of Eliot Lear <lear@cisco.=
com>
Sent: Tuesday, 23 January 2018 8:14 a.m.
To: Kent Watsen; netmod@ietf.org
Subject: Re: [netmod] WG Last Call: draft-ietf-netmod-acl-model-15


Hi Kent and Mahesh and Sonal,

Thanks very much for working on this draft.  I have noted one problem that =
I think needs correcting.  I come prepared with a diff.

The current model has {source,dest}-port-or-range hanging off ipv4 or ipv6.=
  This is a transport parameter and is not appropriate for protocols that d=
o not use ports (ie, ICMP, ESP, etc).  A better locale would be to hang the=
se components underneath l4 underneath their respective tcp and udp branche=
s.

Because this is so basic a function, I propose that this not be included in=
 match-on-tcp or match-on-udp.  Instead, the contents of both tcp and udp b=
e moved to new containers "tcp-all" and "udp-all", respectively, and the po=
rts hang as peers to that.  Thus, if a very simple device can understand TC=
P and UDP ports but cannot understand more detailed information, that is su=
pported.

 And so from a tree perspective, it would look like this:


       |        |  +--rw (l4)?
       |        |  |  +--:(tcp)
       |        |  |  |  +--rw tcp
       |        |  |  |     +--rw source-port-range-or-operator
       |        |  |  |     |  +--rw (port-range-or-operator)?
       |        |  |  |     |     +--:(range)
       |        |  |  |     |     |  +--rw lower-port    inet:port-number
       |        |  |  |     |     |  +--rw upper-port    inet:port-number
       |        |  |  |     |     +--:(operator)
       |        |  |  |     |        +--rw operator?     operator
       |        |  |  |     |        +--rw port          inet:port-number
       |        |  |  |     +--rw destination-port-range-or-operator
       |        |  |  |     |  +--rw (port-range-or-operator)?
       |        |  |  |     |     +--:(range)
       |        |  |  |     |     |  +--rw lower-port    inet:port-number
       |        |  |  |     |     |  +--rw upper-port    inet:port-number
       |        |  |  |     |     +--:(operator)
       |        |  |  |     |        +--rw operator?     operator
       |        |  |  |     |        +--rw port          inet:port-number
       |        |  |  |     +--rw tcp-all {match-on-tcp}?
       |        |  |  |        +--rw sequence-number?          uint32
       |        |  |  |        +--rw acknowledgement-number?   uint32
       |        |  |  |        +--rw data-offset?              uint8
       |        |  |  |        +--rw reserved?                 uint8
       |        |  |  |        +--rw flags?                    bits
       |        |  |  |        +--rw window-size?              uint16
       |        |  |  |        +--rw urgent-pointer?           uint16
       |        |  |  |        +--rw options?                  uint32
       |        |  |  +--:(udp)
       |        |  |  |  +--rw udp
       |        |  |  |     +--rw source-port-range-or-operator
       |        |  |  |     |  +--rw (port-range-or-operator)?
       |        |  |  |     |     +--:(range)
       |        |  |  |     |     |  +--rw lower-port    inet:port-number
       |        |  |  |     |     |  +--rw upper-port    inet:port-number
       |        |  |  |     |     +--:(operator)
       |        |  |  |     |        +--rw operator?     operator
       |        |  |  |     |        +--rw port          inet:port-number
       |        |  |  |     +--rw destination-port-range-or-operator
       |        |  |  |     |  +--rw (port-range-or-operator)?
       |        |  |  |     |     +--:(range)
       |        |  |  |     |     |  +--rw lower-port    inet:port-number
       |        |  |  |     |     |  +--rw upper-port    inet:port-number
       |        |  |  |     |     +--:(operator)
       |        |  |  |     |        +--rw operator?     operator
       |        |  |  |     |        +--rw port          inet:port-number
       |        |  |  |     +--rw udp-all {match-on-udp}?
       |        |  |  |        +--rw length?   uint16


A diff ietf-packet-fields.yang and ietf-access-control-lists.yang is attach=
ed.

Eliot



On 17.01.18 22:55, Kent Watsen wrote:

All,

This starts a two-week working group last call on
draft-ietf-netmod-acl-model-15.

This working group last call ends on January 31st.
Please send your comments to the NETMOD mailing list.

Positive comments, e.g., "I've reviewed this document
and believe it is ready for publication", are welcome!
This is useful and important, even from authors.

Also, could the authors, explicitly CC-ed on this email,
please confirm at this time that they are unaware of
any IPR related to this draft.

Thank you,
NETMOD Chairs

_______________________________________________
netmod mailing list
netmod@ietf.org<mailto:netmod@ietf.org>
https://www.ietf.org/mailman/listinfo/netmod




--_000_151665852496970610Aviatnetcom_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<style type=3D"text/css" style=3D"display:none"><!--P{margin-top:0;margin-b=
ottom:0;} P{margin-top:0;margin-bottom:0;}--></style>
</head>
<body dir=3D"ltr" style=3D"font-size:12pt;color:#000000;background-color:#F=
FFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p><br>
</p>
<p>Hi,<br>
</p>
<p><br>
</p>
Good point - adding on to that, I'd like to point out that there are more p=
rotocols that use ports besides TCP and UDP, such as SCTP and DCCP.<br>
If the port number was not protocol-specific then devices would also have t=
o match SCTP ports, DCCP ports, and other protocol ports, even for protocol=
s which haven't been invented yet. This is not possible to implement.<br>
<br>
&gt; Thus, if a very simple device can understand TCP and UDP ports but can=
not understand more detailed information, that is supported.<br>
<p><br>
</p>
<p>I don't think YANG features can possibly envision or handle all the pote=
ntial variations between devices, unless we give each criterion its own sep=
arate feature.</p>
<p>To my knowledge, the device I am currently working on doesn't support po=
rt range matching, or operators other than 'equals', and I see there is cur=
rently no YANG feature for that.</p>
<p>Do you think it would be better to let vendors use deviations to indicat=
e which features aren't supported?<br>
</p>
<p><br>
</p>
<p><br>
</p>
<div style=3D"color: rgb(33, 33, 33);">
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font style=3D"font-size:11pt" face=
=3D"Calibri, sans-serif" color=3D"#000000"><b>From:</b> netmod &lt;netmod-b=
ounces@ietf.org&gt; on behalf of Eliot Lear &lt;lear@cisco.com&gt;<br>
<b>Sent:</b> Tuesday, 23 January 2018 8:14 a.m.<br>
<b>To:</b> Kent Watsen; netmod@ietf.org<br>
<b>Subject:</b> Re: [netmod] WG Last Call: draft-ietf-netmod-acl-model-15</=
font>
<div>&nbsp;</div>
</div>
<div>
<p>Hi Kent and Mahesh and Sonal,</p>
<p>Thanks very much for working on this draft.&nbsp; I have noted one probl=
em that I think needs correcting.&nbsp; I come prepared with a diff.</p>
<p>The current model has {source,dest}-port-or-range hanging off ipv4 or ip=
v6.&nbsp; This is a transport parameter and is not appropriate for protocol=
s that do not use ports (ie, ICMP, ESP, etc).&nbsp; A better locale would b=
e to hang these components underneath l4 underneath
 their respective tcp and udp branches.</p>
<p>Because this is so basic a function, I propose that this <b>not</b> be i=
ncluded in match-on-tcp or match-on-udp.&nbsp; Instead, the contents of bot=
h tcp and udp be moved to new containers &quot;tcp-all&quot; and &quot;udp-=
all&quot;, respectively, and the ports hang as peers to that.&nbsp;
 Thus, if a very simple device can understand TCP and UDP ports but cannot =
understand more detailed information, that is supported.</p>
&nbsp;And so from a tree perspective, it would look like this:
<p><br>
</p>
<pre>       |        |  &#43;--rw (l4)?=0A=
       |        |  |  &#43;--:(tcp)=0A=
       |        |  |  |  &#43;--rw tcp=0A=
       |        |  |  |     &#43;--rw source-port-range-or-operator=0A=
       |        |  |  |     |  &#43;--rw (port-range-or-operator)?=0A=
       |        |  |  |     |     &#43;--:(range)=0A=
       |        |  |  |     |     |  &#43;--rw lower-port    inet:port-numb=
er=0A=
       |        |  |  |     |     |  &#43;--rw upper-port    inet:port-numb=
er=0A=
       |        |  |  |     |     &#43;--:(operator)=0A=
       |        |  |  |     |        &#43;--rw operator?     operator=0A=
       |        |  |  |     |        &#43;--rw port          inet:port-numb=
er=0A=
       |        |  |  |     &#43;--rw destination-port-range-or-operator=0A=
       |        |  |  |     |  &#43;--rw (port-range-or-operator)?=0A=
       |        |  |  |     |     &#43;--:(range)=0A=
       |        |  |  |     |     |  &#43;--rw lower-port    inet:port-numb=
er=0A=
       |        |  |  |     |     |  &#43;--rw upper-port    inet:port-numb=
er=0A=
       |        |  |  |     |     &#43;--:(operator)=0A=
       |        |  |  |     |        &#43;--rw operator?     operator=0A=
       |        |  |  |     |        &#43;--rw port          inet:port-numb=
er=0A=
       |        |  |  |     &#43;--rw tcp-all {match-on-tcp}?=0A=
       |        |  |  |        &#43;--rw sequence-number?          uint32=
=0A=
       |        |  |  |        &#43;--rw acknowledgement-number?   uint32=
=0A=
       |        |  |  |        &#43;--rw data-offset?              uint8=0A=
       |        |  |  |        &#43;--rw reserved?                 uint8=0A=
       |        |  |  |        &#43;--rw flags?                    bits=0A=
       |        |  |  |        &#43;--rw window-size?              uint16=
=0A=
       |        |  |  |        &#43;--rw urgent-pointer?           uint16=
=0A=
       |        |  |  |        &#43;--rw options?                  uint32=
=0A=
       |        |  |  &#43;--:(udp)=0A=
       |        |  |  |  &#43;--rw udp=0A=
       |        |  |  |     &#43;--rw source-port-range-or-operator=0A=
       |        |  |  |     |  &#43;--rw (port-range-or-operator)?=0A=
       |        |  |  |     |     &#43;--:(range)=0A=
       |        |  |  |     |     |  &#43;--rw lower-port    inet:port-numb=
er=0A=
       |        |  |  |     |     |  &#43;--rw upper-port    inet:port-numb=
er=0A=
       |        |  |  |     |     &#43;--:(operator)=0A=
       |        |  |  |     |        &#43;--rw operator?     operator=0A=
       |        |  |  |     |        &#43;--rw port          inet:port-numb=
er=0A=
       |        |  |  |     &#43;--rw destination-port-range-or-operator=0A=
       |        |  |  |     |  &#43;--rw (port-range-or-operator)?=0A=
       |        |  |  |     |     &#43;--:(range)=0A=
       |        |  |  |     |     |  &#43;--rw lower-port    inet:port-numb=
er=0A=
       |        |  |  |     |     |  &#43;--rw upper-port    inet:port-numb=
er=0A=
       |        |  |  |     |     &#43;--:(operator)=0A=
       |        |  |  |     |        &#43;--rw operator?     operator=0A=
       |        |  |  |     |        &#43;--rw port          inet:port-numb=
er=0A=
       |        |  |  |     &#43;--rw udp-all {match-on-udp}?=0A=
       |        |  |  |        &#43;--rw length?   uint16</pre>
<p><br>
</p>
A diff ietf-packet-fields.yang and ietf-access-control-lists.yang is attach=
ed.<br>
<br>
Eliot<br>
<br>
<br>
<br>
<div class=3D"moz-cite-prefix">On 17.01.18 22:55, Kent Watsen wrote:<br>
</div>
<blockquote type=3D"cite">
<pre>All,=0A=
=0A=
This starts a two-week working group last call on=0A=
draft-ietf-netmod-acl-model-15.=0A=
=0A=
This working group last call ends on January 31st.=0A=
Please send your comments to the NETMOD mailing list.=0A=
=0A=
Positive comments, e.g., &quot;I've reviewed this document=0A=
and believe it is ready for publication&quot;, are welcome!=0A=
This is useful and important, even from authors.=0A=
=0A=
Also, could the authors, explicitly CC-ed on this email,=0A=
please confirm at this time that they are unaware of=0A=
any IPR related to this draft.=0A=
=0A=
Thank you,=0A=
NETMOD Chairs=0A=
=0A=
_______________________________________________=0A=
netmod mailing list=0A=
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:netmod@ietf.org">netmo=
d@ietf.org</a>=0A=
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/lis=
tinfo/netmod">https://www.ietf.org/mailman/listinfo/netmod</a>=0A=
=0A=
</pre>
</blockquote>
<br>
</div>
</div>
</body>
</html>

--_000_151665852496970610Aviatnetcom_--

