On 8/6/19, 8:15 AM, "Joe Clarke (jclarke)" <[email protected]> wrote:
    
    > On Aug 5, 2019, at 18:29, Gray, Andrew A <[email protected]> wrote:
    > 
    > Joe,
    > 
    > Thanks for your review and comments.  Responses in-line.
    > 
    > On 8/5/19, 3:20 PM, "Joe Clarke (jclarke)" <[email protected]> wrote:
    > 
    >> On Aug 5, 2019, at 10:45, Gray, Andrew A <[email protected]> wrote:
    >> 
    >> Hello opsawg,
    >> 
    >> I spoke to a number of IETF folks at IETF 105, along with Tianran and 
Ignas (who I thank for their feedback and suggestions), and it was decided that 
opsawg would be the best place to at least start the conversations about a new 
draft I am proposing, as detailed below.
    >> 
    >> I document several use cases in the draft, but the short version is we 
are wanting to standardize a method for different vendors to handle ASIC-level 
replication of packets, to a remote server, including any and all information 
that ASIC may have about the packet, along with at least part of the payload, 
with a configurable sampling rate and filtering capabilities.
    >> 
    >> Some things on my TODO list for it still:
    >> 
    >> 1. I want to take a closer look at Flowspec rule definition, and see if 
that can be adequately encoded here.  It looks like the YANG model for Flowspec 
rules was draft-wu-idr-flowspec-yang-cfg but that has since expired.
    >> 2. I'm planning on talking at NANOG 77 in Austin with other operators to 
see if there's additional use cases and how much appetite there is.
    >> 3. I'm talking with a couple vendors about implementations - there is 
interest here about it as well.
    >> 
    >> I am sending out the -00 version of this draft and very much welcome 
comments and feedback.  
    > 
    >    Hello, Andrew.  I’ve read through this draft, and I have a few 
