Return-Path: <shares@ndzh.com>
X-Original-To: idr@ietfa.amsl.com
Delivered-To: idr@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
 by ietfa.amsl.com (Postfix) with ESMTP id 095401200F7
 for <idr@ietfa.amsl.com>; Fri, 20 Sep 2019 05:12:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.851
X-Spam-Level: **
X-Spam-Status: No, score=2.851 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DOS_OUTLOOK_TO_MX=2.845, HTML_MESSAGE=0.001,
 HTML_OBFUSCATE_05_10=0.26, KHOP_HELO_FCRDNS=0.399,
 NORMAL_HTTP_TO_IP=0.001, NUMERIC_HTTP_ADDR=1.242, SPF_HELO_NONE=0.001,
 SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=no 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 XSg7Po7J_LFG for <idr@ietfa.amsl.com>;
 Fri, 20 Sep 2019 05:12:01 -0700 (PDT)
Received: from hickoryhill-consulting.com
 (50-245-122-100-static.hfc.comcastbusiness.net [50.245.122.100])
 (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 2FF621200D5
 for <idr@ietf.org>; Fri, 20 Sep 2019 05:12:01 -0700 (PDT)
X-Default-Received-SPF: pass (skip=loggedin (res=PASS)) x-ip-name=97.112.17.31; 
From: "Susan Hares" <shares@ndzh.com>
To: "'idr@ietf. org'" <idr@ietf.org>
References: <CAMMESsxHXUB_jQk7E9FkeNef2C7DDcbiEvnROFdbEjAVtMqcFA@mail.gmail.com>
In-Reply-To: <CAMMESsxHXUB_jQk7E9FkeNef2C7DDcbiEvnROFdbEjAVtMqcFA@mail.gmail.com>
Date: Fri, 20 Sep 2019 08:11:46 -0400
Message-ID: <009e01d56fac$93673410$ba359c30$@ndzh.com>
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary="----=_NextPart_000_009F_01D56F8B.0C7725D0"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQJLQJSF5123l/3BN1uxfGjpfGIeQ6ZI09Qg
Content-Language: en-us
X-Antivirus: AVG (VPS 190920-0, 09/20/2019), Outbound message
X-Antivirus-Status: Not-Tested
X-Authenticated-User: skh@ndzh.com 
Archived-At: <https://mailarchive.ietf.org/arch/msg/idr/CSa1CKYZTBp_ghib-rc-AUuS-D4>
Subject: Re: [Idr] AD Review of draft-ietf-idr-rfc5575bis-17
X-BeenThere: idr@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Inter-Domain Routing <idr.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/idr>,
 <mailto:idr-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/idr/>
List-Post: <mailto:idr@ietf.org>
List-Help: <mailto:idr-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/idr>,
 <mailto:idr-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 20 Sep 2019 12:12:16 -0000

This is a multipart message in MIME format.

------=_NextPart_000_009F_01D56F8B.0C7725D0
Content-Type: text/plain;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

John:=20

=20

<author hat on>=20

The author team is close to finishing its work on RFC5575bis.   Alvaro =
asks one clear questions of the chairs =E2=80=93should we include the v6 =
portion into the revision of RFC5575bis.    In my earlier discussion on =
the list as WG Chair, I indicated that the WG had asked that the =
RFC5575bis would not include the v6 version.   =20

=20

Alvaro has clearly indicated that the RFC5575bis would appear at the =
IESG with the v6 version.  =20

=20

I would that you query the WG regarding:


=C2=B7         RFC5575bis + draft-ietf-idr-flow-spec-v6-09.txt=20


=C2=B7         RFC5575bis with the v6 specification included.=20


Thank you,=20


Susan Hares=20


=20


=20

=20

From: Idr [mailto:idr-bounces@ietf.org] On Behalf Of Alvaro Retana
Sent: Tuesday, September 10, 2019 12:09 PM
To: draft-ietf-idr-rfc5575bis@ietf.org
Cc: idr@ietf. org; idr-chairs@ietf.org
Subject: [Idr] AD Review of draft-ietf-idr-rfc5575bis-17

=20

Dear authors:

=20

I just finished reading this document.  Thank you for the work in =
clarifying and updating rfc5575!  Many of my comments (see below) are =
related to what I think is still missing clarity, or lack of it in some =
of the new text.

=20

Besides the specific comments, I have some larger issues that I want to =
detail here.  The first 2 are directed at the Shepherd and Chairs.

=20

(A) IPR

=20

The Shepherd report, the datatracker and the WGLC thread [1] all point =
at no existing IPR.  However, several declarations do exist...for =
rfc5575 [2].  IMO, the changes between rfc5575 and this document are not =
that significant to assume that the declarations don't apply..  I also =
note that none of the original authors mentioned as "contributing =
authors" (=C2=A715) replied to the IPR call during the WGLC..

=20

Jie: As Shepherd, can you please file a third-party disclosure [3] =
pointing at the rfc5575 disclosures?  Once that is done I will send a =
message to the WG to consider the information -- I don't expect any =
issues, but it has to be done. I'll need you to also update the Shepherd =
writeup.  Thanks!

=20

=20

(B) Support for IPv6

=20

I understand why this document only focuses on IPv4.  While the text =
points at draft-ietf-idr-flow-spec-v6, that draft has been expired for =
over a year!  What is the plan to move that work forward?  It looks like =
there may already be implementations in place [4].

=20

We all know this question will come up during IESG Evaluation, specially =
in light of the IAB Statement on IPv6 [5] and the fact that there was a =
related DISCUSS when rfc5575 was first processed [6] -- at that time =
(2009!) the objection was cleared with the promise that an IPv6 document =
would be forthcoming.

=20

We should have a plan in place by the time this document makes it to the =
IESG Telechat.  It would have been ideal to publish both at the same =
time, but I'll settle for the ability to (at least) point at the WGLC =
(which has been brought up before [7]).

=20

=20

(C) IANA Considerations

=20

(C1) traffic-rate-packets

=20

The instructions to IANA for the assignment of the traffic-rate-packets =
sub-type are not clear.  The existing assignments and the requirement =
that "traffic actions are processed in ascending order of the sub-type" =
(=C2=A77) seem to imply that a specific order for this new action may be =
intended.  Unless explicitly instructed, IANA may not assign a value =
that aligns with that intent.  [See related comments in =C2=A77.2.]

=20

(C2) Experimental Use Ranges

=20

This document uses ranges from the "BGP Transitive Extended Community =
Types" registry which are reserved for Experimental Use.  While the =
history of this use is not clear, we should take the opportunity to =
clean the registry.  [See more in =C2=A712.3.]

=20

=20

(D) Document organization

=20

This document kept most of the Introduction text, but then added related =
and, in some cases, overlapping and redundant text in =C2=A75 (not =
=C2=A75.1) and =C2=A79.  Please combine the information from =C2=A71 and =
=C2=A75, and the background from =C2=A79 into an updated Introduction.  =
=C2=A76 seems to belong right after the definition of the NLRI =
(=C2=A74), and before the next part of the specification (filtering) =
starts with =C2=A75.1, then =C2=A77...

=20

Most of the old text is about justification, some from the specific =
point of view of the then-authors.  Please reconsider whether that still =
applies.

=20

=20

I will wait for the major issues/comments to be addressed before =
starting the IETF Last Call.

=20

Thanks!

=20

Alvaro.

=20

=20

[1] =
https://mailarchive.ietf.org/arch/msg/idr/0WQW0pdqq1ae31GYZ7-dk3_Wqv8

[2] https://datatracker.ietf.org/ipr/search/?rfc=3D5575 =
<https://datatracker.ietf.org/ipr/search/?rfc=3D5575&submit=3Drfc> =
&submit=3Drfc

[3] https://datatracker.ietf.org/ipr/new-third-party/

[4] =
https://mailarchive.ietf.org/arch/msg/idr/VH0mYVgT39ueJapb0axMgfgcAN8

[5] https://www.iab.org/2016/11/07/iab-statement-on-ipv6/

[6] https://datatracker.ietf.org/doc/rfc5575/history/

[7] =
https://mailarchive.ietf.org/arch/msg/idr/0J6gWHgBx33u8WpTa0B73mI6rIM

=20

=20

=20

[Line numbers from idnits.]

=20

...

17         Abstract

=20

[nit] It is interesting to me that the Abstract was significantly =
rewritten while the Introduction was mostly left unchanged.  I assume =
this was done to reflect the changes in the document upfront...but it =
then results in, what I think, is an Abstract that is too long, and an =
incomplete Introduction.

=20

19           This document defines a Border Gateway Protocol Network =
Layer

20           Reachability Information (BGP NLRI) encoding format that =
can be used

21           to distribute traffic Flow Specifications.  This allows the =
routing

22           system to propagate information regarding more specific =
components of

23           the traffic aggregate defined by an IP destination prefix.

=20

25           It specifies IPv4 traffic Flow Specifications via a BGP =
NLRI which

26           carries traffic Flow Specification filter, and an Extended =
community

27           value which encodes actions a routing system can take if =
the packet

28           matches the traffic flow filters.  The flow filters and the =
actions

29           are processed in a fixed order.  Other drafts specify IPv6, =
MPLS

30           addresses, L2VPN addresses, and NV03 encapsulation of IP =
addresses.

=20

[nit] s/carries traffic Flow Specification filter/carries a traffic Flow =
Specification filter

=20

[minor] I think that this paragraph, or something like it, belongs in =
the Introduction (and not the Abstract), because it provides information =
that could benefit from references:

=20

- the two parts of the NLRI; BTW, the community is not even mentioned in =
the Introduction.

=20

- other drafts... The Introduction only mentions and provides a =
reference to the IPv6 work.

=20

32           This document obsoletes RFC5575 and RFC7674 to correct =
unclear

33           specifications in the flow filters.

=20

[major] Please add a similar statement in the Introduction, with =
references to both RFCs.  There should be an Informative reference to =
both.

=20

[minor] Appendix A talks about the difference of this document with =
respect to rfc5575.  What about rfc7674?  It looks like any updates from =
rfc7674 have been incorporated in this document.  It would be very nice, =
even if just for completion, if there was an Appendix that talked about =
rfc7674 -- I even think that a sub-section of Appendix A would be =
enough.

=20

35           Applications which use the bgp Flow Specification are: 1) =
application

36           which automate inter-domain coordination of traffic =
filtering, such

37           as what is required in order to mitigate (distributed) =
denial-of-

38           service attacks; 2) applications which control traffic =
filtering in

39           the context of a BGP/MPLS VPN service, and 3) applications =
with

40           centralized control of traffic in a SDN or NFV context.  =
Some

41           deployments of these three applications can be handled by =
the strict

42           ordering of the BGP NLRI traffic flow filters, and the =
strict actions

43           encoded in the extended community Flow Specification =
actions.

=20

[minor] Please move this paragraph to the Introduction.

=20

[nit] s/extended community/Extended Community/g

=20

=20

...

133       1.  Introduction

...

149         This document defines a general procedure to encode flow

150         specification rules for aggregated traffic flows so that =
they can be

151         distributed as a BGP [RFC4271] NLRI.  Additionally, we =
define the

152         required mechanisms to utilize this definition to the =
problem of

153         immediate concern to the authors: intra- and inter-provider

154         distribution of traffic filtering rules to filter =
(distributed)

155         denial-of-service (DoS) attacks.

=20

[minor] The document uses "Flow Specification" and "flow specification" =
to refer to the same thing...right?  Or are there differences due to the =
capitalization?  Please be consistent.

=20

[style nit] Using "we" is not the best for a consensus document.  s/we =
define/it defines

=20

[nit] "problem of immediate concern to the authors"  Only the authors?  =
This piece of text was also present in rfc5575 -- having a different set =
of authors, I would assume we can safely say that the =
concern/application goes beyond the authors...right?  Please reword.

=20

[minor] Given that this is a bis, is the motivation still the same?  I =
think in part it is, but in part there may be other drivers.  Just =
asking...

=20

[minor] This seems to be a good place to move the text from the Abstract =
that describes applications...

=20

...

164         A Flow Specification received from an external autonomous =
system will

165         need to be validated against unicast routing before being =
accepted.

166         If the aggregate traffic flow defined by the unicast =
destination

167         prefix is forwarded to a given BGP peer, then the local =
system can

168         install more specific flow rules that may result in =
different

169         forwarding behavior, as requested by this system.

=20

[major] "A Flow Specification received from an external autonomous =
system will need to be validated against unicast routing before being =
accepted."  What about if received internally?

=20

171         The key technology components required to address the class =
of

172         problems targeted by this document are:

=20

174         1.  Efficient point-to-multipoint distribution of control =
plane

175             information.

=20

177         2.  Inter-domain capabilities and routing policy support.

=20

179         3.  Tight integration with unicast routing, for verification

180             purposes.

=20

182         Items 1 and 2 have already been addressed using BGP for =
other types

183         of control plane information.  Close integration with BGP =
also makes

184         it feasible to specify a mechanism to automatically verify =
flow

185         information against unicast routing.  These factors are =
behind the

186         choice of BGP as the carrier of Flow Specification =
information.

=20

[nit] I don't think that we need to keep justifying...  Just a nit...

=20

188         As with previous extensions to BGP, this specification makes =
it

189         possible to add additional information to Internet routers.  =
These

190         are limited in terms of the maximum number of data elements =
they can

191         hold as well as the number of events they are able to =
process in a

192         given unit of time.  The authors believe that, as with =
previous

193         extensions, service providers will be careful to keep =
information

194         levels below the maximum capacity of their devices.

=20

196         Experience with previous BGP extensions has also shown that =
the

197         maximum capacity of BGP speakers has been gradually =
increased

198         according to expected loads.  For example Internet unicast =
routing as

199         well as other BGP applications increased their maximum =
capacity as

200         they gain popularity.

=20

[minor] This is the same text from 10 years ago.  Many things, including =
hardware processing/storage, has changed.  Is this text still necessary? =
 If so, then I would like to see explicit operational considerations on =
what an operator should look for when being "careful".

=20

=20

...

214         In current deployments, the information distributed by the =
flow-spec

215         extension is originated both manually as well as =
automatically.  The

216         latter by systems that are able to detect malicious flows.  =
When

217         automated systems are used, care should be taken to ensure =
their

218         correctness as well as to limit the number and advertisement =
rate of

219         flow routes.

=20

[major] An automated system that is not "correct", because it may not be =
properly programmed, the algorithms used are not performing as expected, =
or simply because it is rogue, are all vulnerabilities that should be =
called out in the Security Considerations section.

=20

221         This specification defines required protocol extensions to =
address

222         most common applications of IPv4 unicast and VPNv4 unicast =
filtering.

223         The same mechanism can be reused and new match criteria =
added to

224         address similar filtering needs for other BGP address =
families such

225         as IPv6 families [I-D.ietf-idr-flow-spec-v6],

=20

[nit] s/[I-D.ietf-idr-flow-spec-v6],/[I-D.ietf-idr-flow-spec-v6].

=20

=20

227       2.  Definitions of Terms Used in This Memo

...

233         Loc-RIB -   Local RIB.

=20

[major] This simple definition doesn't match the one in =
=C2=A71.1/rfc4271.

=20

=20

..

247       3.  Flow Specifications

...

266         BGP itself treats the NLRI as an key to an entry in its =
databases.

267         Entries that are placed in the Loc-RIB are then associated =
with a

268         given set of semantics, which is application dependent.  =
This is

269         consistent with existing BGP applications.  For instance, IP =
unicast

270         routing (AFI=3D1, SAFI=3D1) and IP multicast reverse-path =
information

271         (AFI=3D1, SAFI=3D2) are handled by BGP without any =
particular semantics

272         being associated with them until installed in the Loc-RIB.

=20

[nit] s/an key/a key

=20

274         Standard BGP policy mechanisms, such as UPDATE filtering by =
NLRI

275         prefix as well as community matching and manipulation, MUST =
apply to

276         the Flow Specification defined NLRI-type, especially in an =
inter-

277         domain environment.  Network operators can also control =
propagation

278         of such routing updates by enabling or disabling the =
exchange of a

279         particular (AFI, SAFI) pair on a given BGP peering session.

=20

[major] The point of NLRIs all being treated the same is made above, to =
reinforce the default BGP behavior...and this paragraph tries to bring =
home the point by Normatively enforcing it (MUST).  However, because the =
behavior is what BGP specifies by default, then this document cannot be =
Normative in it (unless it specified an exception).  s/MUST/must

=20

281       4.  Dissemination of IPv4 FLow Specification Information

...

287         This NLRI information is encoded using MP_REACH_NLRI and

288         MP_UNREACH_NLRI attributes as defined in [RFC4760].  =
Whenever the

289         corresponding application does not require Next-Hop =
information, this

290         shall be encoded as a 0-octet length Next Hop in the =
MP_REACH_NLRI

291         attribute and ignored on receipt.

=20

[minor] s/Next-Hop/Next Hop       rfc4760 uses "Next Hop"

=20

[nit] "...shall be encoded as a 0-octet length Next Hop in the =
MP_REACH_NLRI attribute and ignored on receipt."  What is ignored?  The =
Next Hop?  If it doesn't exist (length =3D 0), then it can't be =
ignored...  Perhaps delete " and ignored on receipt".

=20

...

297             +------------------------------+

298             |    length (0xnn or 0xfn nn)  |

299             +------------------------------+

300             |    NLRI value  (variable)    |

301             +------------------------------+

=20

[minor] s/0xfn nn/0xfnnn

=20

=20

...

312       4.1.  Length Encoding

=20

314         o  If the NLRI length value is smaller than 240 (0xf0 hex), =
the

315            length field can be encoded as a single octet.

=20

[nit] s/240/240 octets

=20

317         o  Otherwise, it is encoded as an extended-length 2-octet =
value in

318            which the most significant nibble of the first byte is =
all ones.

=20

320         In figure 1 above, values less-than 240 are encoded using =
two hex

321         digits (0xnn).  Values above 239 are encoded using 3 hex =
digits

322         (0xfnnn).  The highest value that can be represented with =
this

323         encoding is 4095.  The value 241 is encoded as 0xf0f1.

=20

[nit] It may make more sense to show the encoding for 240.

=20

=20

325       4.2.  NLRI Value Encoding

...

332         The encoding of each of the NLRI components begins with a =
type field

333         (1 octet) followed by a variable length parameter.  Section =
4.2.1 to

334         Section 4.2.12 define component types and parameter =
encodings for the

335         IPv4 IP layer and transport layer headers.  IPv6 NLRI =
component types

336         are described in [I-D.ietf-idr-flow-spec-v6].

=20

[minor] "followed by a variable length parameter"   Only the first two =
types have a variable length parameter...

=20

338         Flow Specification components must follow strict type =
ordering by

339         increasing numerical order.  A given component type may =
(exactly

340         once) or may not be present in the specification.  If =
present, it

341         MUST precede any component of higher numeric type value.

=20

[major] What should happen if a component appears more than once?

=20

[major] What should happen if the order is not maintained?

=20

343         All combinations of component types within a single NLRI are =
allowed,

344         even if the combination makes no sense from a semantical =
perspective.

345         If a given component type within a prefix in unknown, the =
prefix in

346         question cannot be used for traffic filtering purposes by =
the

347         receiver.  Since a Flow Specification has the semantics of a =
logical

348         AND of all components, if a component is FALSE, by =
definition it

349         cannot be applied.  However, for the purposes of BGP route

350         propagation, this prefix should still be transmitted since =
BGP route

351         distribution is independent on NLRI semantics.

=20

[nit] s/prefix in unknown/prefix is unknown

=20

[nit] s/independent on NLRI/independent of NLRI

=20

[major] "...for the purposes of BGP route propagation, this prefix =
should still be transmitted since BGP route distribution is independent =
on NLRI semantics."  I think this is a vulnerability: a (large) set of =
meaningless Flow Specifications may be injected in the routing system...

=20

[major] Also, propagating these unknown components may result in a =
router down the line, which understands them, reacting.  While the =
reaction shouldn't result in reset adjacencies, it may result in =
inconsistent forwarding or other unexpected outcomes...

=20

[major] This treatment of unknown extensions is in conflict with the =
text in =C2=A711.  See my comments there.

=20

=20

353       4.2.1.  Type 1 - Destination Prefix

=20

355            Encoding: <type (1 octet), prefix length (1 octet), =
prefix>

=20

357            Defines: the destination prefix to match.  Prefixes are =
encoded as

358            in BGP UPDATE messages, a length in bits is followed by =
enough

359            octets to contain the prefix information.

=20

[nit] s/Defines: the destination prefix/Defines the destination prefix

=20

[major] rfc4271: "The Prefix field contains an IP address prefix, =
followed by the minimum number of trailing bits needed to make the end =
of the field fall on an octet boundary."   The text above makes it sound =
as if the prefix field may not end in an octet boundary, which is what =
rfc4271 specifies.

=20

