Re: [bess] FW: New Version Notification for draft-mackie-bess-nsh-bgp-control-plane-01.txt
"Adrian Farrel" <adrian@olddog.co.uk> Tue, 01 November 2016 16:53 UTC
Return-Path: <adrian@olddog.co.uk>
X-Original-To: bess@ietfa.amsl.com
Delivered-To: bess@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0281E1293EB for <bess@ietfa.amsl.com>; Tue, 1 Nov 2016 09:53:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.62
X-Spam-Level:
X-Spam-Status: No, score=-2.62 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RsPGY_4c1J3n for <bess@ietfa.amsl.com>; Tue, 1 Nov 2016 09:53:44 -0700 (PDT)
Received: from asmtp3.iomartmail.com (asmtp3.iomartmail.com [62.128.201.159]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 785CE129501 for <bess@ietf.org>; Tue, 1 Nov 2016 09:53:43 -0700 (PDT)
Received: from asmtp3.iomartmail.com (localhost.localdomain [127.0.0.1]) by asmtp3.iomartmail.com (8.13.8/8.13.8) with ESMTP id uA1GreWH017559; Tue, 1 Nov 2016 16:53:40 GMT
Received: from 950129200 (248.206.189.80.dyn.plus.net [80.189.206.248]) (authenticated bits=0) by asmtp3.iomartmail.com (8.13.8/8.13.8) with ESMTP id uA1GrdDa017536 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO); Tue, 1 Nov 2016 16:53:40 GMT
From: Adrian Farrel <adrian@olddog.co.uk>
To: "'Joel M. Halpern'" <jmh@joelhalpern.com>
References: <147784375838.20673.15513470878299688311.idtracker@ietfa.amsl.com> <000901d232c9$5841d390$08c57ab0$@olddog.co.uk> <bb42a567-af1d-1137-39d0-32946fc9d258@joelhalpern.com>
In-Reply-To: <bb42a567-af1d-1137-39d0-32946fc9d258@joelhalpern.com>
Date: Tue, 01 Nov 2016 16:53:33 -0000
Message-ID: <022101d23460$7c283400$74789c00$@olddog.co.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQKVZufArLcLzqLuyg8zmKTt0aD7MAGyQKRmAcA9UQSfIl3eEA==
Content-Language: en-gb
X-TM-AS-MML: disable
X-TM-AS-Product-Ver: IMSS-7.1.0.1679-8.0.0.1202-22674.001
X-TM-AS-Result: No--13.808-10.0-31-10
X-imss-scan-details: No--13.808-10.0-31-10
X-TMASE-MatchedRID: 8HTFlOrbAtGnykMun0J1wilrosmS0SOA6Jj6zYvfFAQszxfUl348Siyd RbtZLvkJX381PW63B5RnwcfbAX+pUHOAMSqhBqB6ZSNLxsgoyr9+S5m2/8VLmqdrpTvh7T6oolt mpE+wxFczoBgNFXK6yx11KRpM1qQjw9dU5xwENT0D2WXLXdz+AdNte1LuSj6snWBUWlAKnBPetc vvokqHwuOhC5lTa7Sd5TdOYpA2i/QDOqKd7r6zB/OHbIp2eXtYgdNXa4lpKNudCqKtxM6bhyvd+ 2hXReVzg8sInEJcLhZ5LAkNM0VvMSbkA69Y/24EdrpCZsJVIIVKJXxORkqw+Y3HvDXeBtl6Rtns 0UtB6myU96+EbsoF0G5ehnoFL1UIoNHehjQSkFDcWo5Vvs8MQqFkxMQpsHd+W/Kb+C9IfiI6uNl zbjunZfkjZWX3czU5HjST5wEnzKqm241/fnDhGC4uTw19Klh6/Azwuuy/EnkOAHqXajwVGOrEiR SZkkEfEkO7BEE0ITZ7qnSO9CPkMKJPX3SW5D8riUPZPmKZOQl+RK30aqYpVeOxOq7LQlGL+ocjg 6kQytk1g2myLVBpERxppPBAN/Brm76m+JGdKc6VOwZbcOalSz5qWjX5QROJMMn1rcqKQaj/Ffkj Vyia+94cUouyj6P/+FeuXGwia71xzF1ERcUUn9h3b7/zBhN1yeUl7aCTy8hDENgR7GM8k8IZXeW gC5H4VhUSaZx4dOrTW9j6IJNdfF0U3RPW+iLP+XpOHXxPrp6EQiKo28GuY7uqk4cq52pz/lQM0H dIahpNtdLSk6RTz4yHevzIms+sT1e1bt+UYd+eAiCmPx4NwLTrdaH1ZWqCpvI8UZOf47jUZxEAl FPo846HM5rqDwqtCCl5YAMYRhnXWFmoBLiReOecBGhHyrU/S77u7nhGLxDvC6R/hp+qCw==
Archived-At: <https://mailarchive.ietf.org/arch/msg/bess/4C4Cie7DXMBQ6TZv68X3xrqA1IA>
Cc: bess@ietf.org
Subject: Re: [bess] FW: New Version Notification for draft-mackie-bess-nsh-bgp-control-plane-01.txt
X-BeenThere: bess@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
Reply-To: adrian@olddog.co.uk
List-Id: BGP-Enabled ServiceS working group discussion list <bess.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/bess>, <mailto:bess-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/bess/>
List-Post: <mailto:bess@ietf.org>
List-Help: <mailto:bess-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/bess>, <mailto:bess-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 01 Nov 2016 16:53:47 -0000
Hi Joel, Thanks for engaging in discussion and for supporting some of our ideas. > Thank you authors. > > Reading through this, I have a few questions. > > 1) I like the idea of being able to support multiple SFC overlays. > I can see circumstances when this would be valuable. However, I can > not see how it works. (I presume I am missing something obvious.) > If the SPI are unique, then sure, it works, but they are not really > separate overlays. They are merely administrative slices of the same overlay. > The text in section 5 bullet 1 starts with observing that the path > state is RT specific. That part is fine. It then asserts that the > SFF that receives a packet can somehow tell which RT the packet goes > with. How? Since the underlay is not partitioned into RTs (only the > overlay) the transport mechanism does not indicate that. And the > data packet does not carry an RT. Good catch! We wrote (section 4.3)... The SPI is unique across all service function overlay networks supported by the underlay network. This certainly makes life easier and comes at negligible cost because the SPI space can either be in the control of a single controller, or can be partitioned across multiple controllers. However, this could be relaxed a little. In the data plane it is the combination of tunnel/SPI that needs to be distinguishable (compare with how a L3VPN VRF is identified). In the control plane, the RD/SPI needs to be globally unique. So we'll update the text to make that clear. > 2) The Path hop information (for a specific SPI, SI) allows for > carrying multiple SFTs. It allows for multiple SFIs, which is > important and useful. The multiple SFTs seems to be intended to > allow for the case where SFT A or B can be done at hops 9 or 8. > Which would be nice to allow. But since the second SFF (at hop 8) > will not know whether the first SFF (at hop 9) chose A or B, I do > not see how it can correctly choose the opposite. > > Are there additional assumptions made to enable this? The text in > the example of section 8.4 seems to imply a different sort of use > case for this multiple SFT at a hop situation. But I can not see > how that will be implemented interoperably. Having control know > magically that the SFF can correctly select an SFT based on > unspecified information seems problematic. If you build a chain that allows a choice of service functions at a particular point, then (presumably) you are happy that this choice is made. Consider for example that three "similar" implementations of a particular function exist (say a firewall), but that they are given different SFT values because although they are similar, they are not identical. Suppose further that the controller is happy for either of the first two implementations to be used, but not the third. In this case the chain would include a choice not just between SFIs, but between SFIs of different types. The choice in this case would be made based on local considerations and would be just like any other choice of SFI for a given SI. The use case you give is interesting, but different. You are basically saying that (part of) the chain consists of a set of functions that must all be implemented, but where the order is not important. That becomes complicated because it is not a natural fit with the concept of a chain. To achieve it you either need some state associated with the packets (like a recorded route - possibly in metadata) or you have to perform branching (reclassification) to jump into different chains (by changing SPI) so that choices become more limited as the packet executes some functions and moves forward. Personally, if I had to deploy such function, I think I would opt for the controller making the decision up front. But if I really wanted to delegate the choice into the network, I would do it with branching. > 3) I am a bit confused by section 6.1 on looping, jumping, and > branching. Looping (more accurately spiraling) should not require > any special handling. Simply put the same SFI information at two > different SIs in the same SPI, and spiraling occurs. No special > handling needed. > > Jumping seems to be a special case of reclassificaiton. So I would > prefer to see it simply handled by the same mechanism (why have two > mechanisms that can do the same job.) > > Branching seems not to handle the most common case where we need to > branch. That is the situation where packets in a given SFP, as a > result of processing by an SF, will usually continue down the SFP, > but under some circumstances (and there are a range of them) will > need to take a different path. > > The Assumption in the SFC work is that the SF indicates the need for > reclassificiation by adjusting the flags in the NSH header, and that > a classifier co-resident with the SFF then performs reclassification. > The mechanism you describe in section 6.1 does not seem to support that. You are right that jumping, looping (let's keep that term because it is clear that it means going back to a particular point), and branching are all similar. That is, they all involve a different behavior from the normal decrement-SI-and-get-on-with-it style of advancing down the chain. But, obviously, they are subtly different and pose different problems. You are also correct that *if* the processing is linear (i.e., no choice involved) then looping can be encoded as a straight-forward sequence in the SFP, jumping would be unnecessary because the jumped-over hops would not need to be in the chain at all, and branching would really just be a shorthand. But we are covering the case where the progress is conditional on something - call it reclassification if you like, or consider is a policy-based decision. In these cases, SFP must encode the choice. Additionally, the looped-back-to SFF has to have forwarding state dependent on the SI it is processing. By re-using the SI (i.e., looping back to exactly a previous point on the SFP) we minimize that state. The location of the re-classification is a matter for debate. It is probably an implementation issue, and I hope that the architecture will not unnecessarily constrain the implementation. You have suggested here that "a classifier co-resident with the SFF performs reclassification" and that certainly fits with our approach although there are two forms of re-classification possible. 1. The re-classifier is programmed though the controller to be aware of potential changes (loop, jump, branch) and acts accordingly. 2. The re-classifier learns of options for re-classification through inspection of the SFPR that was advertised. We support both. On the other hand, draft-ietf-sfc-nsh (section 4) makes it clear that any of the SFF, SF, and proxy may perform re-classification. In other words, the packet received back from the SF by the SFF may already have been re-classified so that the SPI/SI is different from what is "expected". We also support that mode of operation. > 3') Also, that is why we do not usually describe the classifier as a > service function. Classifiers (including in path reclassifiers) are > permitted to overwrite the SFP ID. Service functions are not > permitted to do that. We may be getting confused between logical functions and implementation components. If (as we do) we say that anything that modifies the SPI/SI other than by simple decrement of the SI is performing classification, then it is evident that when an SF or SFF modifies the SPI/SI then it has a co-resident classifier. That is, the SF or SFF has classifier function built in. Of course, the classifier may also be a "bump in the virtual wire". > 4) I notice that the examples still show the SI being adjusted by > more than 1. The NSH draft has been clarified, at the request of > the AD and WG, to make it clear that the SI is decremented by 1 at each hop. > (If that were not the case, we would need additional information in > the control as to how much to decrement the SI. Which would be a > complication with no value.) I think you may be using the Future Perfect form of the Present Tense, Joel. The current version of the draft (-10) shows "decrement" and has no mention of requiring a unitary decrement. But, frankly, this is not relevant. We absolutely support the possibility of decrementing the SI by just one. But we also support re-classification that is co-resident in the SF and changes the SI by a different amount. We think that the SFF does not need to be able to tell whether an SF has invoked re-classification and therefore it should be built to expect and SPI/SI on returned packets. Probably as an aside that belongs on the SFC list - using the protocol spec to define the behavior of an SF that receives a message, processes the contents, and then forwards it is suspect. It is using the protocol spec to build the architecture. And, in practice, you could not enforce the 2119 language since a downstream node will not know what value SI its upstream neighbor received. Furthermore, since re-classifiers can be built in anywhere (including into an SF) the decrement process can be over-ridden. Thus, the best you can achieve in the NSH spec is "The SF SHOULD decrement the SI by one, but MAY utilize re-classification to set the SI to any other value." We also see some value in the "gaps" in a SFP to allow later insertion of more SFs without renumbering (recall writing code in Fortran ;-). Not renumbering is helpful for other SFPs that may branch to this one. Note that renumbering changes the *start* of a chain because the SIs decrement. Looking forward to discussing this further. Regards, Adrian
- [bess] FW: New Version Notification for draft-mac… Adrian Farrel
- Re: [bess] FW: New Version Notification for draft… Joel M. Halpern
- Re: [bess] FW: New Version Notification for draft… Adrian Farrel
- Re: [bess] FW: New Version Notification for draft… Joel M. Halpern
- Re: [bess] FW: New Version Notification for draft… Adrian Farrel
- Re: [bess] FW: New Version Notification for draft… Joel M. Halpern
- Re: [bess] FW: New Version Notification for draft… Eric C Rosen
- Re: [bess] FW: New Version Notification for draft… Joel M. Halpern
- Re: [bess] FW: New Version Notification for draft… Eric C Rosen
- Re: [bess] FW: New Version Notification for draft… UTTARO, JAMES