comments.  I put it up in GitHub to make it a bit easier.  In addition to your 
TODO, I know Cisco proposed ERSPAN to the IETF a few years ago, but I do not 
know what the discussion was around that 
(https://tools.ietf.org/html/draft-foschiano-erspan-03).  Conceptually, your 
idea seems very similar.  It is perhaps worth exploring what happened with that 
work. 
    > 
    > [AG] ERSPAN doesn't include the potentially useful information the ASIC 
has about the packets (i.e. what it's going to do with it, what the receive 
timestamp was).  That draft seems to only standardize a single encapsulation - 
my desire is to get as much information out of the forwarding ASICs as 
possible, in whatever format works best for the chipset, but still allow 
interop with different receiving packets.
    
    It seems like the ASIC bit blends with what IOAM is doing.  In fact, the 
“framework” you describe might incorporate work like 
https://tools.ietf.org/html/draft-spiegel-ippm-ioam-rawexport-02 with the 
exception that it is using IPFIX for export (which is more overhead than you 
want).  My overarching point is that there is similar work, and it sounds like 
you’re making the right connections to understand what is out there.

[AG] Yes - there are a number of drafts that are doing different things, but we 
have the two requirements of getting at least partial packet payloads and 
wanting the information the forwarding ASIC has (i.e. being able to catch 
packets the ASIC would normally drop) that seems at this point to be different 
enough to warrant a new doc. 
    
    > 
    >    More to the contents of your doc, you have it marked informational, 
but you mention a few times about standardizing the interactions between 
components.  You’re not standardizing as much as you’re defining a specific 
interaction.
    > 
    > [AG] True - it started as informational but has become more standards 
track - will update.
    
    Well, for a standards track, you would have to determine an encap.  And 
then it might be worth breaking out the encap from the YANG module.

[AG] The encap I have proposed in the document is a simple UDP tunnel.  I 
pondered adding GRE in it, but I at least don't have a great use case that GRE 
solves that a basic UDP tunnel doesn't.
    
    > 
    >    In 
https://github.com/xorrkaz/ietf-docs/blob/master/draft-gray-sampled-streaming-00#L195
 you mention NETCONF explicitly.  Why can’t this be done with RESTCONF, gRPC, 
etc.?
    > 
    > [AG] Good point - it very well could be.  I suppose that could be 
reworded to be more as an example.
    > 
    >    In 
https://github.com/xorrkaz/ietf-docs/blob/master/draft-gray-sampled-streaming-00#L249,
 why must a Client re-query?  This seems like telemetry would be ideal to 
update the Client about configuration changes to the stream.
    > 
    > [AG] The re-query is basically the response to the initial configuration 
request - in effect the client pushes part of the configuration (the desired 
filters and such), and the Replicator fills in the rest (what the resulting 
packet format will be, based on ASIC or location or capability or 
what-have-you).  Telemetry seems a bit overkill for what was intended to be a 
single re-pull, but I am open to input?
    
    There has been examples of using YANG push as a way push config and then 
look to see what is actually applied.  This seems to fit in that paradigm of 
use case.
    
    > 
    >    
https://github.com/xorrkaz/ietf-docs/blob/master/draft-gray-sampled-streaming-00#L298,
 are these bit widths or byte?  Either way, they seem too short for things like 
an interface-ref list.  If it is bit width, then it wouldn’t even be long 
enough for a list of actions.
    > 
    > [AG] Those are bits, and it's an example of the resulting data format - 
the actual format returned by the device could be whatever bit width is 
desirable for it.  A few reviewers have thought that packet header and table 
are requirements - I added "example" language to a few different places to try 
and fix that, but apparently it's still too easy to assume those listings are 
the requirements.
    
    I did understand that this was an example.  My point is that I don’t see 
how this is a feasible example.  Based on your description of the fields, I 
couldn’t rationalize how they are used or how they would look.  How could a 
8-bit field present a list of interface-refs?

[AG] The trick here is there's a mapping provided back in the "filled in 
response" portion that gets re-queried (stream-format/port-mappings).  This 
(hypothetically) says "a value of 20 in the data stream means interface-ref 72, 
a value of 33 means interface-ref 73, a value of 97 means interface-ref 74" or 
whatever works best.  An ASIC could say this is 32 bits or what-have-you 
instead, but the full mapping is provided by the control plane in the filled in 
response portion describing the data structure.
    
    >    
https://github.com/xorrkaz/ietf-docs/blob/master/draft-gray-sampled-streaming-00#L309,
 if this is 24 bytes, that seems excessive for two 32-bit integers.  If it’s 
bits, it’s not long enough.
    > 
    > [AG] See previous comment.
    > 
    >    I have other more typographical comments at 
https://github.com/xorrkaz/ietf-docs/commit/7a849d2b12cd2dff151654f3ef37a87ac870a452#diff-580cadc3568cc3a979bb37410222e08b
 .
    > 
    > [AG] I'll roll those in - I'm working from a .xml version and separate 
.yang file, then regenerating the .txt using xml2rfc (but I can't quite upload 
the .xml as I use a <xi:include href="[email protected]" 
parse="text" /> to have the parser pull in the separate yang file for 
formatting.  I can upload those to the Git repository and use those for work, 
if that's easier?
    
    As I said in unicast, I think if you could spin up your own repo, it would 
be easier to add comments/issues or PRs.

[AG] Thanks for that advice - I have done so at 
https://github.com/AGray-Charter/ietf-work and welcome comments/feedback there 
as well.
    
    Additionally, as a co-chair, I’d like to add that it is always good to see 
operators presenting work to the IETF that would make their lives easier.  I 
appreciate you bringing this discussion to opsawg.

[AG] Thanks - this is a problem we see coming up on us very soon, generally 
with the next generation of platforms where the forwarding/data plane has so 
far surpassed the control plane that we will need to rethink how we're doing 
data analytics.  It's one of the use cases I mention in the draft (and the 
strong desire to standardize how this works as opposed to everyone doing their 
own thing), so we're pretty motivated to get traction here.
    
    Joe
    
    

E-MAIL CONFIDENTIALITY NOTICE: 
The contents of this e-mail message and any attachments are intended solely for 
the addressee(s) and may contain confidential and/or legally privileged 
information. If you are not the intended recipient of this message or if this 
message has been addressed to you in error, please immediately alert the sender 
by reply e-mail and then delete this message and any attachments. If you are 
not the intended recipient, you are notified that any use, dissemination, 
distribution, copying, or storage of this message or any attachment is strictly 
prohibited.
_______________________________________________
OPSAWG mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/opsawg

Reply via email to