NEW (suggestion)>

   Defines the destination prefix to match.  The length and prefix =
fields are

   encoded as in BGP UPDATE messages [rfc4271].

=20

=20

361       4.2.2.  Type 2 - Source Prefix

=20

363            Encoding: <type (1 octet), prefix-length (1 octet), =
prefix>

=20

365            Defines the source prefix to match.

=20

[minor] "... The length and prefix fields are encoded as in BGP UPDATE =
messages [rfc4271]."

=20

=20

367       4.2.3.  Type 3 - IP Protocol

=20

369            Encoding:<type (1 octet), [op, value]+>

=20

371            Contains a set of {operator, value} pairs that are used =
to match

372            the IP protocol value byte in IP packets.

=20

[minor] Include a reference to the protocol numbers..

=20

[major] Are all protocol numbers valid?  I guess that in theory anything =
is -- what should a receiver do with Flow Specifications that cover =
protocols that are not supported?  I'm wondering if sending Flow =
Specifications for every protocol under the sun is a vulnerability -- =
knowing that only a few will ever be present in the Internet.  Is there =
any guidance that you can provide in =C2=A714 (or a separate Operational =
Considerations section)?  I also point this out because the rest of the =
types focus on TCP/UDP...what about other transport layer protocols?

=20

[major] Related question: even for "valid" protocols, should all be =
accepted from eBGP peers?  I think that it is probably ok...asking for =
completeness.

=20

374            The operator byte is encoded as:

=20

376           0   1   2   3   4   5   6   7

377         +---+---+---+---+---+---+---+---+

378         | e | a |  len  | 0 |lt |gt |eq |

379         +---+---+---+---+---+---+---+---+

=20

381              Numeric operator

=20

[nit] Center the figure...

=20

[clarity] Please describe the operators independent of one of the Types. =
 As defined, it looks like they only apply to one type...it is much =
later that the reader realizes that there is a reason for the =
"complexity".  Along the same lines, I think that the "set of {operator, =
value} pairs" phrase could use some more text to explain that the =
operator is the whole octet, with a corresponding value...

=20

383            e - end-of-list bit.  Set in the last {op, value} pair in =
the

384            list.

=20

[major] What action should be taken if a received flow spec has this bit =
not set anywhere, or is set somewhere other than the last pair?

=20

386            a - AND bit.  If unset, the previous term is logically =
ORed with

387            the current one.  If set, the operation is a logical AND. =
 In the

388            first operator byte of a sequence it SHOULD be encoded as =
unset

389            and and MUST be treated as always unset on decoding.  The =
AND

390            operator has higher priority than OR for the purposes of

391            evaluating logical expressions.

=20

393            len - length of the value field for this operator given =
as (1 <<

394            len).  This encodes 1 (00) - 8 (11) bytes.  Type 3 flow =
component

395            values SHOULD be encoded as single byte (len =3D 00).

=20

[major] Please expand on the meaning of "1 << len".

=20

=20

...

406         The bits lt, gt, and eq can be combined to produce common =
relational

407         operators such as "less or equal", "greater or equal", and =
"not equal

408         to".

=20

[minor] "...as shown in Table 1."

=20

410                  +----+----+----+----------------------------------+

411                  | lt | gt | eq | Resulting operation              |

412                  +----+----+----+----------------------------------+

413                  | 0  | 0  | 0  | false (independent of the value) |

414                  | 0  | 0  | 1  | =3D=3D (equal)                     =
  |

415                  | 0  | 1  | 0  | > (greater than)                 |

416                  | 0  | 1  | 1  | >=3D (greater than or equal)       =
|

417                  | 1  | 0  | 0  | < (less than)                    |

418                  | 1  | 0  | 1  | <=3D (less than or equal)          =
|

419                  | 1  | 1  | 0  | !=3D (not equal value)             =
|

420                  | 1  | 1  | 1  | true (independent of the value)  |

421                  +----+----+----+----------------------------------+

=20

423                      Table 1: Comparison operation combinations

=20

425       4.2.4.  Type 4 - Port

=20

427            Encoding:<type (1 octet), [op, value]+>

=20

429            Defines a list of {operator, value} pairs that matches =
source OR

430            destination TCP/UDP ports.  This list is encoded using =
the numeric

431            operator format defined in Section 4.2.3.  Values SHOULD =
be

432            encoded as 1- or 2-byte quantities.

=20

[minor] A reference to TCP/UDP header/ports would be nice.

=20

[major] "matches source OR destination TCP/UDP ports"  Which one?  Both? =
 Either?  How does the receiver know which one?

=20

[minor] What is the interaction/relationship between this type and Types =
5 and 6?  The text in =C2=A74.2 allows for all 3 types to be present, =
and have an influence in the action taken...they seem redundant.

=20

=20

434            Port, source port, and destination port components =
evaluate to

435            FALSE if the IP protocol field of the packet has a value =
other

436            than TCP or UDP, if the packet is fragmented and this is =
not the

437            first fragment, or if the system in unable to locate the =
transport

438            header.  Different implementations may or may not be able =
to

439            decode the transport header in the presence of IP options =
or

440            Encapsulating Security Payload (ESP) NULL [RFC4303] =
encryption.

=20

[minor] "Port, source port, and destination port components..."  This =
section only talks about the port; please duplicate this text in the =
other sections, or put a reference to it there, or put a forward =
reference here...

=20

[major] "...evaluate to FALSE if the IP protocol field of the packet has =
a value other than TCP or UDP, if the packet is fragmented and this is =
not the first fragment, or if the system in unable to locate the =
transport header."  This sentence seems to mix the applicability of the =
Flow Specification (FALSE is first introduced in =C2=A74.2 to describe =
the effect of a component on the rule), and the application to a =
specific packet.  Please separate the two aspects. I do have some =
specific questions/comments.

=20

(1) The text starts by talking about the "protocol field of the packet" =
(not the protocol value in the Type 3 parameter)...  I assume that a =
Flow Specification would only apply to a packet if the protocol matches =
the Type 3 parameter...but the statement seems to say that it wouldn't =
apply regardless of the Type 3 (see my question there about valid =
protocols)...or maybe even if a Type 3 is not present....

=20

(2) "...evaluate to FALSE...if the packet is fragmented and this is not =
the first fragment..."  Type 12 specifically includes values for other =
cases.  How is the interaction expected?

=20

=20

...

460       4.2.7.  Type 7 - ICMP type

=20

462            Encoding:<type (1 octet), [op, value]+>

=20

464            Defines a list of {operator, value} pairs used to match =
the type

465            field of an ICMP packet.  This list is encoded using the =
numeric

466            operator format defined in Section 4.2.3.  Values SHOULD =
be

467            encoded using a single byte.

=20

[minor] A reference to ICMP would be nice.

=20

469            The ICMP type specifiers evaluate to FALSE whenever the =
protocol

470            value is not ICMP.

=20

472       4.2.8.  Type 8 - ICMP code

=20

474            Encoding:<type (1 octet), [op, value]+>

=20

476            Defines a list of {operator, value} pairs used to match =
the code

477            field of an ICMP packet.  This list is encoded using the =
numeric

478            operator format defined in Section 4.2.3.  Values SHOULD =
be

479            encoded using a single byte.

=20

481            The ICMP code specifiers evaluate to FALSE whenever the =
protocol

482            value is not ICMP.

=20

[minor] I guess that it should also evaluate FALSE if the ICMP code is =
not relevant for the Type.  ??

=20

484       4.2.9.  Type 9 - TCP flags

=20

486            Encoding:<type (1 octet), [op, bitmask]+>

=20

[minor] The operator (described below) is called "bitmask", which is a =
little confusing with the bitmask itself...

=20

488            Bitmask values can be encoded as a 1- or 2-byte bitmask.  =
When a

489            single byte is specified, it matches byte 13 of the TCP =
header

490            [RFC0793], which contains bits 8 though 15 of the 4th =
32-bit word.

491            When a 2-byte encoding is used, it matches bytes 12 and =
13 of the

492            TCP header with the data offset field having a "don't =
care" value.

=20

[minor] Identifying the right octets is more important than counting the =
number of bytes...  The interesting bytes are identified above as "bytes =
12 and 13"; however, work from the Transport Area talks about "bytes 13 =
and 14": https://tools.ietf.org/html/rfc3168#section-6.1  It would be =
nice if this was aligned or if any ambiguity could be avoided.

=20

[minor] "...with the data offset field having a "don't care" value."  =
What does that mean?  To me, it sounds as if the bitmask values can't be =
used to match on the offset....is that the right interpretation?  Some =
clarity would avoid guessing..

=20

494            This component evaluates to FALSE for packets that are =
not TCP

495            packets.

=20

[major] As mentioned before, this sentence also seems to mix/confuse the =
applicability of the component (whether it can be used at all) and the =
application of it to match a specific packet.  In this case, the text =
seems to simply say that a Flow Specification which uses Type 9 can only =
be used to match TCP packets...

=20

[major] Should the Flow Specification evaluate to FALSE if this Type is =
used *and* Type 3 doesn't include TCP *only* in it's description?

=20

497            This type uses the bitmask operator format, which differs =
from the

498            numeric operator format in the lower nibble.

=20

[minor] As with the numeric operator, I think it would be clearer if it =
was introduced before the types.

=20

500          0   1   2   3   4   5   6   7

501         +---+---+---+---+---+---+---+---+

502         | e | a |  len  | 0 | 0 |not| m |

503         +---+---+---+---+---+---+---+---+

=20

505            Bitmask operator

=20

[nit] Center the figure...

=20

507         e, a, len - Most significant nibble:  (end-of-list bit, AND =
bit, and

508            length field), as defined for in the numeric operator =
format in

509            Section 4.2.3.

=20

[] See the questions about the e bit above.

=20

=20

...

542       4.2.12.  Type 12 - Fragment

=20

544            Encoding:<type (1 octet), [op, bitmask]+>

=20

546            Uses bitmask operator format defined in Section 4.2.9.

=20

[major] No, it doesn't.  The new one is defined below.

=20

[clarity] Again, please introduce the operators before the types.  In =
this case, this operator seems to also carry the bitmask name, which can =
be confusing with the one introduced in =C2=A74.2.9 and the name of the =
value field...

=20

548            0   1   2   3   4   5   6   7

549          +---+---+---+---+---+---+---+---+

550          | 0 | 0 | 0 | 0 |LF |FF |IsF|DF |

551          +---+---+---+---+---+---+---+---+

=20

[nit] Center the figure...

=20

[nit] Please add Figure numbers.

=20

553            Bitmask values:

=20

555               Bit 7 - Don't fragment (DF)

=20

557               Bit 6 - Is a fragment (IsF)

=20

559               Bit 5 - First fragment (FF)

=20

561               Bit 4 - Last fragment (LF)

=20

563               Bit 0-3 - SHOULD be set to 0 on NLRI encoding, and =
MUST be

564               ignored during decoding

=20

[major] The operation is not specified.  Is this also an =
(operator,bitmask) pair, or just 8 bits indicating the values?  Can =
multiple bits be set at the same time?  What fields in the IP header do =
these map to?

=20

566       4.3.  Examples of Encodings

=20

568         An example of a Flow Specification encoding for: "all =
packets to

569         10.0.1/24 and TCP port 25".

=20

[nit] For clarity, include the whole subnet: s/ 10.0.1/24 / 10.0.1.0/24

=20

[major] Use IP addresses from the documentation pool [rfc5737] in all =
examples.

=20

571            +------------------+----------+----------+

572            | destination      | proto    | port     |

573            +------------------+----------+----------+

574            | 0x01 18 0a 00 01 | 03 81 06 | 04 81 19 |

575            +------------------+----------+----------+

=20

[minor] It would be nice if the examples show the the whole Flow-spec =
NLRI, and not just the NLRI value.  Also, it would be great if one of =
the examples required more than 240 bytes.

=20

577         Decode for protocol:

=20

[minor] Please show the decodes for all the fields.

=20

579            +-------+----------+------------------------------+

580            | Value |          |                              |

581            +-------+----------+------------------------------+

582            |  0x03 | type     |                              |

583            |  0x81 | operator | end-of-list, value size=3D1, =3D |

584            |  0x06 | value    |                              |

585            +-------+----------+------------------------------+

=20

[minor] For completion, indicate that Protocol 6 is TCP.

=20

587         An example of a Flow Specification encoding for: "all =
packets to

588         10.1.1/24 from 192/8 and port {range [137, 139] or 8080}".

=20

[] Ah...NETBIOS...

=20

[nit] It might be a good idea to number the examples...

=20

=20

...

612       5.  Traffic Filtering

=20

614         Traffic filtering policies have been traditionally =
considered to be

615         relatively static.  Limitations of the static mechanisms =
caused this

616         mechanism to be designed for the three new applications of =
traffic

617         filtering (prevention of traffic-based, denial-of-service =
(DOS)

618         attacks, traffic filtering in the context of BGP/MPLS VPN =
service,

619         and centralized traffic control for SDN/NFV networks) =
requires

620         coordination among service providers and/or coordination =
among the AS

621         within a service provider.  Section 9 has details on the =
limitation

622         of previous mechanisms and why BGP Flow Specification =
provides a

623         solution for to prevent DOS and aid BGP/MPLS VPN filtering =
rules.

=20

[minor] This sentence, without the parenthesis, doesn't seem to make =
sense: "Limitations of the static mechanisms caused this mechanism to be =
designed for the three new applications of traffic filtering requires =
coordination among service providers and/or coordination among the AS =
within a service provider."

=20

[nit] s/solution for to prevent/solution to prevent

=20

625         This Flow Specification NLRI defined above to convey =
information

626         about traffic filtering rules for traffic that should be =
discarded or

627         handled in manner specified by a set of pre-defined actions =
(which

628         are defined in BGP Extended Communities).  This mechanism is

629         primarily designed to allow an upstream autonomous system to =
perform

630         inbound filtering in their ingress routers of traffic that a =
given

631         downstream AS wishes to drop.

=20

[nit] s/This Flow Specification NLRI/The Flow Specification NLRI

=20

=20

...

645         Distribution of the IPv4 Flow Specification is described in

646         Section 6, and distibution of BGP/MPLS traffic Flow =
Specification is

647         described in Section 8.  The traffic filtering actions are =
described

648         in Section 7.

=20

[minor] Section 6 talks about validation, not distribution.

=20

[nit] s/distibution/distribution

=20

=20

650       5.1.  Ordering of Traffic Filtering Rules

=20

652         With traffic filtering rules, more than one rule may match a

653         particular traffic flow.  Thus, it is necessary to define =
the order

654         at which rules get matched and applied to a particular =
traffic flow.

655         This ordering function must be such that it must not depend =
on the

656         arrival order of the Flow Specification's rules and must be

657         consistent in the network.

=20

[clarification] Are "traffic filtering rules" the same thing as "traffic =
filtering actions", or are they more like "Flow Specification's rules"?  =
 You also mention (below) "Flow Specification rules" in the context of =
ordering, so my guess is that "traffic filtering rules" and "Flow =
Specification rules" are equivalent...are they?   In my opinion, there =
are too many ways to refer to the same, or very similar things.  Please =
take advantage of =C2=A72 to help the reader, or at least simplify the =
terminology.

=20

659         The relative order of two Flow Specification rules is =
determined by

660         comparing their respective components.  The algorithm starts =
by

661         comparing the left-most components of the rules.  If the =
types

662         differ, the rule with lowest numeric type value has higher =
precedence

663         (and thus will match before) than the rule that doesn't =
contain that

664         component type.  If the component types are the same, then a =
type-

665         specific comparison is performed (see below) if the types =
are equal

666         the algorithm continues with the next component.

=20

[minor] To be clear: the comparison is done between the component types =
defined in =C2=A74.2...and "left-most" means "first"...

=20

668         For IP prefix values (IP destination or source prefix): If =
the

669         prefixes overlap, the one with the longer prefix-length has =
higher

670         precedence.  If they do not overlap the one with the lowest =
IP value

671         has higher precedence.

=20

[minor] I need you to be more specific when talking about "overlap".  =
Clearly 10.1..0.0/16 <http://10.1.0.0/16>  and 10.1.1.0/24 overlap, then =
the higher precedence would be for the /24, right?  Do 130.0.0.0/16 and =
150..1.1.0/24 <http://150.1.1.0/24>  overlap (they have the first 3 bits =
in common)?  rfc5575 talks about a "common prefix", which is not =
completely clear either, but it could mean at least what is covered by =
the shortest mask (which would be my guess)...

=20

[minor] "prefix-length" is used here, but "prefix length" is used in =
=C2=A74.2.1.  Please be consistent.

=20

[minor] The "-" confused me a little.  By "For IP prefix values...the =
longer prefix-length" do you mean the value of the prefix length, or the =
length of the prefix field?  rfc5575 talks about "more specific", which =
may be easier to understand in this case...

=20

673         For all other component types, unless otherwise specified, =
the

674         comparison is performed by comparing the component data as a =
binary

675         string using the memcmp() function as defined by the ISO C =
standard.

676         For strings with equal lengths the lowest string (memcmp) =
has higher

677         precedence.  For strings of different lengths, the common =
prefix is

678         compared.  If the common prefix is not equal the string with =
the

679         lowest prefix has higher precedence.  If the common prefix =
is equal,

680         the longest string is considered to have higher precedence =
than the

681         shorter one.

=20

[major] Please add a Normative reference for "the memcmp() function as =
defined by the ISO C standard".

=20

[minor] What is the "common prefix"?  Is it the bits that correspond to =
the shorter length?  In this case I think that using "prefix" may be =
confusing.

=20

[minor] If my interpretation is correct, given a common set of rules, =
the longer the Flow Specification the most preferred, right?  Using one =
of the examples in =C2=A74.3, "all packets to 10.1.1/24 from 192/8 and =
port {range [137, 139] or 8080}" would be preferred over "all packets to =
10.1.1/24 from 192/8 and port range [137, 139]"...because when comparing =
the common prefix for the port, the second rule would have the e bit =
set, resulting in a higher prefix, right?

=20

[major] I would like to see some discussion about the management of Flow =
Specifications and their advertisement order from an operational point =
of view.  In the case above, if an operator uses the first rule (only), =
but later decides to allow web traffic and the system advertises the =
second rule, it won't take effect until the first one is withdrawn.  =
This type of operational consideration is not explained in this =
document.

=20

683         The code below shows a Python3 implementation of the =
comparison

684         algorithm.  The full code was tested with Python 3.6.3 and =
can be

685         obtained at https://github.com/stoffi92/flowspec-cmp [1].

=20

[minor] I would prefer to see the code in an Appendix.

=20

[major] We need to include template text about the licensing in the Code =
Component below.  Please take a look at the IETF Trust Legal Provisions =
and add the appropriate text: =
https://trustee.ietf.org/license-info/IETF-TLP-5.pdf

=20

687         <CODE BEGINS>

688         import itertools

689         import ipaddress

=20

691         def flow_rule_cmp(a, b):

692             for comp_a, comp_b in =
itertools.zip_longest(a.components,

693                                                    b.components):

694                 # If a component type does not exist in one rule

695                 # this rule has lower precedence

696                 if not comp_a:

697                     return B_HAS_PRECEDENCE

698                 if not comp_b:

699                     return A_HAS_PRECEDENCE

=20

[] What if the component is not in either?  The lines above look like =
the wrong outcome could be obtained.  Disclaimer: I don't know Python...

=20

=20

...

742       6.  Validation Procedure

...

757         The concept can be extended, in the case of Flow =
Specification NLRI,

758         to allow other validation procedures.

=20

[nit] s/of Flow Specification NLRI/of the Flow Specification NLRI

=20

760         A Flow Specification NLRI must be validated such that it is

761         considered feasible if and only if all of the below is true:

=20

[major] There is no Normative language above, but I think there is a =
contradiction of sorts with the new text below ("Rule a) MAY be =
relaxed...").  The introductory text to the rules is "must =
be...considered feasible if and only if all of the below is true", which =
sounds very strict and specific...but then the Normative exception comes =
in ("MAY be relaxed...rules b) and c)...MUST be disregarded") saying =
that it doesn't matter.  Please reword...perhaps something like: "If a =
destination is present...a Flow Specification MUST be validated this =
way...otherwise..."

=20

763            a) A destination prefix component is embedded in the Flow

764            Specification.

=20

766            b) The originator of the Flow Specification matches the =
originator

767            of the best-match unicast route for the destination =
prefix

768            embedded in the Flow Specification.

=20

[major] What is the "best-match unicast route"?  Please be specific.

=20

770            c) There are no more specific unicast routes, when =
compared with

771            the flow destination prefix, that has been received from =
a

772            different neighboring AS than the best-match unicast =
route, which

773            has been determined in rule b).

=20

775         Rule a) MAY be relaxed by configuration, permitting Flow

776         Specifications that include no destination prefix component. =
 If such

777         is the case, rules b) and c) are moot and MUST be =
disregarded.

=20

[major] This action opens the door to all sorts of things.  I note that =
the Security Considerations section simply mentions it without going =
into more details.

=20

779         By originator of a BGP route, we mean either the BGP =
originator path

780         attribute, as used by route reflection, or the transport =
address of

781         the BGP peer, if this path attribute is not present.

=20

[major] s/BGP originator path attribute, as used by route =
reflection/address of the originator in the ORIGINATOR_ID Attribute =
[RFC4456]   The reference to rfc4456 should be Normative.

=20

[minor] rfc4271 doesn't talk about a "transport addresses".  Instead, it =
talks about the "source IP address".  I know it is the same thing, but =
please be consistent.

=20

783         BGP implementations MUST also enforce that the AS_PATH =
attribute of a

784         route received via the External Border Gateway Protocol =
(eBGP)

785         contains the neighboring AS in the left-most position of the =
AS_PATH

786         attribute.  While this rule is optional in the BGP =
specification, it

787         becomes necessary to enforce it for security reasons.

=20

[major] Is this requirement only for the Flow Specification AFI/SAFI =
pairs, or for all address families (IPv4 in the case of this document)?  =
Why?

=20

[major] [Assuming that the answer to the last question is: "Yes, for all =
AFs"...] Should all the border routers in the AS enforce the first ASN, =
or is the requirement only for routers receiving Flow Specifications?

=20

[major] In the case of receiving Flow Specifications from a neighbor in =
an IXP, it may not be possible to enforce the rule above if a =
"transparent ASN" is being used.  Please include some text/guidance =
about that type of case.  Include it either here or in the Security =
Considerations.

=20

[nit] The mention of security above makes me want to see related =
considerations in =C2=A713/14.

=20

789         The best-match unicast route may change over the time =
independently

790         of the Flow Specification NLRI.  Therefore, a revalidation =
of the

791         Flow Specification NLRI MUST be performed whenever unicast =
routes

792         change.  Revalidation is defined as retesting that clause a =
and

793         clause b above are true.

=20

[major] What about the case where a destination prefix is not included?  =
Besides enforcing the first AS, there isn't any verification specified.  =
What are the consideration about using that option?

=20

795         Explanation:

=20

797         The underlying concept is that the neighboring AS that =
advertises the

798         best unicast route for a destination is allowed to advertise =
flow-

799         spec information that conveys a more or equally specific =
destination

800         prefix.  Thus, as long as there are no more specific unicast =
routes,

801         received from a different neighboring AS, which would be =
affected by

802         that filtering rule.

=20

804         The neighboring AS is the immediate destination of the =
traffic

805         described by the Flow Specification.  If it requests these =
flows to

806         be dropped, that request can be honored without concern that =
it

807         represents a denial of service in itself.  Supposedly, the =
traffic is

808         being dropped by the downstream autonomous system, and there =
is no

809         added value in carrying the traffic to it.

=20

[major] A rogue router may request the traffic to be dropped.  While the =
local AS is simply reacting to the neighbor's request, the action can =
still result in a DoS.  I would like to see rogue router scenarios =
reflected in the Security Considerations.

=20

[major] All this section seems to assume that flows are controlled =
(dropped/redirected) between ASes...but the actions can also be =
triggered from inside an AS.  What are the considerations in that case?  =
Why isn't iBGP explicitly considered?

=20

=20

811       7.  Traffic Filtering Actions

...

820         Implementations SHOULD provide mechanisms that map an =
arbitrary BGP

821         community value (normal or extended) to filtering actions =
that

822         require different mappings in different systems in the =
network.  For

823         instance, providing packets with a worse-than-best-effort, =
per-hop

824         behavior is a functionality that is likely to be implemented

825         differently in different systems and for which no standard =
behavior

826         is currently known.  Rather than attempting to define it =
here, this

827         can be accomplished by mapping a user-defined community =
value to

828         platform-/network-specific behavior via user configuration.

=20

[major] While this paragraph sounds technically correct, I think it =
doesn't belong in this document because it (randomly) talks about a =
different, yet tangentially related, topic.  Also, it basically says =
"SHOULD provide a mechanism to take arbitrary actions...which are not =
defined here", so it is not complete from a Normative point of view.  I =
would prefer if we took this paragraph out.

=20

830         The default action for a traffic filtering Flow =
Specification is to

831         accept IP traffic that matches that particular rule.

=20

833         This document defines the following extended communities =
values shown

834         in Table 2 in the form 0x8xnn where nn indicates the =
sub-type.

835         Encodings for these extended communities are described =
below.

=20

[minor] The "0x8xnn" format doesn't explain what x indicates.  Perhaps =
it would be better for the format to match the IANA section and include, =
for example, 0xttss for type and sub-type...with the corresponding =
change in Table 2.

=20

837         =
+-----------+----------------------+--------------------------------+

838         | community | action               | encoding                =
       |

839         =
+-----------+----------------------+--------------------------------+

840         | 0x8006    | traffic-rate-bytes   | 2-byte ASN, 4-byte =
float       |

841         | TBD       | traffic-rate-packets | 2-byte ASN, 4-byte =
float       |

842         | 0x8007    | traffic-action       | bitmask                 =
       |

843         | 0x8008    | rt-redirect AS-2byte | 2-octet AS, 4-octet =
value      |

844         | 0x8108    | rt-redirect IPv4     | 4-octet IPv4 addres, =
2-octet   |

845         |           |                      | value                   =
       |

846         | 0x8208    | rt-redirect AS-4byte | 4-octet AS, 2-octet =
value      |

847         | 0x8009    | traffic-marking      | DSCP value              =
       |

848         =
+-----------+----------------------+--------------------------------+

=20

850                     Table 2: Traffic Action Extended Communities

=20

[minor] The Table contains terms that have not been defined...  It would =
be ideal if the Table contained a forward reference to the section where =
each action is discussed....or at least a general statement about the =
details in the upcoming sub-sections...

=20

852         Some traffic action communities may interfere with each =
other.

853         Section 7.6 of this specification provides general =
considerations on

854         such traffic action interference.  Any additional definition =
of a

855         traffic actions specified by additional standards documents =
or vendor

856         documents MUST specify if the traffic action interacts with =
an

857         existing traffic actions, and provide error handling per =
[RFC7606].

=20

[nit] s/definition of a traffic actions/definition of traffic actions

=20

[major] "Any additional definition of a traffic actions specified by =
additional standards documents or vendor documents MUST specify..."  We =
really can't mandate what vendor documents say.   s/additional =
definition of a traffic actions specified by additional standards =
documents or vendor documents MUST specify/additional definition of a =
traffic action MUST specify

=20

[major] "MUST specify if the traffic action interacts with an existing =
traffic actions"  I think you meant something like: "MUST specify the =
action to take if..."

=20

[major] "Any additional definition of a traffic actions...MUST...provide =
error handling per [RFC7606]."  rfc7606 already indicates what to do =
about a malformed Extended Community attribute, which is how other =
actions would presumably be specified.   rfc7606 only mandates error =
specifications for new attributes.  What are your expectations here?

=20

859         Multiple traffic actions may be present for a single NLRI.  =
The

860         traffic actions are processed in ascending order of the =
sub-type

861         found in the BGP Extended Communities.  If not all of them =
can be

862         processed the filter SHALL NOT be applied at all (for =
example: if for

863         a given flow there are the action communities =
rate-limit-bytes and

864         traffic-marking attached, and the plattform does not support =
one of

865         them also the other shall not be applied for that flow).

=20

[minor] This paragraph is related to =C2=A77.6 (Considerations on =
Traffic Action Interference).  Consider putting all the related =
information together.

=20

[major] "traffic actions are processed in ascending order of the =
sub-type"  Several of the communities have the same sub-type; if more =
than one is present, which one should be processed first?

=20

[major] What should a receiver do if multiple of the same community =
(type and sub-type) are included in the UPDATE?  Would that be also =
considered interference?

=20

[major] What does "processed" mean?  Let me explain... The example is =
about not being able to support an action.  What about not being able to =
apply the action because, for example, the next hop is not reachable?  =
Would that qualify as not being able to "process" the action?  If other =
redirect traffic rules are included (with perhaps an alternate next =
hop), would the answer be different?

=20

[nit] Make the example a sentence on it's own: eliminate the =
parenthesis.

=20

[minor] s/rate-limit-bytes/traffic-rate-bytes (0x8006)

=20

[minor] s/traffic-marking/traffic-marking (0x8009)

=20

[nit] s/plattform/platform

=20

[major] "If not all of them can be processed the filter SHALL NOT be =
applied..."  Should they be forwarded?  Is this an example of =
"interfering flow actions" (=C2=A77.6)?

=20

867         All traffic actions are specified as transitive BGP Extended

868         Communities.

=20

870       7.1.  Traffic Rate in Bytes (traffic-rate-bytes) sub-type 0x06

...

888         Interferes with: No other BGP Flow Specification traffic =
action in

889         this document.

=20

[minor] The definition of interference (=C2=A77.6) uses "more than one =
conflicting traffic-rate action" as part of it.  So it seems that =
traffic-rate-bytes and traffic-rate-packets may interfere with each =
other.

=20

891       7.2.  Traffic Rate in Packets (traffic-rate-packets) sub-type =
TBD

=20

[major] Because the "traffic actions are processed in ascending order of =
the sub-type" (=C2=A77), what is the intent for this action?  How should =
IANA assign it?  I assume that the intent might be to process it instead =
of traffic-rate-bytes (assuming only one might be present)...  Please be =
clear in the instructions to IANA (in =C2=A712.3).  Note that Table 7 =
requests the assignment from the "Generic Transitive Experimental Use =
Extended Community Sub-Types" registry, which seems to limit the =
assignment choices.  Having said all that, I would have assumed that =
this action would be a variation of the 0x06 sub-type, but with a =
different type...

=20

=20

...

901         Interferes with: No other BGP Flow Specification traffic =
action in

902         this document.

=20

[minor] The definition of interference (=C2=A77.6) uses "more than one =
conflicting traffic-rate action" as part of it.  So it seems that =
traffic-rate-bytes and traffic-rate-packets may interfere with each =
other.

=20

904       7.3.  Traffic-action (traffic-action) sub-type 0x07

=20

906         The traffic-action extended community consists of 6 bytes of =
which

907         only the 2 least significant bits of the 6th byte (from left =
to

908         right) are currently defined.

=20

910              40  41  42  43  44  45  46  47

911             +---+---+---+---+---+---+---+---+

912             |        reserved       | S | T |

913             +---+---+---+---+---+---+---+---+

=20

[minor] s/reserved/Traffic Action Fields   It would be nice if the =
Figure showed that all the bits (not just the ones in the last octet) =
are part of the same field.

=20

[nit] Please add a Figure number..

=20

915         where S and T are defined as:

=20

917         o  T: Terminal Action (bit 47): When this bit is set, the =
traffic

918            filtering engine will apply any subsequent filtering =
rules (as

919            defined by the ordering procedure).  If not set, the =
evaluation of

920            the traffic filter stops when this rule is applied.

=20

[minor] According to the processing order and the values from Table 2, =
not setting the bit would effectively cause only the traffic-rate-bytes =
(0x8006) to ever be applied.  Is that the correct interpretation?

=20

[minor] If the T bit is not set, can a router drop the communities that =
are not going to be applied...or should they all be propagated?

=20

[major] Clearly, a rogue router could unset the bit before =
propagating...

=20

922         o  S: Sample (bit 46): Enables traffic sampling and logging =
for this

923            Flow Specification.

=20

[major] If the bit is not set, would sampling/logging be disabled?  IOW, =
is this an on/off switch, or is just the on action valid?

=20

925         o  reserved: should always be set to 0 by the originator and =
not be

926            evaluated by the receiving BGP speaker.

=20

[major] There is a registry for these bits.  s/reserved/Traffic Action =
Fields

=20

=20

...

934         Interferes with: No other BGP Flow Specification traffic =
action in

935         this document.

=20

[minor] Based on the definition in =C2=A77.6, I would have thought that =
this action, with the T bit unset, would interfere with other actions =
that will now not be applied.

=20

=20

937       7.4.  RT Redirect (rt-redirect) sub-type 0x08

...

948         It should be noted that the low-order nibble of the =
Redirect's Type

949         field corresponds to the Route Target Extended Community =
format field

950         (Type).  (See Sections 3.1, 3.2, and 4 of [RFC4360] plus =
Section 2 of

951         [RFC5668].)  The low-order octet (Sub-Type) of the Redirect =
Extended

952         Community remains 0x08 for all three encodings of the BGP =
Extended

953         Communities (AS 2-byte, AS 4-byte, and IPv4 address).

=20

[nit] I think that this whole paragraph is not needed....and it actually =
may confuse people.  I recommend deleting it.

=20

955         Interferes with: All other redirect functions.

=20

[minor] What other redirect functions?  The only ones defined are in =
this section.

=20

=20

957       7.5.  Traffic Marking (traffic-marking) sub-type 0x09

=20

959         The traffic marking extended community instructs a system to =
modify

960         the DSCP bits of a transiting IP packet to the corresponding =
value.

961         This extended community is encoded as a sequence of 5 zero =
bytes

962         followed by the DSCP value encoded in the 6 least =
significant bits of

963         6th byte.

=20

[major] What action (if any) should a receiver take if the "5 zero =
bytes" are not (all) set to 0?  Maybe include something like: "MUST be =
ignored when received...".

=20

965         Interferes with: No other BGP Flow Specification traffic =
action in

966         this document.

=20

968       7.6.  Considerations on Traffic Action Interference

=20

970         Since traffic actions are represented as BGP extended =
community

971         values, traffic actions may interfere with each other (ie. =
there may

972         be more than one conflicting traffic-rate action associated =
with a

973         single flow-filter).  Traffic action interference has no =
impact on

974         BGP propagation of flow filters (all communities are =
propagated

975         according to policies).

=20

[nit] s/ie./e.g.   I'm assuming it is an example and not the only case.

=20

[minor] Is "Traffic action interference" only the case when actions =
describe conflicting actions?  For example, different traffic rates.  =
Specifically, are actions that can't be applied (as described on =
=C2=A77), also considered as interference?

=20

977         If a flow filter associated with interfering flow actions is =
selected

978         for packet forwarding, it is a implementation decision which =
of the

979         interfering traffic actions are selected.  Implementors of =
this

980         specification SHOULD document the behaviour of their =
implementation

981         in such cases.

=20

[major] IOW, deployment of a set of "interfering flow actions" could =
result in inconsistent behavior in the network.  Could a rogue BGP =
speaker advertise (or even add/delete) actions to a Flow Specification =
and cause unexpected results?  I guess that depending on what the action =
is, there could be a significant effect.  I think this is a =
vulnerability that should be called out explicitly.  Thinking a little =
bit more...there are two vulnerabilities: (1) add/delete in the normal =
case (even with consistent behavior), and (2) add/delete to exploit a =
specific behavior of a node in the network.

=20

983         If required, operators are encouraged to make use of the BGP =
policy

984         framework supported by their implementation in order to =
achieve a

985         predictable behaviour (ie. match - replace - delete =
communities on

986         administrative boundaries).

=20

[minor] "If required..."  When it is not required?  IOW, I think that =
those two words are not needed.

=20

=20

988       8.  Dissemination of Traffic Filtering in BGP/MPLS VPN =
Networks

=20

990         Provider-based Layer 3 VPN networks, such as the ones using =
a BGP/

991         MPLS IP VPN [RFC4364] control plane, may have different =
traffic

992         filtering requirements than Internet service providers.  But =
also

993         Internet service providers may use those VPNs for scenarios =
like

994         having the Internet routing table in a VRF, resulting in the =
same

995         traffic filtering requirements as defined for the global =
routing

996         table environment within this document.  This document =
proposes an

997         additional BGP NLRI type (AFI=3D1, SAFI=3D134) value, which =
can be used

998         to propagate traffic filtering information in a BGP/MPLS VPN

999         environment.

=20

[nit] s/proposes/defines (or maybe specifies)

=20

1001       The NLRI format for this address family consists of a =
fixed-length

1002       Route Distinguisher field (8 bytes) followed by a Flow =
Specification,

1003       following the encoding defined above in Section 4.2 of this =
document.

1004       The NLRI length field shall include both the 8 bytes of the =
Route

1005       Distinguisher as well as the subsequent Flow Specification.

=20

[minor] s/Flow Specification, following the encoding defined above in =
Section 4.2 of this document./Flow Specification (Section 4.2).

=20

=20

...

1017       Propagation of this NLRI is controlled by matching Route =
Target

1018       extended communities associated with the BGP path =
advertisement with

1019       the VRF import policy, using the same mechanism as described =
in "BGP/

1020       MPLS IP VPNs" [RFC4364]..

=20

[nit] s/"BGP/MPLS IP VPNs"/BGP/MPLS IP VPNs

=20

1022       Flow Specification rules received via this NLRI apply only to =
traffic

1023       that belongs to the VRF(s) in which it is imported.  By =
default,

1024       traffic received from a remote PE is switched via an MPLS =
forwarding

1025       decision and is not subject to filtering.

=20

1027       Contrary to the behavior specified for the non-VPN NLRI, flow =
rules

1028       are accepted by default, when received from remote PE =
routers.

=20

[major] The only other mention of "flow rule" is in the Introduction =
when referring to the validation of external Flow Specifications, which =
seems to then map to =C2=A76...but the next sub-section says that those =
procedures apply.  What am I missing?

=20

=20

1030     8.1.  Validation Procedures for BGP/MPLS VPNs

=20

1032       The validation procedures are the same as for IPv4.

=20

1034     8.2.  Traffic Actions Rules

=20

1036       The traffic action rules are the same as for IPv4.

=20

[nit] These 2 sub-sections could simply be covered by a couple of =
sentences...

=20

=20

1038     9.  Limitations of Previous Traffic Filtering Efforts

=20

[major] This section reads like a justification...  I think it would be =
a better fit as a subsection of the Introduction.

=20

1040     9.1.  Limitations in Previous DDoS Traffic Filtering Efforts

...

1052       Several techniques are currently used to control traffic =
filtering of

1053       DoS attacks.  Among those, one of the most common is to =
inject

1054       unicast route advertisements corresponding to a destination =
prefix

1055       being attacked (commonly known as remote triggered blackhole =
RTBH).

1056       One variant of this technique marks such route advertisements =
with a

1057       community that gets translated into a discard Next-Hop by the

1058       receiving router.  Other variants attract traffic to a =
particular

1059       node that serves as a deterministic drop point.

=20

[minor] Please add Informative references to rfc3882, rfc5635, =
rfc7999...

=20

=20

...

1103     10.  Traffic Monitoring

=20

1105       Traffic filtering applications require monitoring and traffic

1106       statistics facilities.  While this is an =
implementation-specific

1107       choice, implementations SHOULD provide:

=20

1109       o  A mechanism to log the packet header of filtered traffic.

=20

1111       o  A mechanism to count the number of matches for a given =
flow

1112          specification rule.

=20

[minor] Is there any relationship between this section and the S bit in =
=C2=A77.3?

=20

=20

1114     11.  Error-Handling and Future NLRI Extensions

=20

[major] Suggestion: this section should be limited to describing what a =
malformed traffic action extended community is, and then simply point to =
rfc7606, which already covers the rest.  See more comments below.

=20

[nit] The two topics covered here seem unrelated...

=20

1116       In case BGP encounters an error in a Flow Specification =
UPDATE

1117       message it SHOULD treat this message as Treat-as-withdraw =
according

1118       to [RFC7606] Section 2.

=20

[major] The SHOULD above with the communities-related errors described =
below are in conflict with rfc7606, which says this: "An UPDATE message =
with a malformed Extended Community attribute SHALL be handled using the =
approach of "treat-as-withdraw"."

=20

1120       Possible reasons for an error are (for more reasons see also

1121       [RFC7606]):

=20

1123       o  Incorrect implementation of this specification - the =
encoding/

1124          decoding of the NLRI or traffic action =
extended-communities do not

1125          comply with this specification.

=20

[major] Related to the NLRI, rfc7606 says that "in order to use the =
approach of "treat-as-withdraw", the entire NLRI field and/or the =
MP_REACH_NLRI and MP_UNREACH_NLRI attributes need to be successfully =
parsed...  If this is not possible...that the "session reset" approach =
(or the "AFI/SAFI disable" approach) MUST be followed."

=20

[major] For the Extended Communities...  The "incorrect implementation" =
basically means that the encoding is wrong, right?  But is the part =
about "comply with this specification" necessary?  Other traffic action =
extended communities (defined elsewhere) might be received.  I would =
rather if the text above talked about malformed (to match the language =
in rfc7606) traffic action extended communities in general (not just the =
ones in this specification).

=20

1127       o  Unknown Flow Specification extensions - The sending party =
has

1128          implemented a Flow Specification NLRI extension unknown to =
the

1129          receiving party.

=20

[major] This treatment of unknown extensions is in conflict with the =
text in =C2=A74.2: "If a given component type within a prefix in =
unknown, the prefix in question cannot be used for traffic filtering =
purposes by the receiver... However, for the purposes of BGP route =
propagation, this prefix should still be transmitted since BGP route =
distribution is independent on NLRI semantics."  IOW, =
"treat-as-withdraw" is not compatible with forwarding UPDATES.

=20

1131       In order to facilitate future extensions of the Flow =
Specification

1132       NLRI, such extensions SHOULD specify a way to encode a =
"always-true"

1133       match condition within the newly introduced components..  =
This match

1134       condition can be used to propagate (and apply) certain =
filters only

1135       if a specific extension is known to the implemenation.

=20

[nit] s/a "always-true"/an "always-true"

=20

[minor] What does "always-true" mean?

=20

[major] How come this document doesn't follow the advice about the =
"always-true" match condition?

=20

[nit] s/implemenation/implementation

=20

=20

...

1141     12.1.  AFI/SAFI Definitions

=20

1143       IANA maintains a registry entitled "SAFI Values".  For the =
purpose of

1144       this work, IANA updated the registry and allocated two =
additional

1145       SAFIs:

=20

[nit] Even though the text will probably end up as written, it doesn't =
ask IANA for anything: it assumes that the work is done.  I would prefer =
it if the text was worded as a request.  It may not be an issue for =
IANA, so there's no need to change anything, unless they say so.

=20

1147       =
+-------+------------------------------------------+----------------+

1148       | Value | Name                                     | =
Reference      |

1149       =
+-------+------------------------------------------+----------------+

1150       | 133   | IPv4 dissemination of Flow Specification | [this    =
      |

1151       |       | rules                                    | =
document]      |

1152       | 134   | VPNv4 dissemination of Flow              | [this    =
      |

1153       |       | Specification rules                      | =
document]      |

1154       =
+-------+------------------------------------------+----------------+

=20

[major] It's not clear to me (because there's no explicit request) if =
the intent is to add this document as a reference, or to replace the one =
to rfc5575.  I would like you to be explicit.

=20

1156                          Table 3: Registry: SAFI Values

=20

1158     12.2.  Flow Component Definitions

...

1184       In order to manage the limited number space and accommodate =
several

1185       usages, the following policies defined by [RFC8126] used:

=20

[nit] s/[RFC8126] used/[RFC8126] are used

=20

1187                 +--------------+-------------------------------+

1188                 | Range        | Policy                        |

1189                 +--------------+-------------------------------+

1190                 | 0            | Invalid value                 |

1191                 | [1 .. 12]    | Defined by this specification |

1192                 | [13 .. 127]  | Specification required        |

1193                 | [128 .. 255] | First Come First Served       |

1194                 +--------------+-------------------------------+

=20

[major] 0 is not really a range...and it's Invalid, so it shouldn't be =
part of the Table detailing the registration policies.  BTW, I couldn't =
find the text where 0 is declared Invalid -- please add some text to =
=C2=A74.2.  Move 0 to Table 4.

=20

[minor] Besides the fact that "Defined by this specification" is not a =
Policy, this table doesn't change anything in the current registry; it =
is not needed.

=20

1196                    Table 5: Flow Spec Component Types Policies

=20

1198       The specification of a particular "Flow Spec Component Type" =
must

1199       clearly identify what the criteria used to match packets =
forwarded by

1200       the router is.  This criteria should be meaningful across =
router hops

1201       and not depend on values that change hop-by-hop such as TTL =
or Layer

1202       2 encapsulation.

=20

[minor] This paragraph doesn't belong in the IANA section.  It seems to =
be laying out the groundwork for new components...so it belongs =
somewhere else.  Should any of the language be Normative?

=20

=20

1204     12.3.  Extended Community Flow Specification Actions

=20

1206       The Extended Community Flow Specification Action types =
defined in

1207       this document consist of two parts:

=20

1209          Type (BGP Transitive Extended Community Type)

=20

1211          Sub-Type

=20

1213       For the type-part, IANA maintains a registry entitled "BGP =
Transitive

1214       Extended Community Types".  For the purpose of this work =
(Section 7),

1215       IANA updated the registry to contain the values listed below:

=20

[major] The range is defined in the registry as "0x80-0x8f            =
Reserved for Experimental Use".  According to rfc8126, "IANA does not =
record assignments from registries or ranges with this policy".

=20

I don't know why 0x80 was the first value chosen; it looks like it was =
first used in draft-marques-idr-flow-spec-01 (2004), while the =
corresponding Extended Communities draft =
(draft-ietf-idr-bgp-ext-communities-07) already indicated that the range =
was for Experimental Use.  I guess just lack of sync...  But then I also =
don't understand how/why IANA ended up with the information in the =
Registry....maybe because the sub-types are not for Experimental Use -- =
hmmm, which sounds contradictory to me.

=20

The reason/history doesn't matter anymore, but the current use does.  =
The mechanism described in this document is clearly not experimental.  =
Given that changing the Type values is not an option because of the =
deployed base, etc.., then I think we should clean up the Registry and =
move 0x80-0x82 from the Experimental Use range to the FCFS range.  This =
change would mean an Update to rfc7153.

=20

To simplify the process, the Update can be done in this document.  =
However, I think that there's some confusion with these types apparently =
being associated only with Flow Specifications, when they are labeled as =
Generic.  IOW, ideally the issue would be corrected independently...

=20

=20

1217       =
+-------+-----------------------------------------------+-----------+

1218       | Type  | Name                                          | =
Reference |

1219       | Value |                                               |     =
      |

1220       =
+-------+-----------------------------------------------+-----------+

1221       | 0x80  | Generic Transitive Experimental Use Extended  | =
[RFC7153] |

1222       |       | Community (Sub-Types are defined in the       |     =
      |

1223       |       | "Generic Transitive Experimental Use Extended |     =
      |

1224       |       | Community Sub-Types" registry)                |     =
      |

1225       | 0x81  | Generic Transitive Experimental Use Extended  | =
[this     |

1226       |       | Community Part 2 (Sub-Types are defined in    | =
document] |

1227       |       | the "Generic Transitive Experimental Use      | =
[See      |

1228       |       | Extended Community Part 2 Sub-Types"          | =
Note-1]   |

1229       |       | Registry)                                     |     =
      |

1230       | 0x82  | Generic Transitive Experimental Use Extended  | =
[this     |

1231       |       | Community Part 3 (Sub-Types are defined in    | =
document] |

1232       |       | the "Generic Transitive Experimental Use      | =
[See      |

1233       |       | Extended Community Part 3 Sub-Types"          | =
Note-1]   |

1234       |       | Registry)                                     |     =
      |

1235       =
+-------+-----------------------------------------------+-----------+

=20

1237          Table 6: Registry: Generic Transitive Experimental Use =
Extended

1238                                  Community Types

=20

[major] In line with Updating the registry and the intent, the names of =
the Types/Registries should not include the word "experimental" to avoid =
any further confusion.

=20

1240       Note-1: This document obsoletes RFC7674.

=20

[minor] Putting the reference to this note in the Table seems to be =
asking IANA to add a note there too...which I would think is not the =
case.  This goes back to the intent of whether the reference to this =
document should replace what is there or simply be added.

=20

=20

...

1292       The "traffic-action" extended community (Section 7.3) defined =
in this

1293       document has 46 unused bits, which can be used to convey =
additional

1294       meaning.  IANA created and maintains a new registry entitled:

1295       "Traffic Action Fields".  These values should be assigned via =
IETF

1296       Review rules only.  The following traffic-action fields have =
been

1297       allocated:

=20

[major] It needs to be mentioned somewhere that the reference for the =
whole registry (not just the values below) should be moved to this =
document.

=20

=20

...

1308     13.  Security Considerations

=20

1310       Inter-provider routing is based on a web of trust.  =
Neighboring

1311       autonomous systems are trusted to advertise valid =
reachability

1312       information.  If this trust model is violated, a neighboring

1313       autonomous system may cause a denial-of-service attack by =
advertising

1314       reachability information for a given prefix for which it does =
not

1315       provide service.

=20

[major] References to Origin Validation (rfc6811) and BGPSec (rfc8205) =
should be mentioned as possible mitigation...with maybe a comment about =
the current deployment status.

=20

1317       As long as traffic filtering rules are restricted to match =
the

1318       corresponding unicast routing paths for the relevant =
prefixes, the

1319       security characteristics of this proposal are equivalent to =
the

1320       existing security properties of BGP unicast routing.  =
However, this

1321       document also specifies traffic filtering actions that may =
need

1322       custom additional verification on the receiver side.  See =
Section 14.

=20

[major] In general, Flow Specifications have a one-AS-hop propagation =
model, right?  This means that the security properties are different =
because (1) unicast routing propagates multiple hops, and (2) the intent =
of the "Route Origin ASN" (rfc6811) is not reflected in the request to =
rate-limit, or even drop (!) traffic to a destination.  Yes, it is all =
based on trust...but different.  For example, Origin Validation wouldn't =
be available for Flow Specifications.

=20

1324       Where it is not the case, this would open the door to further =
denial-

1325       of-service attacks.

=20

[major] Like what?  What are possible mitigations?  Just saying that the =
door is open is not enough.

=20

=20

...

1337     14.  Operational Security Considerations

=20

[minor] If you ask me, this section should be rolled into the last one: =
I think all the considerations (in both sections) are really =
operational...

=20

1339       While the general verification of the traffic filter NLRI is

1340       specified in this document (Section 6) the traffic filtering =
actions

1341       received by a third party may need custom verification or =
filtering.

1342       In particular all non traffic-rate actions may allow a third =
party to

1343       modify packet forwarding properties and potentially gain =
access to

1344       other routing-tables/VPNs or undesired queues.  This can be =
avoided

1345       by proper filtering of action communities at network borders =
and by

1346       mapping user-defined communities (see Section 7) to expose =
certain

1347       forwarding properties to third parties.

=20

[minor] I didn't get this last part...  I understand filtering, but =
didn't quite understand how the mapping of communities would help.

=20

1349       Since verfication of the traffic filtering NLRI is tied to =
the

1350       announcement of the best unicast route, a unfiltered address =
space

1351       hijack (e.g. advertisement of a more specific route) may =
cause this

1352       verification to fail and consequently prevent Flow =
Specification

1353       filters from being accepted by a peer.

=20

[nit] s/verfication/verification

=20

[nit] s/a unfiltered/an unfiltered

=20

[minor] Again, mention Origin Validation as possible mitigation.

=20

1355     15.  Original authors

=20

1357       Barry Greene, Pedro Marques, Jared Mauch, Danny McPherson, =
and

1358       Nischal Sheth were authors on RFC5575, and therefore are =
contributing

1359       authors on this document.

=20

[minor] To be in line with rfc7322, this section should be renamed to =
"Contributors".

=20

=20

1361     16.  Acknowledgements

...

1370       A packet rate flowspec action was also discribed in a =
flowspec

1371       extention draft and the authors like to thank Wesley Eddy, =
Justin

1372       Dailey and Gilbert Clark for their work.

=20

[nit] This is the first time that "flowspec" is used.  Not a bad =
thing...just an observation that we went through the whole document =
without using the colloquial name flowspec.

=20

[nit] s/discribed/described

=20

[nit] s/extention/extension

=20

1374       Additional the authors would like to thank Alexander =
Mayrhofer,

1375       Nicolas Fevrier, Job Snijders, Jeffrey Haas and Adam Chappell =
for

1376       their comments and review.

=20

[nit] s/Additional/Additionally,

=20

=20

1378     17.  References

=20

1380     17.1.  Normative References

=20

1382       [IEEE.754.1985]

1383                  IEEE, "Standard for Binary Floating-Point =
Arithmetic",

1384                  IEEE 754-1985, August 1985.

=20

[minor] IEEE has revised this spec twice, the most current revision was =
published earlier this year.  Should the reference to the 1985 version =
be kept?  Is there a reason not to point generically to IEEE 754, =
instead of to a specific version?

=20

=20

...

1419       [RFC5668]  Rekhter, Y., Sangli, S., and D. Tappan, "4-Octet =
AS

1420                  Specific BGP Extended Community", RFC 5668,

1421                  DOI 10.17487/RFC5668, October 2009,

1422                  <https://www.rfc-editor.org/info/rfc5668>.

=20

[minor] I don't think this needs to be a Normative reference.

=20

=20

...

1458     Appendix A.  Comparison with RFC 5575

...

1464          Section 1 introduces the Flow Specification NLRI.  In =
RFC5575 this

1465          NLRI was defined as an opaque-key in BGPs database.  This

1466          specification has removed all references to a opaque-key =
property.

1467          BGP is able understand the NLRI encoding.  This change =
also

1468          resulted in a new section regarding error-handling and

1469          extensibility (Section 11).

=20

[nit] s/able understand/able to understand

=20

=20


------=_NextPart_000_009F_01D56F8B.0C7725D0
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta =
http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8"><meta =
name=3DGenerator content=3D"Microsoft Word 14 (filtered =
medium)"><style><!--
/* Font Definitions */
@font-face
	{font-family:Helvetica;
	panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
h1
	{mso-style-priority:9;
	mso-style-link:"Heading 1 Char";
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:24.0pt;
	font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
span.apple-tab-span
	{mso-style-name:apple-tab-span;}
span.EmailStyle18
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.Heading1Char
	{mso-style-name:"Heading 1 Char";
	mso-style-priority:9;
	mso-style-link:"Heading 1";
	font-weight:bold;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:1421097900;
	mso-list-type:hybrid;
	mso-list-template-ids:-225967788 67698705 67698713 67698715 67698703 =
67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-text:"%1\)";
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level3
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level4
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level5
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level6
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level7
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level8
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level9
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l1
	{mso-list-id:1636450441;
	mso-list-type:hybrid;
	mso-list-template-ids:334125310 67698689 67698691 67698693 67698689 =
67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:38.25pt;
	text-indent:-.25in;
	font-family:Symbol;}
@list l1:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:74.25pt;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l1:level3
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:110.25pt;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l1:level4
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:146.25pt;
	text-indent:-.25in;
	font-family:Symbol;}
@list l1:level5
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:182.25pt;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l1:level6
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:218.25pt;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l1:level7
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:254.25pt;
	text-indent:-.25in;
	font-family:Symbol;}
@list l1:level8
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:290.25pt;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l1:level9
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:326.25pt;
	text-indent:-.25in;
	font-family:Wingdings;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-US link=3Dblue =
vlink=3Dpurple style=3D'word-wrap:break-word'><div =
class=3DWordSection1><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>John: <o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>&lt;author hat on&gt; <o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>The author team is close to finishing its work on =
RFC5575bis.=C2=A0=C2=A0 Alvaro asks one clear questions of the chairs =
=E2=80=93should we include the v6 portion into the revision of =
RFC5575bis. =C2=A0=C2=A0=C2=A0In my earlier discussion on the list as WG =
Chair, I indicated that the WG had asked that the RFC5575bis would not =
include the v6 version.=C2=A0 =C2=A0=C2=A0<o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>Alvaro has clearly indicated that the RFC5575bis would appear at the =
IESG with the v6 version.=C2=A0=C2=A0 <o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>I would that you query the WG regarding:<o:p></o:p></span></p><h1 =
style=3D'margin-left:38.25pt;text-indent:-.25in;mso-line-height-alt:0pt;m=
so-list:l1 level1 lfo2'><![if !supportLists]><span =
style=3D'font-size:10.0pt;font-family:Symbol;color:black;font-weight:norm=
al'><span style=3D'mso-list:Ignore'>=C2=B7<span style=3D'font:7.0pt =
"Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
</span></span></span><![endif]><span dir=3DLTR></span><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>RFC5575bis + </span><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'>draft-ietf-idr-flow-spec-v6-09.txt =
<o:p></o:p></span></h1><h1 =
style=3D'margin-left:38.25pt;text-indent:-.25in;mso-line-height-alt:0pt;m=
so-list:l1 level1 lfo2'><![if !supportLists]><span =
style=3D'font-size:10.0pt;font-family:Symbol;color:black;font-weight:norm=
al'><span style=3D'mso-list:Ignore'>=C2=B7<span style=3D'font:7.0pt =
"Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
</span></span></span><![endif]><span dir=3DLTR></span><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'>RFC5575bis with the v6 specification included. =
<o:p></o:p></span></h1><h1 style=3D'mso-line-height-alt:0pt'><span =
style=3D'font-size:10.0pt;font-family:"Courier New";color:black'>Thank =
you, <o:p></o:p></span></h1><h1 style=3D'mso-line-height-alt:0pt'><span =
style=3D'font-size:10.0pt;font-family:"Courier New";color:black'>Susan =
Hares <o:p></o:p></span></h1><h1 style=3D'mso-line-height-alt:0pt'><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'><o:p>&nbsp;</o:p></span></h1><p =
class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><o:p>&nbsp;</o:p></span></p><div><div =
style=3D'border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in'><p class=3DMsoNormal><b><span =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span>=
</b><span style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'> =
Idr [mailto:idr-bounces@ietf.org] <b>On Behalf Of </b>Alvaro =
Retana<br><b>Sent:</b> Tuesday, September 10, 2019 12:09 =
PM<br><b>To:</b> draft-ietf-idr-rfc5575bis@ietf.org<br><b>Cc:</b> =
idr@ietf. org; idr-chairs@ietf.org<br><b>Subject:</b> [Idr] AD Review of =
draft-ietf-idr-rfc5575bis-17<o:p></o:p></span></p></div></div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>Dear =
authors:<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>I just =
finished reading this document.&nbsp; Thank you for the work in =
clarifying and updating rfc5575!&nbsp; Many of my comments (see below) =
are related to what I think is still missing clarity, or lack of it in =
some of the new text.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>Besides =
the specific comments, I have some larger issues that I want to detail =
here.&nbsp; The first 2 are directed at the Shepherd and =
Chairs.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>(A) =
IPR<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>The =
Shepherd report, the datatracker and the WGLC thread [1] all point at no =
existing IPR.&nbsp; However, several declarations do exist...for rfc5575 =
[2].&nbsp; IMO, the changes between rfc5575 and this document are not =
that significant to assume that the declarations don't apply..&nbsp; I =
also note that none of the original authors mentioned as =
&quot;contributing authors&quot; (=C2=A715) replied to the IPR call =
during the WGLC..<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>Jie: As =
Shepherd, can you please file a third-party disclosure [3] pointing at =
the rfc5575 disclosures?&nbsp; Once that is done I will send a message =
to the WG to consider the information -- I don't expect any issues, but =
it has to be done. I'll need you to also update the Shepherd =
writeup.&nbsp; Thanks!<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>(B) =
Support for IPv6<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>I =
understand why this document only focuses on IPv4.&nbsp; While the text =
points at draft-ietf-idr-flow-spec-v6, that draft has been expired for =
over a year!&nbsp; What is the plan to move that work forward?&nbsp; It =
looks like there may already be implementations in place =
[4].<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>We all =
know this question will come up during IESG Evaluation, specially in =
light of the IAB Statement on IPv6 [5] and the fact that there was a =
related DISCUSS when rfc5575 was first processed [6] -- at that time =
(2009!) the objection was cleared with the promise that an IPv6 document =
would be forthcoming.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>We =
should have a plan in place by the time this document makes it to the =
IESG Telechat.&nbsp; It would have been ideal to publish both at the =
same time, but I'll settle for the ability to (at least) point at the =
WGLC (which has been brought up before =
[7]).<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>(C) IANA =
Considerations<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>(C1) =
traffic-rate-packets<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>The =
instructions to IANA for the assignment of the traffic-rate-packets =
sub-type are not clear.&nbsp; The existing assignments and the =
requirement that &quot;traffic actions are processed in ascending order =
of the sub-type&quot; (=C2=A77) seem to imply that a specific order for =
this new action may be intended.&nbsp; Unless explicitly instructed, =
IANA may not assign a value that aligns with that intent. &nbsp;[See =
related comments in =C2=A77.2.]<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>(C2) =
Experimental Use Ranges<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>This =
document uses ranges from the &quot;BGP Transitive Extended Community =
Types&quot; registry which are reserved for Experimental Use.&nbsp; =
While the history of this use is not clear, we should take the =
opportunity to clean the registry. &nbsp;[See more in =
=C2=A712.3.]<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>(D) =
Document organization<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>This =
document kept most of the Introduction text, but then added related and, =
in some cases, overlapping and redundant text in =C2=A75 (not =C2=A75.1) =
and =C2=A79.&nbsp; Please combine the information from =C2=A71 and =
=C2=A75, and the background from =C2=A79 into an updated Introduction. =
&nbsp;=C2=A76 seems to belong right after the definition of the NLRI =
(=C2=A74), and before the next part of the specification (filtering) =
starts with =C2=A75.1, then =
=C2=A77...<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>Most of =
the old text is about justification, some from the specific point of =
view of the then-authors.&nbsp; Please reconsider whether that still =
applies.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>I will =
wait for the major issues/comments to be addressed before starting the =
IETF Last Call.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>Thanks!<o=
:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>Alvaro.<o=
:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[1] <a =
href=3D"https://mailarchive.ietf.org/arch/msg/idr/0WQW0pdqq1ae31GYZ7-dk3_=
Wqv8">https://mailarchive.ietf.org/arch/msg/idr/0WQW0pdqq1ae31GYZ7-dk3_Wq=
v8</a><o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[2] <a =
href=3D"https://datatracker.ietf.org/ipr/search/?rfc=3D5575&amp;submit=3D=
rfc">https://datatracker.ietf.org/ipr/search/?rfc=3D5575&amp;submit=3Drfc=
</a><o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[3] <a =
href=3D"https://datatracker.ietf.org/ipr/new-third-party/">https://datatr=
acker.ietf.org/ipr/new-third-party/</a><o:p></o:p></span></p></div><div><=
p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[4] <a =
href=3D"https://mailarchive.ietf.org/arch/msg/idr/VH0mYVgT39ueJapb0axMgfg=
cAN8">https://mailarchive.ietf.org/arch/msg/idr/VH0mYVgT39ueJapb0axMgfgcA=
N8</a><o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[5] <a =
href=3D"https://www.iab.org/2016/11/07/iab-statement-on-ipv6/">https://ww=
w.iab.org/2016/11/07/iab-statement-on-ipv6/</a><o:p></o:p></span></p></di=
v><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[6] <a =
href=3D"https://datatracker.ietf.org/doc/rfc5575/history/">https://datatr=
acker.ietf.org/doc/rfc5575/history/</a><o:p></o:p></span></p></div><div><=
p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[7] <a =
href=3D"https://mailarchive.ietf.org/arch/msg/idr/0J6gWHgBx33u8WpTa0B73mI=
6rIM">https://mailarchive.ietf.org/arch/msg/idr/0J6gWHgBx33u8WpTa0B73mI6r=
IM</a><o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[Line =
numbers from idnits.]<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>17<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>Abstract<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] It =
is interesting to me that the Abstract was significantly rewritten while =
the Introduction was mostly left unchanged.&nbsp; I assume this was done =
to reflect the changes in the document upfront...but it then results in, =
what I think, is an Abstract that is too long, and an incomplete =
Introduction.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>19<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; This document defines a Border Gateway Protocol Network =
Layer<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>20<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; Reachability Information (BGP NLRI) encoding format that =
can be used<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>21<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; to distribute traffic Flow Specifications.&nbsp; This =
allows the routing<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>22<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; system to propagate information regarding more specific =
components of<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>23<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; the traffic aggregate defined by an IP destination =
prefix.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>25<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; It specifies IPv4 traffic Flow Specifications via a BGP =
NLRI which<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>26<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; carries traffic Flow Specification filter, and an =
Extended community<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>27<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; value which encodes actions a routing system can take if =
the packet<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>28<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; matches the traffic flow filters.&nbsp; The flow filters =
and the actions<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>29<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; are processed in a fixed order.&nbsp; Other drafts =
specify IPv6, MPLS<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>30<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; addresses, L2VPN addresses, and NV03 encapsulation of IP =
addresses.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/carries traffic Flow Specification filter/carries a traffic Flow =
Specification filter<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
I think that this paragraph, or something like it, belongs in the =
Introduction (and not the Abstract), because it provides information =
that could benefit from references:<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>- the =
two parts of the NLRI; BTW, the community is not even mentioned in the =
Introduction.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>- other =
drafts... The Introduction only mentions and provides a reference to the =
IPv6 work.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>32<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; This document obsoletes RFC5575 and RFC7674 to correct =
unclear<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>33<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; specifications in the flow =
filters.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
Please add a similar statement in the Introduction, with references to =
both RFCs.&nbsp; There should be an Informative reference to =
both.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
Appendix A talks about the difference of this document with respect to =
rfc5575.&nbsp; What about rfc7674?&nbsp; It looks like any updates from =
rfc7674 have been incorporated in this document.&nbsp; It would be very =
nice, even if just for completion, if there was an Appendix that talked =
about rfc7674 -- I even think that a sub-section of Appendix A would be =
enough.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>35<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; Applications which use the bgp Flow Specification are: 1) =
application<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>36<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; which automate inter-domain coordination of traffic =
filtering, such<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>37<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; as what is required in order to mitigate (distributed) =
denial-of-<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>38<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; service attacks; 2) applications which control traffic =
filtering in<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>39<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; the context of a BGP/MPLS VPN service, and 3) =
applications with<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>40<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; centralized control of traffic in a SDN or NFV =
context.&nbsp; Some<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>41<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; deployments of these three applications can be handled by =
the strict<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>42<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; ordering of the BGP NLRI traffic flow filters, and the =
strict actions<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>43<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span> &nbsp; encoded in the extended community Flow Specification =
actions.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
Please move this paragraph to the =
Introduction.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/extended community/Extended =
Community/g<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>133<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>1.&nbsp; Introduction<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>149<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; This document defines a general procedure to encode =
flow<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>150<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; specification rules for aggregated traffic flows so that they can =
be<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>151<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; distributed as a BGP [RFC4271] NLRI.&nbsp; Additionally, we =
define the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>152<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; required mechanisms to utilize this definition to the problem =
of<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>153<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; immediate concern to the authors: intra- and =
inter-provider<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>154<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; distribution of traffic filtering rules to filter =
(distributed)<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>155<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; denial-of-service (DoS) =
attacks.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
The document uses &quot;Flow Specification&quot; and &quot;flow =
specification&quot; to refer to the same thing...right?&nbsp; Or are =
there differences due to the capitalization?&nbsp; Please be =
consistent.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[style =
nit] Using &quot;we&quot; is not the best for a consensus document. =
&nbsp;s/we define/it defines<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
&quot;problem of immediate concern to the authors&quot; &nbsp;Only the =
authors?&nbsp; This piece of text was also present in rfc5575 -- having =
a different set of authors, I would assume we can safely say that the =
concern/application goes beyond the authors...right?&nbsp; Please =
reword.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
Given that this is a bis, is the motivation still the same?&nbsp; I =
think in part it is, but in part there may be other drivers.&nbsp; Just =
asking...<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
This seems to be a good place to move the text from the Abstract that =
describes applications...<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>164<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; A Flow Specification received from an external autonomous system =
will<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>165<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; need to be validated against unicast routing before being =
accepted.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>166<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; If the aggregate traffic flow defined by the unicast =
destination<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>167<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; prefix is forwarded to a given BGP peer, then the local system =
can<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>168<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; install more specific flow rules that may result in =
different<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>169<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; forwarding behavior, as requested by this =
system.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
&quot;A Flow Specification received from an external autonomous system =
will need to be validated against unicast routing before being =
accepted.&quot; &nbsp;What about if received =
internally?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>171<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; The key technology components required to address the class =
of<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>172<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; problems targeted by this document =
are:<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>174<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; 1.&nbsp; Efficient point-to-multipoint distribution of control =
plane<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>175<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; information.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>177<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; 2.&nbsp; Inter-domain capabilities and routing policy =
support.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>179<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; 3.&nbsp; Tight integration with unicast routing, for =
verification<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>180<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; purposes.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>182<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Items 1 and 2 have already been addressed using BGP for other =
types<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>183<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; of control plane information.&nbsp; Close integration with BGP =
also makes<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>184<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; it feasible to specify a mechanism to automatically verify =
flow<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>185<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; information against unicast routing.&nbsp; These factors are =
behind the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>186<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; choice of BGP as the carrier of Flow Specification =
information.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] I =
don't think that we need to keep justifying...&nbsp; Just a =
nit...<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>188<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; As with previous extensions to BGP, this specification makes =
it<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>189<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; possible to add additional information to Internet routers.&nbsp; =
These<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>190<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; are limited in terms of the maximum number of data elements they =
can<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>191<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; hold as well as the number of events they are able to process in =
a<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>192<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; given unit of time.&nbsp; The authors believe that, as with =
previous<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>193<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; extensions, service providers will be careful to keep =
information<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>194<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; levels below the maximum capacity of their =
devices.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>196<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Experience with previous BGP extensions has also shown that =
the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>197<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; maximum capacity of BGP speakers has been gradually =
increased<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>198<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; according to expected loads.&nbsp; For example Internet unicast =
routing as<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>199<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; well as other BGP applications increased their maximum capacity =
as<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>200<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; they gain popularity.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
This is the same text from 10 years ago.&nbsp; Many things, including =
hardware processing/storage, has changed.&nbsp; Is this text still =
necessary?&nbsp; If so, then I would like to see explicit operational =
considerations on what an operator should look for when being =
&quot;careful&quot;.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>214<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; In current deployments, the information distributed by the =
flow-spec<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>215<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; extension is originated both manually as well as =
automatically.&nbsp; The<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>216<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; latter by systems that are able to detect malicious flows.&nbsp; =
When<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>217<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; automated systems are used, care should be taken to ensure =
their<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>218<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; correctness as well as to limit the number and advertisement rate =
of<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>219<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; flow routes.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
An automated system that is not &quot;correct&quot;, because it may not =
be properly programmed, the algorithms used are not performing as =
expected, or simply because it is rogue, are all vulnerabilities that =
should be called out in the Security Considerations =
section.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>221<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; This specification defines required protocol extensions to =
address<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>222<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; most common applications of IPv4 unicast and VPNv4 unicast =
filtering.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>223<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; The same mechanism can be reused and new match criteria added =
to<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>224<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; address similar filtering needs for other BGP address families =
such<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>225<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; as IPv6 families =
[I-D.ietf-idr-flow-spec-v6],<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/[I-D.ietf-idr-flow-spec-v6],/[I-D.ietf-idr-flow-spec-v6].<o:p></o:p></s=
pan></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>227<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>2.&nbsp; Definitions of Terms Used in This =
Memo<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>233<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Loc-RIB - &nbsp; Local RIB.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
This simple definition doesn't match the one in =
=C2=A71.1/rfc4271.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>..<o:p></=
o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>247<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>3.&nbsp; Flow Specifications<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>266<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; BGP itself treats the NLRI as an key to an entry in its =
databases.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>267<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Entries that are placed in the Loc-RIB are then associated with =
a<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>268<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; given set of semantics, which is application dependent.&nbsp; =
This is<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>269<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; consistent with existing BGP applications.&nbsp; For instance, IP =
unicast<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>270<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; routing (AFI=3D1, SAFI=3D1) and IP multicast reverse-path =
information<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>271<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; (AFI=3D1, SAFI=3D2) are handled by BGP without any particular =
semantics<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>272<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; being associated with them until installed in the =
Loc-RIB.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/an key/a key<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>274<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Standard BGP policy mechanisms, such as UPDATE filtering by =
NLRI<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>275<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; prefix as well as community matching and manipulation, MUST apply =
to<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>276<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; the Flow Specification defined NLRI-type, especially in an =
inter-<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>277<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; domain environment.&nbsp; Network operators can also control =
propagation<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>278<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; of such routing updates by enabling or disabling the exchange of =
a<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>279<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; particular (AFI, SAFI) pair on a given BGP peering =
session.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
The point of NLRIs all being treated the same is made above, to =
reinforce the default BGP behavior...and this paragraph tries to bring =
home the point by Normatively enforcing it (MUST).&nbsp; However, =
because the behavior is what BGP specifies by default, then this =
document cannot be Normative in it (unless it specified an exception). =
&nbsp;s/MUST/must<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>281<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>4.&nbsp; Dissemination of IPv4 FLow Specification =
Information<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>287<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; This NLRI information is encoded using MP_REACH_NLRI =
and<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>288<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; MP_UNREACH_NLRI attributes as defined in [RFC4760].&nbsp; =
Whenever the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>289<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; corresponding application does not require Next-Hop information, =
this<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>290<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; shall be encoded as a 0-octet length Next Hop in the =
MP_REACH_NLRI<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>291<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; attribute and ignored on =
receipt.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
s/Next-Hop/Next Hop &nbsp; &nbsp; &nbsp; rfc4760 uses &quot;Next =
Hop&quot;<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
&quot;...shall be encoded as a 0-octet length Next Hop in the =
MP_REACH_NLRI attribute and ignored on receipt.&quot; &nbsp;What is =
ignored?&nbsp; The Next Hop?&nbsp; If it doesn't exist (length =3D 0), =
then it can't be ignored...&nbsp; Perhaps delete &quot; and ignored on =
receipt&quot;.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>297<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; =
+------------------------------+<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>298<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; | &nbsp; &nbsp;length (0xnn or 0xfn nn) =
&nbsp;|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>299<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; =
+------------------------------+<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>300<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; | &nbsp; &nbsp;NLRI value &nbsp;(variable) &nbsp; =
&nbsp;|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>301<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; =
+------------------------------+<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
s/0xfn nn/0xfnnn<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>312<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>4.1.&nbsp; Length Encoding<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>314<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; o &nbsp;If the NLRI length value is smaller than 240 (0xf0 hex), =
the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>315<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;length field can be encoded as a single =
octet.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/240/240 octets<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>317<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; o &nbsp;Otherwise, it is encoded as an extended-length 2-octet =
value in<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>318<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;which the most significant nibble of the first byte =
is all ones.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>320<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; In figure 1 above, values less-than 240 are encoded using two =
hex<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>321<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; digits (0xnn).&nbsp; Values above 239 are encoded using 3 hex =
digits<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>322<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; (0xfnnn).&nbsp; The highest value that can be represented with =
this<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>323<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; encoding is 4095.&nbsp; The value 241 is encoded as =
0xf0f1.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] It =
may make more sense to show the encoding for =
240.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>325<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>4.2.&nbsp; NLRI Value Encoding<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>332<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; The encoding of each of the NLRI components begins with a type =
field<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>333<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; (1 octet) followed by a variable length parameter.&nbsp; Section =
4.2.1 to<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>334<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Section 4.2.12 define component types and parameter encodings for =
the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>335<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; IPv4 IP layer and transport layer headers.&nbsp; IPv6 NLRI =
component types<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>336<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; are described in =
[I-D.ietf-idr-flow-spec-v6].<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
&quot;followed by a variable length parameter&quot; &nbsp; Only the =
first two types have a variable length =
parameter...<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>338<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Flow Specification components must follow strict type ordering =
by<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>339<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; increasing numerical order.&nbsp; A given component type may =
(exactly<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>340<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; once) or may not be present in the specification.&nbsp; If =
present, it<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>341<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; MUST precede any component of higher numeric type =
value.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
What should happen if a component appears more than =
once?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
What should happen if the order is not =
maintained?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>343<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; All combinations of component types within a single NLRI are =
allowed,<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>344<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; even if the combination makes no sense from a semantical =
perspective.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>345<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; If a given component type within a prefix in unknown, the prefix =
in<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>346<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; question cannot be used for traffic filtering purposes by =
the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>347<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; receiver.&nbsp; Since a Flow Specification has the semantics of a =
logical<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>348<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; AND of all components, if a component is FALSE, by definition =
it<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>349<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; cannot be applied.&nbsp; However, for the purposes of BGP =
route<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>350<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; propagation, this prefix should still be transmitted since BGP =
route<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>351<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; distribution is independent on NLRI =
semantics.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/prefix in unknown/prefix is unknown<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/independent on NLRI/independent of =
NLRI<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
&quot;...for the purposes of BGP route propagation, this prefix should =
still be transmitted since BGP route distribution is independent on NLRI =
semantics.&quot; &nbsp;I think this is a vulnerability: a (large) set of =
meaningless Flow Specifications may be injected in the routing =
system...<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
Also, propagating these unknown components may result in a router down =
the line, which understands them, reacting.&nbsp; While the reaction =
shouldn't result in reset adjacencies, it may result in inconsistent =
forwarding or other unexpected =
outcomes...<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
This treatment of unknown extensions is in conflict with the text in =
=C2=A711.&nbsp; See my comments =
there.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>353<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>4.2.1.&nbsp; Type 1 - Destination =
Prefix<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>355<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Encoding: &lt;type (1 octet), prefix length (1 =
octet), prefix&gt;<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>357<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Defines: the destination prefix to match.&nbsp; =
Prefixes are encoded as<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>358<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;in BGP UPDATE messages, a length in bits is followed =
by enough<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>359<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;octets to contain the prefix =
information.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/Defines: the destination prefix/Defines the destination =
prefix<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
rfc4271: &quot;The Prefix field contains an IP address prefix, followed =
by the minimum number of trailing bits needed to make the end of the =
field fall on an octet boundary.&quot; &nbsp; The text above makes it =
sound as if the prefix field may not end in an octet boundary, which is =
what rfc4271 specifies.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>NEW =
(suggestion)&gt;<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>&nbsp; =
&nbsp;Defines the destination prefix to match.&nbsp; The length and =
prefix fields are<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>&nbsp; =
&nbsp;encoded as in BGP UPDATE messages =
[rfc4271].<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>361<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>4.2.2.&nbsp; Type 2 - Source =
Prefix<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>363<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Encoding: &lt;type (1 octet), prefix-length (1 =
octet), prefix&gt;<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>365<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Defines the source prefix to =
match.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
&quot;... The length and prefix fields are encoded as in BGP UPDATE =
messages [rfc4271].&quot;<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>367<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>4.2.3.&nbsp; Type 3 - IP =
Protocol<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>369<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Encoding:&lt;type (1 octet), [op, =
value]+&gt;<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>371<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Contains a set of {operator, value} pairs that are =
used to match<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>372<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;the IP protocol value byte in IP =
packets.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
Include a reference to the protocol =
numbers..<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
Are all protocol numbers valid?&nbsp; I guess that in theory anything is =
-- what should a receiver do with Flow Specifications that cover =
protocols that are not supported?&nbsp; I'm wondering if sending Flow =
Specifications for every protocol under the sun is a vulnerability -- =
knowing that only a few will ever be present in the Internet.&nbsp; Is =
there any guidance that you can provide in =C2=A714 (or a separate =
Operational Considerations section)?&nbsp; I also point this out because =
the rest of the types focus on TCP/UDP...what about other transport =
layer protocols?<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
Related question: even for &quot;valid&quot; protocols, should all be =
accepted from eBGP peers?&nbsp; I think that it is probably ok...asking =
for completeness.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>374<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;The operator byte is encoded =
as:<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>376<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; 0 &nbsp; 1 &nbsp; 2 &nbsp; 3 &nbsp; 4 &nbsp; 5 &nbsp; 6 =
&nbsp; 7<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>377<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; =
+---+---+---+---+---+---+---+---+<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>378<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; | e | a | &nbsp;len &nbsp;| 0 |lt |gt |eq =
|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>379<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; =
+---+---+---+---+---+---+---+---+<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>381<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp;Numeric =
operator<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
Center the figure...<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[clarity]=
 Please describe the operators independent of one of the Types.&nbsp; As =
defined, it looks like they only apply to one type...it is much later =
that the reader realizes that there is a reason for the =
&quot;complexity&quot;.&nbsp; Along the same lines, I think that the =
&quot;set of {operator, value} pairs&quot; phrase could use some more =
text to explain that the operator is the whole octet, with a =
corresponding value...<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>383<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;e - end-of-list bit.&nbsp; Set in the last {op, =
value} pair in the<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>384<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;list.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
What action should be taken if a received flow spec has this bit not set =
anywhere, or is set somewhere other than the last =
pair?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>386<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;a - AND bit.&nbsp; If unset, the previous term is =
logically ORed with<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>387<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;the current one.&nbsp; If set, the operation is a =
logical AND.&nbsp; In the<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>388<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;first operator byte of a sequence it SHOULD be =
encoded as unset<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>389<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;and and MUST be treated as always unset on =
decoding.&nbsp; The AND<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>390<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;operator has higher priority than OR for the =
purposes of<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>391<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;evaluating logical =
expressions.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>393<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;len - length of the value field for this operator =
given as (1 &lt;&lt;<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>394<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;len).&nbsp; This encodes 1 (00) - 8 (11) =
bytes.&nbsp; Type 3 flow component<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>395<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;values SHOULD be encoded as single byte (len =3D =
00).<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
Please expand on the meaning of &quot;1 &lt;&lt; =
len&quot;.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>406<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; The bits lt, gt, and eq can be combined to produce common =
relational<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>407<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; operators such as &quot;less or equal&quot;, &quot;greater or =
equal&quot;, and &quot;not equal<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>408<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; to&quot;.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
&quot;...as shown in Table 1.&quot;<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>410<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;+----+----+----+----------------------------------+<o:p></o:p></spa=
n></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>411<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| lt | gt | eq | Resulting =
operation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>412<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;+----+----+----+----------------------------------+<o:p></o:p></spa=
n></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>413<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| 0 &nbsp;| 0 &nbsp;| 0 &nbsp;| =
false (independent of the value) |<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>414<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| 0 &nbsp;| 0 &nbsp;| 1 &nbsp;| =
=3D=3D (equal) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; |<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>415<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| 0 &nbsp;| 1 &nbsp;| 0 &nbsp;| =
&gt; (greater than) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; |<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>416<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| 0 &nbsp;| 1 &nbsp;| 1 &nbsp;| =
&gt;=3D (greater than or equal) &nbsp; &nbsp; &nbsp; =
|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>417<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| 1 &nbsp;| 0 &nbsp;| 0 &nbsp;| =
&lt; (less than) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp;|<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>418<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| 1 &nbsp;| 0 &nbsp;| 1 &nbsp;| =
&lt;=3D (less than or equal) &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>419<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| 1 &nbsp;| 1 &nbsp;| 0 &nbsp;| =
!=3D (not equal value) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>420<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| 1 &nbsp;| 1 &nbsp;| 1 &nbsp;| =
true (independent of the value) =
&nbsp;|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>421<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;+----+----+----+----------------------------------+<o:p></o:p></spa=
n></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>423<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Table 1: =
Comparison operation combinations<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>425<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>4.2.4.&nbsp; Type 4 - Port<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>427<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Encoding:&lt;type (1 octet), [op, =
value]+&gt;<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>429<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Defines a list of {operator, value} pairs that =
matches source OR<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>430<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;destination TCP/UDP ports.&nbsp; This list is =
encoded using the numeric<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>431<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;operator format defined in Section 4.2.3.&nbsp; =
Values SHOULD be<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>432<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;encoded as 1- or 2-byte =
quantities.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
A reference to TCP/UDP header/ports would be =
nice.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
&quot;matches source OR destination TCP/UDP ports&quot; &nbsp;Which =
one?&nbsp; Both?&nbsp; Either?&nbsp; How does the receiver know which =
one?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
What is the interaction/relationship between this type and Types 5 and =
6?&nbsp; The text in =C2=A74.2 allows for all 3 types to be present, and =
have an influence in the action taken...they seem =
redundant.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>434<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Port, source port, and destination port components =
evaluate to<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>435<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;FALSE if the IP protocol field of the packet has a =
value other<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>436<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;than TCP or UDP, if the packet is fragmented and =
this is not the<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>437<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;first fragment, or if the system in unable to locate =
the transport<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>438<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;header.&nbsp; Different implementations may or may =
not be able to<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>439<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;decode the transport header in the presence of IP =
options or<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>440<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Encapsulating Security Payload (ESP) NULL [RFC4303] =
encryption.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
&quot;Port, source port, and destination port components...&quot; =
&nbsp;This section only talks about the port; please duplicate this text =
in the other sections, or put a reference to it there, or put a forward =
reference here...<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
&quot;...evaluate to FALSE if the IP protocol field of the packet has a =
value other than TCP or UDP, if the packet is fragmented and this is not =
the first fragment, or if the system in unable to locate the transport =
header.&quot; &nbsp;This sentence seems to mix the applicability of the =
Flow Specification (FALSE is first introduced in =C2=A74.2 to describe =
the effect of a component on the rule), and the application to a =
specific packet.&nbsp; Please separate the two aspects. I do have some =
specific questions/comments.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>(1) The =
text starts by talking about the &quot;protocol field of the =
packet&quot; (not the protocol value in the Type 3 parameter)...&nbsp; I =
assume that a Flow Specification would only apply to a packet if the =
protocol matches the Type 3 parameter...but the statement seems to say =
that it wouldn't apply regardless of the Type 3 (see my question there =
about valid protocols)...or maybe even if a Type 3 is not =
present....<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>(2) =
&quot;...evaluate to FALSE...if the packet is fragmented and this is not =
the first fragment...&quot; &nbsp;Type 12 specifically includes values =
for other cases.&nbsp; How is the interaction =
expected?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>460<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>4.2.7.&nbsp; Type 7 - ICMP =
type<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>462<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Encoding:&lt;type (1 octet), [op, =
value]+&gt;<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>464<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Defines a list of {operator, value} pairs used to =
match the type<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>465<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;field of an ICMP packet.&nbsp; This list is encoded =
using the numeric<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>466<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;operator format defined in Section 4.2.3.&nbsp; =
Values SHOULD be<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>467<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;encoded using a single =
byte.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
A reference to ICMP would be nice.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>469<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;The ICMP type specifiers evaluate to FALSE whenever =
the protocol<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>470<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;value is not =
ICMP.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>472<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>4.2.8.&nbsp; Type 8 - ICMP =
code<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>474<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Encoding:&lt;type (1 octet), [op, =
value]+&gt;<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>476<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Defines a list of {operator, value} pairs used to =
match the code<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>477<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;field of an ICMP packet.&nbsp; This list is encoded =
using the numeric<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>478<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;operator format defined in Section 4.2.3.&nbsp; =
Values SHOULD be<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>479<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;encoded using a single =
byte.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>481<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;The ICMP code specifiers evaluate to FALSE whenever =
the protocol<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>482<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;value is not =
ICMP.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
I guess that it should also evaluate FALSE if the ICMP code is not =
relevant for the Type. &nbsp;??<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>484<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>4.2.9.&nbsp; Type 9 - TCP =
flags<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>486<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Encoding:&lt;type (1 octet), [op, =
bitmask]+&gt;<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
The operator (described below) is called &quot;bitmask&quot;, which is a =
little confusing with the bitmask =
itself...<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>488<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Bitmask values can be encoded as a 1- or 2-byte =
bitmask.&nbsp; When a<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>489<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;single byte is specified, it matches byte 13 of the =
TCP header<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>490<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;[RFC0793], which contains bits 8 though 15 of the =
4th 32-bit word.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>491<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;When a 2-byte encoding is used, it matches bytes 12 =
and 13 of the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>492<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;TCP header with the data offset field having a =
&quot;don't care&quot; value.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
Identifying the right octets is more important than counting the number =
of bytes...&nbsp; The interesting bytes are identified above as =
&quot;bytes 12 and 13&quot;; however, work from the Transport Area talks =
about &quot;bytes 13 and 14&quot;: <a =
href=3D"https://tools.ietf.org/html/rfc3168#section-6.1">https://tools.ie=
tf.org/html/rfc3168#section-6.1</a> &nbsp;It would be nice if this was =
aligned or if any ambiguity could be =
avoided.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
&quot;...with the data offset field having a &quot;don't care&quot; =
value.&quot; &nbsp;What does that mean?&nbsp; To me, it sounds as if the =
bitmask values can't be used to match on the offset....is that the right =
interpretation?&nbsp; Some clarity would avoid =
guessing..<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>494<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;This component evaluates to FALSE for packets that =
are not TCP<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>495<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;packets.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
As mentioned before, this sentence also seems to mix/confuse the =
applicability of the component (whether it can be used at all) and the =
application of it to match a specific packet.&nbsp; In this case, the =
text seems to simply say that a Flow Specification which uses Type 9 can =
only be used to match TCP packets...<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
Should the Flow Specification evaluate to FALSE if this Type is used =
*and* Type 3 doesn't include TCP *only* in it's =
description?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>497<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;This type uses the bitmask operator format, which =
differs from the<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>498<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;numeric operator format in the lower =
nibble.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
As with the numeric operator, I think it would be clearer if it was =
introduced before the types.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>500<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp;0 &nbsp; 1 &nbsp; 2 &nbsp; 3 &nbsp; 4 &nbsp; 5 &nbsp; 6 =
&nbsp; 7<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>501<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; =
+---+---+---+---+---+---+---+---+<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>502<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; | e | a | &nbsp;len &nbsp;| 0 | 0 |not| m =
|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>503<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; =
+---+---+---+---+---+---+---+---+<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>505<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Bitmask operator<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
Center the figure...<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>507<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; e, a, len - Most significant nibble: &nbsp;(end-of-list bit, AND =
bit, and<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>508<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;length field), as defined for in the numeric =
operator format in<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>509<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Section 4.2.3.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[] See =
the questions about the e bit above.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>542<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>4.2.12.&nbsp; Type 12 - =
Fragment<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>544<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Encoding:&lt;type (1 octet), [op, =
bitmask]+&gt;<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>546<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Uses bitmask operator format defined in Section =
4.2.9.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
No, it doesn't.&nbsp; The new one is defined =
below.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[clarity]=
 Again, please introduce the operators before the types.&nbsp; In this =
case, this operator seems to also carry the bitmask name, which can be =
confusing with the one introduced in =C2=A74.2.9 and the name of the =
value field...<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>548<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;0 &nbsp; 1 &nbsp; 2 &nbsp; 3 &nbsp; 4 &nbsp; 5 =
&nbsp; 6 &nbsp; 7<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>549<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; =
&nbsp;+---+---+---+---+---+---+---+---+<o:p></o:p></span></p></div><div><=
p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>550<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp;| 0 | 0 | 0 | 0 |LF |FF |IsF|DF =
|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>551<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; =
&nbsp;+---+---+---+---+---+---+---+---+<o:p></o:p></span></p></div><div><=
p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
Center the figure...<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
Please add Figure numbers.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>553<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Bitmask values:<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>555<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; Bit 7 - Don't fragment =
(DF)<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>557<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; Bit 6 - Is a fragment =
(IsF)<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>559<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; Bit 5 - First fragment =
(FF)<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>561<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; Bit 4 - Last fragment =
(LF)<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>563<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; Bit 0-3 - SHOULD be set to 0 on NLRI =
encoding, and MUST be<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>564<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; ignored during =
decoding<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
The operation is not specified.&nbsp; Is this also an (operator,bitmask) =
pair, or just 8 bits indicating the values?&nbsp; Can multiple bits be =
set at the same time?&nbsp; What fields in the IP header do these map =
to?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>566<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>4.3.&nbsp; Examples of =
Encodings<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>568<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; An example of a Flow Specification encoding for: &quot;all =
packets to<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>569<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; 10.0.1/24 and TCP port =
25&quot;.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
For clarity, include the whole subnet: s/ 10.0.1/24 / <a =
href=3D"http://10.0.1.0/24">10.0.1.0/24</a><o:p></o:p></span></p></div><d=
iv><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
Use IP addresses from the documentation pool [rfc5737] in all =
examples.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>571<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; =
&nbsp;+------------------+----------+----------+<o:p></o:p></span></p></d=
iv><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>572<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;| destination &nbsp; &nbsp; &nbsp;| proto &nbsp; =
&nbsp;| port &nbsp; &nbsp; |<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>573<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; =
&nbsp;+------------------+----------+----------+<o:p></o:p></span></p></d=
iv><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>574<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;| 0x01 18 0a 00 01 | 03 81 06 | 04 81 19 =
|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>575<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; =
&nbsp;+------------------+----------+----------+<o:p></o:p></span></p></d=
iv><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
It would be nice if the examples show the the whole Flow-spec NLRI, and =
not just the NLRI value.&nbsp; Also, it would be great if one of the =
examples required more than 240 =
bytes.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>577<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Decode for protocol:<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
Please show the decodes for all the =
fields.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>579<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; =
&nbsp;+-------+----------+------------------------------+<o:p></o:p></spa=
n></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>580<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;| Value | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp;|<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>581<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; =
&nbsp;+-------+----------+------------------------------+<o:p></o:p></spa=
n></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>582<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;| &nbsp;0x03 | type &nbsp; &nbsp; | &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;|<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>583<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;| &nbsp;0x81 | operator | end-of-list, value =
size=3D1, =3D |<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>584<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;| &nbsp;0x06 | value &nbsp; &nbsp;| &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;|<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>585<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; =
&nbsp;+-------+----------+------------------------------+<o:p></o:p></spa=
n></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
For completion, indicate that Protocol 6 is =
TCP.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>587<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; An example of a Flow Specification encoding for: &quot;all =
packets to<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>588<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; 10.1.1/24 from 192/8 and port {range [137, 139] or =
8080}&quot;.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[] =
Ah...NETBIOS...<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] It =
might be a good idea to number the =
examples...<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>612<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>5.&nbsp; Traffic Filtering<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>614<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Traffic filtering policies have been traditionally considered to =
be<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>615<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; relatively static.&nbsp; Limitations of the static mechanisms =
caused this<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>616<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; mechanism to be designed for the three new applications of =
traffic<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>617<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; filtering (prevention of traffic-based, denial-of-service =
(DOS)<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>618<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; attacks, traffic filtering in the context of BGP/MPLS VPN =
service,<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>619<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; and centralized traffic control for SDN/NFV networks) =
requires<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>620<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; coordination among service providers and/or coordination among =
the AS<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>621<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; within a service provider.&nbsp; Section 9 has details on the =
limitation<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>622<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; of previous mechanisms and why BGP Flow Specification provides =
a<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>623<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; solution for to prevent DOS and aid BGP/MPLS VPN filtering =
rules.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
This sentence, without the parenthesis, doesn't seem to make sense: =
&quot;Limitations of the static mechanisms caused this mechanism to be =
designed for the three new applications of traffic filtering requires =
coordination among service providers and/or coordination among the AS =
within a service provider.&quot;<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/solution for to prevent/solution to =
prevent<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>625<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; This Flow Specification NLRI defined above to convey =
information<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>626<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; about traffic filtering rules for traffic that should be =
discarded or<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>627<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; handled in manner specified by a set of pre-defined actions =
(which<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>628<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; are defined in BGP Extended Communities).&nbsp; This mechanism =
is<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>629<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; primarily designed to allow an upstream autonomous system to =
perform<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>630<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; inbound filtering in their ingress routers of traffic that a =
given<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>631<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; downstream AS wishes to drop.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/This Flow Specification NLRI/The Flow Specification =
NLRI<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>645<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Distribution of the IPv4 Flow Specification is described =
in<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>646<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Section 6, and distibution of BGP/MPLS traffic Flow Specification =
is<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>647<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; described in Section 8.&nbsp; The traffic filtering actions are =
described<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>648<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; in Section 7.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
Section 6 talks about validation, not =
distribution.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/distibution/distribution<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>650<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>5.1.&nbsp; Ordering of Traffic Filtering =
Rules<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>652<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; With traffic filtering rules, more than one rule may match =
a<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>653<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; particular traffic flow.&nbsp; Thus, it is necessary to define =
the order<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>654<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; at which rules get matched and applied to a particular traffic =
flow.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>655<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; This ordering function must be such that it must not depend on =
the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>656<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; arrival order of the Flow Specification's rules and must =
be<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>657<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; consistent in the network.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[clarific=
ation] Are &quot;traffic filtering rules&quot; the same thing as =
&quot;traffic filtering actions&quot;, or are they more like &quot;Flow =
Specification's rules&quot;? &nbsp; You also mention (below) &quot;Flow =
Specification rules&quot; in the context of ordering, so my guess is =
that &quot;traffic filtering rules&quot; and &quot;Flow Specification =
rules&quot; are equivalent...are they? &nbsp; In my opinion, there are =
too many ways to refer to the same, or very similar things.&nbsp; Please =
take advantage of =C2=A72 to help the reader, or at least simplify the =
terminology.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>659<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; The relative order of two Flow Specification rules is determined =
by<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>660<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; comparing their respective components.&nbsp; The algorithm starts =
by<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>661<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; comparing the left-most components of the rules.&nbsp; If the =
types<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>662<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; differ, the rule with lowest numeric type value has higher =
precedence<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>663<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; (and thus will match before) than the rule that doesn't contain =
that<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>664<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; component type.&nbsp; If the component types are the same, then a =
type-<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>665<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; specific comparison is performed (see below) if the types are =
equal<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>666<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; the algorithm continues with the next =
component.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
To be clear: the comparison is done between the component types defined =
in =C2=A74.2...and &quot;left-most&quot; means =
&quot;first&quot;...<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>668<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; For IP prefix values (IP destination or source prefix): If =
the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>669<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; prefixes overlap, the one with the longer prefix-length has =
higher<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>670<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; precedence.&nbsp; If they do not overlap the one with the lowest =
IP value<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>671<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; has higher precedence.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
I need you to be more specific when talking about =
&quot;overlap&quot;.&nbsp; Clearly <a =
href=3D"http://10.1.0.0/16">10.1..0.0/16</a> and <a =
href=3D"http://10.1.1.0/24">10.1.1.0/24</a> overlap, then the higher =
precedence would be for the /24, right?&nbsp; Do <a =
href=3D"http://130.0.0.0/16">130.0.0.0/16</a> and <a =
href=3D"http://150.1.1.0/24">150..1.1.0/24</a> overlap (they have the =
first 3 bits in common)? &nbsp;rfc5575 talks about a &quot;common =
prefix&quot;, which is not completely clear either, but it could mean at =
least what is covered by the shortest mask (which would be my =
guess)...<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
&quot;prefix-length&quot; is used here, but &quot;prefix length&quot; is =
used in =C2=A74.2.1.&nbsp; Please be =
consistent.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
The &quot;-&quot; confused me a little.&nbsp; By &quot;For IP prefix =
values...the longer prefix-length&quot; do you mean the value of the =
prefix length, or the length of the prefix field? &nbsp;rfc5575 talks =
about &quot;more specific&quot;, which may be easier to understand in =
this case...<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>673<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; For all other component types, unless otherwise specified, =
the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>674<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; comparison is performed by comparing the component data as a =
binary<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>675<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; string using the memcmp() function as defined by the ISO C =
standard.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>676<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; For strings with equal lengths the lowest string (memcmp) has =
higher<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>677<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; precedence.&nbsp; For strings of different lengths, the common =
prefix is<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>678<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; compared.&nbsp; If the common prefix is not equal the string with =
the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>679<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; lowest prefix has higher precedence.&nbsp; If the common prefix =
is equal,<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>680<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; the longest string is considered to have higher precedence than =
the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>681<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; shorter one.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
Please add a Normative reference for &quot;the memcmp() function as =
defined by the ISO C standard&quot;.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
What is the &quot;common prefix&quot;?&nbsp; Is it the bits that =
correspond to the shorter length?&nbsp; In this case I think that using =
&quot;prefix&quot; may be confusing.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
If my interpretation is correct, given a common set of rules, the longer =
the Flow Specification the most preferred, right?&nbsp; Using one of the =
examples in =C2=A74.3, &quot;all packets to 10.1.1/24 from 192/8 and =
port {range [137, 139] or 8080}&quot; would be preferred over &quot;all =
packets to 10.1.1/24 from 192/8 and port range [137, =
139]&quot;...because when comparing the common prefix for the port, the =
second rule would have the e bit set, resulting in a higher prefix, =
right?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
I would like to see some discussion about the management of Flow =
Specifications and their advertisement order from an operational point =
of view.&nbsp; In the case above, if an operator uses the first rule =
(only), but later decides to allow web traffic and the system advertises =
the second rule, it won't take effect until the first one is =
withdrawn.&nbsp; This type of operational consideration is not explained =
in this document.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>683<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; The code below shows a Python3 implementation of the =
comparison<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>684<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; algorithm.&nbsp; The full code was tested with Python 3.6.3 and =
can be<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>685<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; obtained at <a =
href=3D"https://github.com/stoffi92/flowspec-cmp">https://github.com/stof=
fi92/flowspec-cmp</a> [1].<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
I would prefer to see the code in an =
Appendix.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
We need to include template text about the licensing in the Code =
Component below.&nbsp; Please take a look at the IETF Trust Legal =
Provisions and add the appropriate text: <a =
href=3D"https://trustee.ietf.org/license-info/IETF-TLP-5.pdf">https://tru=
stee.ietf.org/license-info/IETF-TLP-5.pdf</a><o:p></o:p></span></p></div>=
<div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>687<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &lt;CODE BEGINS&gt;<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>688<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; import itertools<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>689<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; import ipaddress<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>691<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; def flow_rule_cmp(a, b):<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>692<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; for comp_a, comp_b in =
itertools.zip_longest(a.components,<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>693<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;b.components):<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>694<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # If a component type does not exist =
in one rule<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>695<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # this rule has lower =
precedence<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>696<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if not =
comp_a:<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>697<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return =
B_HAS_PRECEDENCE<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>698<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if not =
comp_b:<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>699<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return =
A_HAS_PRECEDENCE<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[] What =
if the component is not in either?&nbsp; The lines above look like the =
wrong outcome could be obtained.&nbsp; Disclaimer: I don't know =
Python...<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>742<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>6.&nbsp; Validation Procedure<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>757<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; The concept can be extended, in the case of Flow Specification =
NLRI,<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>758<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; to allow other validation =
procedures.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/of Flow Specification NLRI/of the Flow Specification =
NLRI<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>760<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; A Flow Specification NLRI must be validated such that it =
is<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>761<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; considered feasible if and only if all of the below is =
true:<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
There is no Normative language above, but I think there is a =
contradiction of sorts with the new text below (&quot;Rule a) MAY be =
relaxed...&quot;).&nbsp; The introductory text to the rules is =
&quot;must be...considered feasible if and only if all of the below is =
true&quot;, which sounds very strict and specific...but then the =
Normative exception comes in (&quot;MAY be relaxed...rules b) and =
c)...MUST be disregarded&quot;) saying that it doesn't matter.&nbsp; =
Please reword...perhaps something like: &quot;If a destination is =
present...a Flow Specification MUST be validated this =
way...otherwise...&quot;<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>763<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;a) A destination prefix component is embedded in the =
Flow<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>764<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Specification.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>766<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;b) The originator of the Flow Specification matches =
the originator<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>767<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;of the best-match unicast route for the destination =
prefix<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>768<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;embedded in the Flow =
Specification.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
What is the &quot;best-match unicast route&quot;?&nbsp; Please be =
specific.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>770<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;c) There are no more specific unicast routes, when =
compared with<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>771<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;the flow destination prefix, that has been received =
from a<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>772<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;different neighboring AS than the best-match unicast =
route, which<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>773<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;has been determined in rule =
b).<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>775<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Rule a) MAY be relaxed by configuration, permitting =
Flow<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>776<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Specifications that include no destination prefix =
component.&nbsp; If such<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>777<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; is the case, rules b) and c) are moot and MUST be =
disregarded.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
This action opens the door to all sorts of things.&nbsp; I note that the =
Security Considerations section simply mentions it without going into =
more details.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>779<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; By originator of a BGP route, we mean either the BGP originator =
path<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>780<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; attribute, as used by route reflection, or the transport address =
of<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>781<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; the BGP peer, if this path attribute is not =
present.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
s/BGP originator path attribute, as used by route reflection/address of =
the originator in the ORIGINATOR_ID Attribute [RFC4456] &nbsp; The =
reference to rfc4456 should be =
Normative.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
rfc4271 doesn't talk about a &quot;transport addresses&quot;.&nbsp; =
Instead, it talks about the &quot;source IP address&quot;.&nbsp; I know =
it is the same thing, but please be =
consistent.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>783<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; BGP implementations MUST also enforce that the AS_PATH attribute =
of a<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>784<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; route received via the External Border Gateway Protocol =
(eBGP)<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>785<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; contains the neighboring AS in the left-most position of the =
AS_PATH<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>786<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; attribute.&nbsp; While this rule is optional in the BGP =
specification, it<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>787<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; becomes necessary to enforce it for security =
reasons.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
Is this requirement only for the Flow Specification AFI/SAFI pairs, or =
for all address families (IPv4 in the case of this document)?&nbsp; =
Why?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
[Assuming that the answer to the last question is: &quot;Yes, for all =
AFs&quot;...] Should all the border routers in the AS enforce the first =
ASN, or is the requirement only for routers receiving Flow =
Specifications?<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
In the case of receiving Flow Specifications from a neighbor in an IXP, =
it may not be possible to enforce the rule above if a &quot;transparent =
ASN&quot; is being used.&nbsp; Please include some text/guidance about =
that type of case.&nbsp; Include it either here or in the Security =
Considerations.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
The mention of security above makes me want to see related =
considerations in =C2=A713/14.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>789<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; The best-match unicast route may change over the time =
independently<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>790<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; of the Flow Specification NLRI.&nbsp; Therefore, a revalidation =
of the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>791<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Flow Specification NLRI MUST be performed whenever unicast =
routes<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>792<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; change.&nbsp; Revalidation is defined as retesting that clause a =
and<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>793<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; clause b above are true.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
What about the case where a destination prefix is not included?&nbsp; =
Besides enforcing the first AS, there isn't any verification =
specified.&nbsp; What are the consideration about using that =
option?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>795<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Explanation:<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>797<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; The underlying concept is that the neighboring AS that advertises =
the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>798<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; best unicast route for a destination is allowed to advertise =
flow-<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>799<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; spec information that conveys a more or equally specific =
destination<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>800<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; prefix.&nbsp; Thus, as long as there are no more specific unicast =
routes,<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>801<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; received from a different neighboring AS, which would be affected =
by<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>802<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; that filtering rule.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>804<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; The neighboring AS is the immediate destination of the =
traffic<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>805<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; described by the Flow Specification.&nbsp; If it requests these =
flows to<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>806<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; be dropped, that request can be honored without concern that =
it<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>807<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; represents a denial of service in itself.&nbsp; Supposedly, the =
traffic is<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>808<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; being dropped by the downstream autonomous system, and there is =
no<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>809<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; added value in carrying the traffic to =
it.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
A rogue router may request the traffic to be dropped.&nbsp; While the =
local AS is simply reacting to the neighbor's request, the action can =
still result in a DoS.&nbsp; I would like to see rogue router scenarios =
reflected in the Security =
Considerations.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
All this section seems to assume that flows are controlled =
(dropped/redirected) between ASes...but the actions can also be =
triggered from inside an AS.&nbsp; What are the considerations in that =
case?&nbsp; Why isn't iBGP explicitly =
considered?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>811<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>7.&nbsp; Traffic Filtering =
Actions<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>820<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Implementations SHOULD provide mechanisms that map an arbitrary =
BGP<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>821<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; community value (normal or extended) to filtering actions =
that<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>822<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; require different mappings in different systems in the =
network.&nbsp; For<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>823<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; instance, providing packets with a worse-than-best-effort, =
per-hop<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>824<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; behavior is a functionality that is likely to be =
implemented<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>825<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; differently in different systems and for which no standard =
behavior<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>826<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; is currently known.&nbsp; Rather than attempting to define it =
here, this<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>827<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; can be accomplished by mapping a user-defined community value =
to<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>828<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; platform-/network-specific behavior via user =
configuration.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
While this paragraph sounds technically correct, I think it doesn't =
belong in this document because it (randomly) talks about a different, =
yet tangentially related, topic.&nbsp; Also, it basically says =
&quot;SHOULD provide a mechanism to take arbitrary actions...which are =
not defined here&quot;, so it is not complete from a Normative point of =
view.&nbsp; I would prefer if we took this paragraph =
out.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>830<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; The default action for a traffic filtering Flow Specification is =
to<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>831<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; accept IP traffic that matches that particular =
rule.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>833<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; This document defines the following extended communities values =
shown<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>834<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; in Table 2 in the form 0x8xnn where nn indicates the =
sub-type.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>835<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Encodings for these extended communities are described =
below.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
The &quot;0x8xnn&quot; format doesn't explain what x indicates.&nbsp; =
Perhaps it would be better for the format to match the IANA section and =
include, for example, 0xttss for type and sub-type...with the =
corresponding change in Table 2.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>837<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; =
+-----------+----------------------+--------------------------------+<o:p=
></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>838<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; | community | action &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | encoding &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; |<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>839<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; =
+-----------+----------------------+--------------------------------+<o:p=
></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>840<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; | 0x8006 &nbsp; &nbsp;| traffic-rate-bytes &nbsp; | 2-byte ASN, =
4-byte float &nbsp; &nbsp; &nbsp; |<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>841<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; | TBD &nbsp; &nbsp; &nbsp; | traffic-rate-packets | 2-byte ASN, =
4-byte float &nbsp; &nbsp; &nbsp; |<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>842<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; | 0x8007 &nbsp; &nbsp;| traffic-action &nbsp; &nbsp; &nbsp; | =
bitmask &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;|<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>843<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; | 0x8008 &nbsp; &nbsp;| rt-redirect AS-2byte | 2-octet AS, =
4-octet value &nbsp; &nbsp; &nbsp;|<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>844<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; | 0x8108 &nbsp; &nbsp;| rt-redirect IPv4 &nbsp; &nbsp; | 4-octet =
IPv4 addres, 2-octet &nbsp; |<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>845<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| value &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp;|<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>846<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; | 0x8208 &nbsp; &nbsp;| rt-redirect AS-4byte | 4-octet AS, =
2-octet value &nbsp; &nbsp; &nbsp;|<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>847<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; | 0x8009 &nbsp; &nbsp;| traffic-marking &nbsp; &nbsp; &nbsp;| =
DSCP value &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; |<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>848<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; =
+-----------+----------------------+--------------------------------+<o:p=
></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>850<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Table 2: Traffic Action =
Extended Communities<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
The Table contains terms that have not been defined...&nbsp; It would be =
ideal if the Table contained a forward reference to the section where =
each action is discussed....or at least a general statement about the =
details in the upcoming =
sub-sections...<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>852<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Some traffic action communities may interfere with each =
other.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>853<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Section 7.6 of this specification provides general considerations =
on<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>854<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; such traffic action interference.&nbsp; Any additional definition =
of a<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>855<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; traffic actions specified by additional standards documents or =
vendor<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>856<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; documents MUST specify if the traffic action interacts with =
an<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>857<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; existing traffic actions, and provide error handling per =
[RFC7606].<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/definition of a traffic actions/definition of traffic =
actions<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
&quot;Any additional definition of a traffic actions specified by =
additional standards documents or vendor documents MUST specify...&quot; =
&nbsp;We really can't mandate what vendor documents say. &nbsp; =
s/additional definition of a traffic actions specified by additional =
standards documents or vendor documents MUST specify/additional =
definition of a traffic action MUST =
specify<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
&quot;MUST specify if the traffic action interacts with an existing =
traffic actions&quot; &nbsp;I think you meant something like: &quot;MUST =
specify the action to take =
if...&quot;<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
&quot;Any additional definition of a traffic actions...MUST...provide =
error handling per [RFC7606].&quot; &nbsp;rfc7606 already indicates what =
to do about a malformed Extended Community attribute, which is how other =
actions would presumably be specified. &nbsp; rfc7606 only mandates =
error specifications for new attributes.&nbsp; What are your =
expectations here?<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>859<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Multiple traffic actions may be present for a single NLRI.&nbsp; =
The<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>860<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; traffic actions are processed in ascending order of the =
sub-type<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>861<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; found in the BGP Extended Communities.&nbsp; If not all of them =
can be<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>862<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; processed the filter SHALL NOT be applied at all (for example: if =
for<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>863<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; a given flow there are the action communities rate-limit-bytes =
and<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>864<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; traffic-marking attached, and the plattform does not support one =
of<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>865<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; them also the other shall not be applied for that =
flow).<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
This paragraph is related to =C2=A77.6 (Considerations on Traffic Action =
Interference).&nbsp; Consider putting all the related information =
together.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
&quot;traffic actions are processed in ascending order of the =
sub-type&quot; &nbsp;Several of the communities have the same sub-type; =
if more than one is present, which one should be processed =
first?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
What should a receiver do if multiple of the same community (type and =
sub-type) are included in the UPDATE?&nbsp; Would that be also =
considered interference?<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
What does &quot;processed&quot; mean?&nbsp; Let me explain... The =
example is about not being able to support an action.&nbsp; What about =
not being able to apply the action because, for example, the next hop is =
not reachable?&nbsp; Would that qualify as not being able to =
&quot;process&quot; the action?&nbsp; If other redirect traffic rules =
are included (with perhaps an alternate next hop), would the answer be =
different?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
Make the example a sentence on it's own: eliminate the =
parenthesis.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
s/rate-limit-bytes/traffic-rate-bytes =
(0x8006)<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
s/traffic-marking/traffic-marking =
(0x8009)<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/plattform/platform<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
&quot;If not all of them can be processed the filter SHALL NOT be =
applied...&quot; &nbsp;Should they be forwarded?&nbsp; Is this an =
example of &quot;interfering flow actions&quot; =
(=C2=A77.6)?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>867<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; All traffic actions are specified as transitive BGP =
Extended<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>868<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Communities.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>870<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>7.1.&nbsp; Traffic Rate in Bytes (traffic-rate-bytes) sub-type =
0x06<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>888<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Interferes with: No other BGP Flow Specification traffic action =
in<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>889<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; this document.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
The definition of interference (=C2=A77.6) uses &quot;more than one =
conflicting traffic-rate action&quot; as part of it.&nbsp; So it seems =
that traffic-rate-bytes and traffic-rate-packets may interfere with each =
other.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>891<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>7.2.&nbsp; Traffic Rate in Packets (traffic-rate-packets) =
sub-type TBD<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
Because the &quot;traffic actions are processed in ascending order of =
the sub-type&quot; (=C2=A77), what is the intent for this action?&nbsp; =
How should IANA assign it?&nbsp; I assume that the intent might be to =
process it instead of traffic-rate-bytes (assuming only one might be =
present)...&nbsp; Please be clear in the instructions to IANA (in =
=C2=A712.3).&nbsp; Note that Table 7 requests the assignment from the =
&quot;Generic Transitive Experimental Use Extended Community =
Sub-Types&quot; registry, which seems to limit the assignment =
choices.&nbsp; Having said all that, I would have assumed that this =
action would be a variation of the 0x06 sub-type, but with a different =
type...<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>901<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Interferes with: No other BGP Flow Specification traffic action =
in<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>902<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; this document.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
The definition of interference (=C2=A77.6) uses &quot;more than one =
conflicting traffic-rate action&quot; as part of it.&nbsp; So it seems =
that traffic-rate-bytes and traffic-rate-packets may interfere with each =
other.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>904<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>7.3.&nbsp; Traffic-action (traffic-action) sub-type =
0x07<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>906<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; The traffic-action extended community consists of 6 bytes of =
which<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>907<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; only the 2 least significant bits of the 6th byte (from left =
to<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>908<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; right) are currently defined.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>910<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; &nbsp;40 &nbsp;41 &nbsp;42 &nbsp;43 &nbsp;44 =
&nbsp;45 &nbsp;46 &nbsp;47<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>911<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; =
+---+---+---+---+---+---+---+---+<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>912<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp;reserved &nbsp; &nbsp; =
&nbsp; | S | T |<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>913<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp; =
+---+---+---+---+---+---+---+---+<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
s/reserved/Traffic Action Fields &nbsp; It would be nice if the Figure =
showed that all the bits (not just the ones in the last octet) are part =
of the same field.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
Please add a Figure number..<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>915<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; where S and T are defined as:<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>917<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; o &nbsp;T: Terminal Action (bit 47): When this bit is set, the =
traffic<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>918<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;filtering engine will apply any subsequent filtering =
rules (as<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>919<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;defined by the ordering procedure).&nbsp; If not =
set, the evaluation of<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>920<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;the traffic filter stops when this rule is =
applied.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
According to the processing order and the values from Table 2, not =
setting the bit would effectively cause only the traffic-rate-bytes =
(0x8006) to ever be applied.&nbsp; Is that the correct =
interpretation?<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
If the T bit is not set, can a router drop the communities that are not =
going to be applied...or should they all be =
propagated?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
Clearly, a rogue router could unset the bit before =
propagating...<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>922<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; o &nbsp;S: Sample (bit 46): Enables traffic sampling and logging =
for this<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>923<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;Flow =
Specification.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
If the bit is not set, would sampling/logging be disabled?&nbsp; IOW, is =
this an on/off switch, or is just the on action =
valid?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>925<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; o &nbsp;reserved: should always be set to 0 by the originator and =
not be<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>926<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; &nbsp; &nbsp;evaluated by the receiving BGP =
speaker.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
There is a registry for these bits. &nbsp;s/reserved/Traffic Action =
Fields<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>934<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Interferes with: No other BGP Flow Specification traffic action =
in<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>935<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; this document.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
Based on the definition in =C2=A77.6, I would have thought that this =
action, with the T bit unset, would interfere with other actions that =
will now not be applied.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>937<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>7.4.&nbsp; RT Redirect (rt-redirect) sub-type =
0x08<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>948<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; It should be noted that the low-order nibble of the Redirect's =
Type<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>949<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; field corresponds to the Route Target Extended Community format =
field<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>950<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; (Type). &nbsp;(See Sections 3.1, 3.2, and 4 of [RFC4360] plus =
Section 2 of<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>951<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; [RFC5668].) &nbsp;The low-order octet (Sub-Type) of the Redirect =
Extended<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>952<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Community remains 0x08 for all three encodings of the BGP =
Extended<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>953<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Communities (AS 2-byte, AS 4-byte, and IPv4 =
address).<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] I =
think that this whole paragraph is not needed....and it actually may =
confuse people.&nbsp; I recommend deleting =
it.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>955<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Interferes with: All other redirect =
functions.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
What other redirect functions?&nbsp; The only ones defined are in this =
section.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>957<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>7.5.&nbsp; Traffic Marking (traffic-marking) sub-type =
0x09<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>959<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; The traffic marking extended community instructs a system to =
modify<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>960<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; the DSCP bits of a transiting IP packet to the corresponding =
value.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>961<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; This extended community is encoded as a sequence of 5 zero =
bytes<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>962<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; followed by the DSCP value encoded in the 6 least significant =
bits of<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>963<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; 6th byte.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
What action (if any) should a receiver take if the &quot;5 zero =
bytes&quot; are not (all) set to 0?&nbsp; Maybe include something like: =
&quot;MUST be ignored when =
received...&quot;.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>965<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Interferes with: No other BGP Flow Specification traffic action =
in<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>966<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; this document.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>968<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>7.6.&nbsp; Considerations on Traffic Action =
Interference<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>970<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Since traffic actions are represented as BGP extended =
community<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>971<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; values, traffic actions may interfere with each other (ie. there =
may<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>972<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; be more than one conflicting traffic-rate action associated with =
a<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>973<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; single flow-filter).&nbsp; Traffic action interference has no =
impact on<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>974<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; BGP propagation of flow filters (all communities are =
propagated<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>975<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; according to policies).<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/ie./e.g. &nbsp; I'm assuming it is an example and not the only =
case.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
Is &quot;Traffic action interference&quot; only the case when actions =
describe conflicting actions?&nbsp; For example, different traffic =
rates.&nbsp; Specifically, are actions that can't be applied (as =
described on =C2=A77), also considered as =
interference?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>977<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; If a flow filter associated with interfering flow actions is =
selected<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>978<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; for packet forwarding, it is a implementation decision which of =
the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>979<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; interfering traffic actions are selected.&nbsp; Implementors of =
this<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>980<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; specification SHOULD document the behaviour of their =
implementation<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>981<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; in such cases.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
IOW, deployment of a set of &quot;interfering flow actions&quot; could =
result in inconsistent behavior in the network.&nbsp; Could a rogue BGP =
speaker advertise (or even add/delete) actions to a Flow Specification =
and cause unexpected results?&nbsp; I guess that depending on what the =
action is, there could be a significant effect.&nbsp; I think this is a =
vulnerability that should be called out explicitly.&nbsp; Thinking a =
little bit more...there are two vulnerabilities: (1) add/delete in the =
normal case (even with consistent behavior), and (2) add/delete to =
exploit a specific behavior of a node in the =
network.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>983<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; If required, operators are encouraged to make use of the BGP =
policy<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>984<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; framework supported by their implementation in order to achieve =
a<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>985<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; predictable behaviour (ie. match - replace - delete communities =
on<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>986<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; administrative boundaries).<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
&quot;If required...&quot; &nbsp;When it is not required?&nbsp; IOW, I =
think that those two words are not =
needed.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>988<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
</span>8.&nbsp; Dissemination of Traffic Filtering in BGP/MPLS VPN =
Networks<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>990<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Provider-based Layer 3 VPN networks, such as the ones using a =
BGP/<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>991<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; MPLS IP VPN [RFC4364] control plane, may have different =
traffic<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>992<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; filtering requirements than Internet service providers.&nbsp; But =
also<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>993<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; Internet service providers may use those VPNs for scenarios =
like<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>994<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; having the Internet routing table in a VRF, resulting in the =
same<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>995<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; traffic filtering requirements as defined for the global =
routing<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>996<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; table environment within this document.&nbsp; This document =
proposes an<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>997<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; additional BGP NLRI type (AFI=3D1, SAFI=3D134) value, which can =
be used<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>998<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; to propagate traffic filtering information in a BGP/MPLS =
VPN<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>999<span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span> =
&nbsp; environment.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/proposes/defines (or maybe =
specifies)<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1001<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; The NLRI =
format for this address family consists of a =
fixed-length<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1002<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; Route =
Distinguisher field (8 bytes) followed by a Flow =
Specification,<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1003<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
following the encoding defined above in Section 4.2 of this =
document.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1004<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; The NLRI =
length field shall include both the 8 bytes of the =
Route<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1005<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
Distinguisher as well as the subsequent Flow =
Specification.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
s/Flow Specification, following the encoding defined above in Section =
4.2 of this document./Flow Specification (Section =
4.2).<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1017<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
Propagation of this NLRI is controlled by matching Route =
Target<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1018<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; extended =
communities associated with the BGP path advertisement =
with<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1019<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; the VRF =
import policy, using the same mechanism as described in =
&quot;BGP/<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1020<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; MPLS IP =
VPNs&quot; [RFC4364]..<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/&quot;BGP/MPLS IP VPNs&quot;/BGP/MPLS IP =
VPNs<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1022<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; Flow =
Specification rules received via this NLRI apply only to =
traffic<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1023<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; that =
belongs to the VRF(s) in which it is imported.&nbsp; By =
default,<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1024<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; traffic =
received from a remote PE is switched via an MPLS =
forwarding<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1025<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; decision =
and is not subject to filtering.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1027<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; Contrary =
to the behavior specified for the non-VPN NLRI, flow =
rules<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1028<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; are =
accepted by default, when received from remote PE =
routers.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
The only other mention of &quot;flow rule&quot; is in the Introduction =
when referring to the validation of external Flow Specifications, which =
seems to then map to =C2=A76...but the next sub-section says that those =
procedures apply.&nbsp; What am I =
missing?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1030<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span>8.1.&nbsp; =
Validation Procedures for BGP/MPLS =
VPNs<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1032<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; The =
validation procedures are the same as for =
IPv4.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1034<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span>8.2.&nbsp; =
Traffic Actions Rules<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1036<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; The =
traffic action rules are the same as for =
IPv4.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
These 2 sub-sections could simply be covered by a couple of =
sentences...<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1038<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span>9.&nbsp; =
Limitations of Previous Traffic Filtering =
Efforts<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
This section reads like a justification...&nbsp; I think it would be a =
better fit as a subsection of the =
Introduction.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1040<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span>9.1.&nbsp; =
Limitations in Previous DDoS Traffic Filtering =
Efforts<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1052<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; Several =
techniques are currently used to control traffic filtering =
of<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1053<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; DoS =
attacks.&nbsp; Among those, one of the most common is to =
inject<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1054<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; unicast =
route advertisements corresponding to a destination =
prefix<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1055<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; being =
attacked (commonly known as remote triggered blackhole =
RTBH).<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1056<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; One =
variant of this technique marks such route advertisements with =
a<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1057<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
community that gets translated into a discard Next-Hop by =
the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1058<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
receiving router.&nbsp; Other variants attract traffic to a =
particular<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1059<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; node =
that serves as a deterministic drop =
point.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
Please add Informative references to rfc3882, rfc5635, =
rfc7999...<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1103<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span>10.&nbsp; =
Traffic Monitoring<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1105<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; Traffic =
filtering applications require monitoring and =
traffic<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1106<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
statistics facilities.&nbsp; While this is an =
implementation-specific<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1107<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; choice, =
implementations SHOULD provide:<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1109<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; o =
&nbsp;A mechanism to log the packet header of filtered =
traffic.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1111<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; o =
&nbsp;A mechanism to count the number of matches for a given =
flow<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1112<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp;specification rule.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
Is there any relationship between this section and the S bit in =
=C2=A77.3?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1114<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span>11.&nbsp; =
Error-Handling and Future NLRI =
Extensions<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
Suggestion: this section should be limited to describing what a =
malformed traffic action extended community is, and then simply point to =
rfc7606, which already covers the rest.&nbsp; See more comments =
below.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
The two topics covered here seem =
unrelated...<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1116<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; In case =
BGP encounters an error in a Flow Specification =
UPDATE<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1117<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; message =
it SHOULD treat this message as Treat-as-withdraw =
according<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1118<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; to =
[RFC7606] Section 2.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
The SHOULD above with the communities-related errors described below are =
in conflict with rfc7606, which says this: &quot;An UPDATE message with =
a malformed Extended Community attribute SHALL be handled using the =
approach of =
&quot;treat-as-withdraw&quot;.&quot;<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1120<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; Possible =
reasons for an error are (for more reasons see =
also<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1121<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
[RFC7606]):<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1123<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; o =
&nbsp;Incorrect implementation of this specification - the =
encoding/<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1124<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp;decoding of the NLRI or traffic action extended-communities do =
not<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1125<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp;comply with this specification.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
Related to the NLRI, rfc7606 says that &quot;in order to use the =
approach of &quot;treat-as-withdraw&quot;, the entire NLRI field and/or =
the MP_REACH_NLRI and MP_UNREACH_NLRI attributes need to be successfully =
parsed...&nbsp; If this is not possible...that the &quot;session =
reset&quot; approach (or the &quot;AFI/SAFI disable&quot; approach) MUST =
be followed.&quot;<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
For the Extended Communities...&nbsp; The &quot;incorrect =
implementation&quot; basically means that the encoding is wrong, =
right?&nbsp; But is the part about &quot;comply with this =
specification&quot; necessary?&nbsp; Other traffic action extended =
communities (defined elsewhere) might be received.&nbsp; I would rather =
if the text above talked about malformed (to match the language in =
rfc7606) traffic action extended communities in general (not just the =
ones in this specification).<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1127<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; o =
&nbsp;Unknown Flow Specification extensions - The sending party =
has<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1128<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp;implemented a Flow Specification NLRI extension unknown to =
the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1129<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp;receiving party.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
This treatment of unknown extensions is in conflict with the text in =
=C2=A74.2: &quot;If a given component type within a prefix in unknown, =
the prefix in question cannot be used for traffic filtering purposes by =
the receiver... However, for the purposes of BGP route propagation, this =
prefix should still be transmitted since BGP route distribution is =
independent on NLRI semantics.&quot; &nbsp;IOW, =
&quot;treat-as-withdraw&quot; is not compatible with forwarding =
UPDATES.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1131<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; In order =
to facilitate future extensions of the Flow =
Specification<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1132<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; NLRI, =
such extensions SHOULD specify a way to encode a =
&quot;always-true&quot;<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1133<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; match =
condition within the newly introduced components..&nbsp; This =
match<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1134<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
condition can be used to propagate (and apply) certain filters =
only<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1135<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; if a =
specific extension is known to the =
implemenation.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/a &quot;always-true&quot;/an =
&quot;always-true&quot;<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
What does &quot;always-true&quot; =
mean?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
How come this document doesn't follow the advice about the =
&quot;always-true&quot; match =
condition?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/implemenation/implementation<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1141<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span>12.1.&nbsp; =
AFI/SAFI Definitions<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1143<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; IANA =
maintains a registry entitled &quot;SAFI Values&quot;.&nbsp; For the =
purpose of<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1144<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; this =
work, IANA updated the registry and allocated two =
additional<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1145<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
SAFIs:<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
Even though the text will probably end up as written, it doesn't ask =
IANA for anything: it assumes that the work is done.&nbsp; I would =
prefer it if the text was worded as a request.&nbsp; It may not be an =
issue for IANA, so there's no need to change anything, unless they say =
so.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1147<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
+-------+------------------------------------------+----------------+<o:p=
></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1148<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | Value =
| Name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | =
Reference &nbsp; &nbsp; &nbsp;|<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1149<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
+-------+------------------------------------------+----------------+<o:p=
></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1150<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | 133 =
&nbsp; | IPv4 dissemination of Flow Specification | [this &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;|<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1151<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | &nbsp; =
&nbsp; &nbsp; | rules &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;| document] &nbsp; &nbsp; =
&nbsp;|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1152<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | 134 =
&nbsp; | VPNv4 dissemination of Flow &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp;| [this &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1153<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | &nbsp; =
&nbsp; &nbsp; | Specification rules &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| document] &nbsp; &nbsp; =
&nbsp;|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1154<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
+-------+------------------------------------------+----------------+<o:p=
></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
It's not clear to me (because there's no explicit request) if the intent =
is to add this document as a reference, or to replace the one to =
rfc5575.&nbsp; I would like you to be =
explicit.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1156<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Table 3: =
Registry: SAFI Values<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1158<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span>12.2.&nbsp; Flow =
Component Definitions<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1184<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; In order =
to manage the limited number space and accommodate =
several<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1185<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; usages, =
the following policies defined by [RFC8126] =
used:<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/[RFC8126] used/[RFC8126] are used<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1187<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; =
+--------------+-------------------------------+<o:p></o:p></span></p></d=
iv><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1188<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | Range &nbsp; &nbsp; &nbsp; &nbsp;| Policy =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp;|<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1189<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; =
+--------------+-------------------------------+<o:p></o:p></span></p></d=
iv><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1190<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | 0 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;| Invalid value &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; |<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1191<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | [1 .. 12] &nbsp; &nbsp;| Defined by this =
specification |<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1192<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | [13 .. 127] &nbsp;| Specification required =
&nbsp; &nbsp; &nbsp; &nbsp;|<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1193<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | [128 .. 255] | First Come First Served =
&nbsp; &nbsp; &nbsp; |<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1194<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; =
+--------------+-------------------------------+<o:p></o:p></span></p></d=
iv><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
0 is not really a range...and it's Invalid, so it shouldn't be part of =
the Table detailing the registration policies.&nbsp; BTW, I couldn't =
find the text where 0 is declared Invalid -- please add some text to =
=C2=A74.2.&nbsp; Move 0 to Table 4.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
Besides the fact that &quot;Defined by this specification&quot; is not a =
Policy, this table doesn't change anything in the current registry; it =
is not needed.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1196<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Table 5: Flow Spec Component =
Types Policies<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1198<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; The =
specification of a particular &quot;Flow Spec Component Type&quot; =
must<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1199<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; clearly =
identify what the criteria used to match packets forwarded =
by<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1200<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; the =
router is.&nbsp; This criteria should be meaningful across router =
hops<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1201<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; and not =
depend on values that change hop-by-hop such as TTL or =
Layer<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1202<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; 2 =
encapsulation.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
This paragraph doesn't belong in the IANA section.&nbsp; It seems to be =
laying out the groundwork for new components...so it belongs somewhere =
else.&nbsp; Should any of the language be =
Normative?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1204<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span>12.3.&nbsp; =
Extended Community Flow Specification =
Actions<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1206<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; The =
Extended Community Flow Specification Action types defined =
in<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1207<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; this =
document consist of two parts:<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1209<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp;Type (BGP Transitive Extended Community =
Type)<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1211<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp;Sub-Type<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1213<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; For the =
type-part, IANA maintains a registry entitled &quot;BGP =
Transitive<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1214<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; Extended =
Community Types&quot;.&nbsp; For the purpose of this work (Section =
7),<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1215<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; IANA =
updated the registry to contain the values listed =
below:<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
The range is defined in the registry as &quot;0x80-0x8f <span =
class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 </span>Reserved for Experimental Use&quot;.&nbsp; According to =
rfc8126, &quot;IANA does not record assignments from registries or =
ranges with this policy&quot;.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>I don't =
know why 0x80 was the first value chosen; it looks like it was first =
used in draft-marques-idr-flow-spec-01 (2004), while the corresponding =
Extended Communities draft (draft-ietf-idr-bgp-ext-communities-07) =
already indicated that the range was for Experimental Use.&nbsp; I guess =
just lack of sync...&nbsp; But then I also don't understand how/why IANA =
ended up with the information in the Registry....maybe because the =
sub-types are not for Experimental Use -- hmmm, which sounds =
contradictory to me.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>The =
reason/history doesn't matter anymore, but the current use does.&nbsp; =
The mechanism described in this document is clearly not =
experimental.&nbsp; Given that changing the Type values is not an option =
because of the deployed base, etc.., then I think we should clean up the =
Registry and move 0x80-0x82 from the Experimental Use range to the FCFS =
range.&nbsp; This change would mean an Update to =
rfc7153.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>To =
simplify the process, the Update can be done in this document.&nbsp; =
However, I think that there's some confusion with these types apparently =
being associated only with Flow Specifications, when they are labeled as =
Generic.&nbsp; IOW, ideally the issue would be corrected =
independently...<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1217<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
+-------+-----------------------------------------------+-----------+<o:p=
></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1218<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | Type =
&nbsp;| Name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| Reference |<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1219<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | Value =
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1220<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
+-------+-----------------------------------------------+-----------+<o:p=
></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1221<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | 0x80 =
&nbsp;| Generic Transitive Experimental Use Extended &nbsp;| [RFC7153] =
|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1222<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | &nbsp; =
&nbsp; &nbsp; | Community (Sub-Types are defined in the &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1223<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | &nbsp; =
&nbsp; &nbsp; | &quot;Generic Transitive Experimental Use Extended | =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1224<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | &nbsp; =
&nbsp; &nbsp; | Community Sub-Types&quot; registry) &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1225<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | 0x81 =
&nbsp;| Generic Transitive Experimental Use Extended &nbsp;| [this =
&nbsp; &nbsp; |<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1226<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | &nbsp; =
&nbsp; &nbsp; | Community Part 2 (Sub-Types are defined in &nbsp; =
&nbsp;| document] |<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1227<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | &nbsp; =
&nbsp; &nbsp; | the &quot;Generic Transitive Experimental Use &nbsp; =
&nbsp; &nbsp;| [See &nbsp; &nbsp; =
&nbsp;|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1228<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | &nbsp; =
&nbsp; &nbsp; | Extended Community Part 2 Sub-Types&quot; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| Note-1] &nbsp; =
|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1229<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | &nbsp; =
&nbsp; &nbsp; | Registry) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1230<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | 0x82 =
&nbsp;| Generic Transitive Experimental Use Extended &nbsp;| [this =
&nbsp; &nbsp; |<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1231<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | &nbsp; =
&nbsp; &nbsp; | Community Part 3 (Sub-Types are defined in &nbsp; =
&nbsp;| document] |<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1232<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | &nbsp; =
&nbsp; &nbsp; | the &quot;Generic Transitive Experimental Use &nbsp; =
&nbsp; &nbsp;| [See &nbsp; &nbsp; =
&nbsp;|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1233<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | &nbsp; =
&nbsp; &nbsp; | Extended Community Part 3 Sub-Types&quot; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| Note-1] &nbsp; =
|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1234<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; | &nbsp; =
&nbsp; &nbsp; | Registry) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
|<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1235<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
+-------+-----------------------------------------------+-----------+<o:p=
></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1237<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp;Table 6: Registry: Generic Transitive Experimental Use =
Extended<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1238<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;Community Types<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
In line with Updating the registry and the intent, the names of the =
Types/Registries should not include the word &quot;experimental&quot; to =
avoid any further confusion.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1240<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; Note-1: =
This document obsoletes RFC7674.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
Putting the reference to this note in the Table seems to be asking IANA =
to add a note there too...which I would think is not the case.&nbsp; =
This goes back to the intent of whether the reference to this document =
should replace what is there or simply be =
added.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1292<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; The =
&quot;traffic-action&quot; extended community (Section 7.3) defined in =
this<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1293<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; document =
has 46 unused bits, which can be used to convey =
additional<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1294<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
meaning.&nbsp; IANA created and maintains a new registry =
entitled:<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1295<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
&quot;Traffic Action Fields&quot;.&nbsp; These values should be assigned =
via IETF<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1296<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; Review =
rules only.&nbsp; The following traffic-action fields have =
been<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1297<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
allocated:<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
It needs to be mentioned somewhere that the reference for the whole =
registry (not just the values below) should be moved to this =
document.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1308<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span>13.&nbsp; =
Security Considerations<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1310<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
Inter-provider routing is based on a web of trust.&nbsp; =
Neighboring<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1311<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
autonomous systems are trusted to advertise valid =
reachability<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1312<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
information.&nbsp; If this trust model is violated, a =
neighboring<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1313<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
autonomous system may cause a denial-of-service attack by =
advertising<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1314<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
reachability information for a given prefix for which it does =
not<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1315<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; provide =
service.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
References to Origin Validation (rfc6811) and BGPSec (rfc8205) should be =
mentioned as possible mitigation...with maybe a comment about the =
current deployment status.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1317<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; As long =
as traffic filtering rules are restricted to match =
the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1318<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
corresponding unicast routing paths for the relevant prefixes, =
the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1319<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; security =
characteristics of this proposal are equivalent to =
the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1320<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; existing =
security properties of BGP unicast routing.&nbsp; However, =
this<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1321<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; document =
also specifies traffic filtering actions that may =
need<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1322<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; custom =
additional verification on the receiver side.&nbsp; See Section =
14.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
In general, Flow Specifications have a one-AS-hop propagation model, =
right?&nbsp; This means that the security properties are different =
because (1) unicast routing propagates multiple hops, and (2) the intent =
of the &quot;Route Origin ASN&quot; (rfc6811) is not reflected in the =
request to rate-limit, or even drop (!) traffic to a destination.&nbsp; =
Yes, it is all based on trust...but different.&nbsp; For example, Origin =
Validation wouldn't be available for Flow =
Specifications.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1324<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; Where it =
is not the case, this would open the door to further =
denial-<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1325<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
of-service attacks.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[major] =
Like what?&nbsp; What are possible mitigations?&nbsp; Just saying that =
the door is open is not enough.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1337<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span>14.&nbsp; =
Operational Security Considerations<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
If you ask me, this section should be rolled into the last one: I think =
all the considerations (in both sections) are really =
operational...<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1339<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; While =
the general verification of the traffic filter NLRI =
is<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1340<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
specified in this document (Section 6) the traffic filtering =
actions<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1341<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; received =
by a third party may need custom verification or =
filtering.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1342<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; In =
particular all non traffic-rate actions may allow a third party =
to<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1343<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; modify =
packet forwarding properties and potentially gain access =
to<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1344<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; other =
routing-tables/VPNs or undesired queues.&nbsp; This can be =
avoided<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1345<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; by =
proper filtering of action communities at network borders and =
by<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1346<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; mapping =
user-defined communities (see Section 7) to expose =
certain<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1347<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
forwarding properties to third =
parties.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
I didn't get this last part...&nbsp; I understand filtering, but didn't =
quite understand how the mapping of communities would =
help.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1349<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; Since =
verfication of the traffic filtering NLRI is tied to =
the<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1350<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
announcement of the best unicast route, a unfiltered address =
space<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1351<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; hijack =
(e.g. advertisement of a more specific route) may cause =
this<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1352<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
verification to fail and consequently prevent Flow =
Specification<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1353<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; filters =
from being accepted by a peer.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/verfication/verification<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/a unfiltered/an unfiltered<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
Again, mention Origin Validation as possible =
mitigation.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1355<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span>15.&nbsp; =
Original authors<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1357<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; Barry =
Greene, Pedro Marques, Jared Mauch, Danny McPherson, =
and<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1358<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; Nischal =
Sheth were authors on RFC5575, and therefore are =
contributing<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1359<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; authors =
on this document.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
To be in line with rfc7322, this section should be renamed to =
&quot;Contributors&quot;.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1361<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span>16.&nbsp; =
Acknowledgements<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1370<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; A packet =
rate flowspec action was also discribed in a =
flowspec<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1371<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
extention draft and the authors like to thank Wesley Eddy, =
Justin<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1372<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; Dailey =
and Gilbert Clark for their work.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
This is the first time that &quot;flowspec&quot; is used.&nbsp; Not a =
bad thing...just an observation that we went through the whole document =
without using the colloquial name =
flowspec.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/discribed/described<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/extention/extension<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1374<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
Additional the authors would like to thank Alexander =
Mayrhofer,<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1375<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; Nicolas =
Fevrier, Job Snijders, Jeffrey Haas and Adam Chappell =
for<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1376<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; their =
comments and review.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/Additional/Additionally,<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1378<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span>17.&nbsp; =
References<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1380<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span>17.1.&nbsp; =
Normative References<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1382<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
[IEEE.754.1985]<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1383<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IEEE, &quot;Standard for Binary =
Floating-Point Arithmetic&quot;,<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1384<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IEEE 754-1985, August =
1985.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
IEEE has revised this spec twice, the most current revision was =
published earlier this year.&nbsp; Should the reference to the 1985 =
version be kept?&nbsp; Is there a reason not to point generically to =
IEEE 754, instead of to a specific =
version?<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1419<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; =
[RFC5668] &nbsp;Rekhter, Y., Sangli, S., and D. Tappan, &quot;4-Octet =
AS<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1420<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Specific BGP Extended Community&quot;, =
RFC 5668,<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1421<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DOI 10.17487/RFC5668, October =
2009,<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1422<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;<a =
href=3D"https://www.rfc-editor.org/info/rfc5668">https://www.rfc-editor.o=
rg/info/rfc5668</a>&gt;.<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[minor] =
I don't think this needs to be a Normative =
reference.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1458<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span>Appendix =
A.&nbsp; Comparison with RFC 5575<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>...<o:p><=
/o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1464<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp;Section 1 introduces the Flow Specification NLRI.&nbsp; In RFC5575 =
this<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1465<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp;NLRI was defined as an opaque-key in BGPs database.&nbsp; =
This<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1466<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp;specification has removed all references to a opaque-key =
property.<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1467<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp;BGP is able understand the NLRI encoding.&nbsp; This change =
also<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1468<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp;resulted in a new section regarding error-handling =
and<o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>1469<span=
 class=3Dapple-tab-span>=C2=A0=C2=A0=C2=A0=C2=A0 </span> &nbsp; &nbsp; =
&nbsp;extensibility (Section 11).<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'>[nit] =
s/able understand/able to understand<o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div></div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Helvetica","sans-serif"'><o:p>&nbs=
p;</o:p></span></p></div></body></html>
------=_NextPart_000_009F_01D56F8B.0C7725D0--

