[Sdnp] Proposed SDN BOF charter
tnadeau at lucidvision.com
Tue Sep 20 07:48:01 EDT 2011
On Sep 20, 2011, at 3:27 AM, Robert Raszuk wrote:
> Hi Anton,
>> So what exactly prevents an SDN controller (as initially envisioned by
>> Tom and Ping) extract the relevant information from an SDN plugin which
>> in turn talks low level to the network - either polling via existing NMS
>> methods or talking to protocol extensions?
> The "extract" part.
> What you have extracted in t=0 in t=1 is already obsolete. Note that bandwidth is just one tiny variable. Modern applications require more predictable/guaranteed network behaviour with per application path protection or not.
> The only way around is the ONF approach of controller having full 100% control over network resources and which can at his own decision use this knowledge to centrally control the flows in his part of the network. Assuming non blocking router's and switch fabrics this narrows down to controller "owning" all or part of the links in the network.
>> The way I understand the SDN goal it is not about instrumentation of the
>> network, it is not about making it dynamic per se.
> Same here. The dynamic factor here is my opinion not possible to get centralized to few controllers. I do think that we would be better of in investigation how to make it fully distributed and instead of defining north/south APIs from controller define very few new network forwarding classifiers. That's it here. Then we can take those and work on how to extend existing protocols in other WGs to accommodate them.
I wanted to point out that I do not think that any of the discussions to-date had precluded a "fully distributed" approach to distributing the SDN Conductor over having 1 or a few of them. The only issue we have to contend with in such a configuration is synchronization between the Conductors.
> This as a matter of fact may turn around today's ISP business. One may be able to charge for premium application transport on a per packet basis. There are number of applications and customers who will be able to pay for premium application treatment (roaming included).
Indeed, although perhaps not only in that case, but in others such as allowing *user* applications to manipulate or interact with network components/elements in a completely new way.
>> It is about
>> presentation through a uniform interface and API. SDN presents to the
>> applications an interface which may or may not allow all that depending
>> on which plugins plug into the back of the SDN controller. Depending on
>> these you may have the full spectrum starting with "extended IGP"
>> dynamic, jitter and delay information collecting network which can be
>> made to change its state on a ms scale and finishing with a bog standard
>> set of statics.
> I think I see where there is slight divergence in the goals.
> What you have just stated about is the way to present network abstraction in a uniform way. I am 100% for it and I think this is indeed Tom's #1 objective.
Yes, presentation of network elements and objects in a consistent manner is what is missing from today's networks. One of the use cases that I gave during the Bar BOF was just this one: imagine an application performance monitoring application has just detected that an application is not getting lets say the latency profile it requires for database transactions. It then decides to troubleshoot the situation by interrogating pieces of the network: the first hop PE, and so on. Today the assumption is that it goes this using SNMP, CLI, Netconf/etc... The issue is these are not implemented uniformly. Next, consider the scenario to its conclusion: after it has looked at the network paths, it gets to the data center where the server is hosted as a VM. Which VM and where is it located? How is the VM connected and what are its resources? In this case, the application needs to find the hypervisor(s) that manage the VM. So you need to talk it it, as well as locate it. That is difficult at best to do today. Finally, consider if there are virtualized network components attached to that VM (or inside it). That is one such "russian dolls" case that Anton was referring to earlier, that is most certainly not handled by the infrastructure available today. The application is out on its own on this one. SDN could solve all of these cases.
> However this will work fine as network presentation. I hardly see a way to make this also work in other direction .. application modifying the today's network on as needed basis. Hence for that part I would rather see us considering either making networks aware about applications they carry or make it dumb completely and outsource all the brains to controllers (which would not be the first time it is attempted in the industry and clearly not the last one :).
There is no reason why the relationship shouldn't be bi-directional. That is, we are considering an application talking to a device through the SDN conductor + Plug-In interface, but why wouldn't a device do the same in the reverse direction? I see this as a requirement if we are to handle any sort of notifications from devices too.
>> The important thing is that in either case you talk to it the same way.
>> My 2p, cheers,
>>>> These abstractions must also
>>>> allow applications to manipulate resources at varying levels of
>>>> granularity, policy and security.
>>> I have just went via all archives of discussions so far and would like
>>> to share my perspective on few comments made on the list so far.
>>> I think it will be pretty accurate conclusion that this BOF/WG aims to:
>>> "The goal is having the applications programming the network, without
>>> breaking it."
>>> "IMHO, we need to leverage the existing control-plane, and try to
>>> "virtualize" and program the physical networks for more efficient data
>>> Other comments where suggesting to not define new data planes nor do
>>> any changes to existing data planes.
>>> That means that the goal of this WG has been set to: "Making
>>> Applications Network Aware"
>>> If I have an application which is very delay and jitter sensitive or
>>> like someone mentioned should not use 3G but WiFi access to a mobile
>>> device when downloading the new app update that this effectively means
>>> that controller would need to centrally collect and process massive
>>> amount of dynamic network states in order to "manage" or "program" the
>>> network to serve given application. Sorry to say but there are number
>>> of issues with this:
>>> A) Networks today do not report or use in IGP's SPF or BGP best path
>>> jitter, delay, packet loss, e2e path rtt in any path calculation.
>>> B) Even if they would exporting such massive dynamic state up even the
>>> single layer IMHO is a pretty terrible idea.
>>> C) Networks are extremely dynamic. If we have avoided considering
>>> dynamic constrains in routing for all those years it was done for a
>>> reason .. it is hard. Doing it dynamically on controllers then
>>> "programming" the network with the answer is a challenge as by the
>>> time you are done with the computation the network in any of the
>>> decent size has already changed - you may as well start over.
>>> D) If this is to be done from controller POV I think the only way is
>>> to do it in a sort of circuit switching mode ... even if circuit would
>>> be based in flow rule recognition of each packet.
>>> So what is the conclusion ?
>>> Perhaps just thinking loud here, but I would like to solicit group's
>>> feedback on turning 180 degrees from the above goal.
>>> We are in IETF and we all quite well know how to define, build and
>>> operate networks and network protocols.
>>> Why don't we instead of exposing network parameters to applications do
>>> the opposite ... make network application aware ? Today networks just
>>> transport packets. They have no clue on what they carry in those packets.
>>> What if the goal of this WG would instead read: "Making Networks
>>> Applications Aware"
>>> Today operationally we could do RSVP Intserv (as Ed very correctly
>>> pointed out). With some recent enhancements we have provided tools to
>>> operators to do the thinking and construct mostly intra-domain TE
>>> paths centrally to engineer the flows. This does not work inter-domain
>>> when we are to talk across continents or globe. This also is all about
>>> control plane reservations therefor any unaccounted flow in the
>>> network messes up the picture.
>>> My vision is to give network a packet and let the network transport it
>>> not only like today by dry SPF or BGP best path rules, but taking into
>>> the forwarding decision the nature/type of such packet.
>>> That means effectively three things:
>>> - define a very small set of application primitives which must be
>>> handled by the network (delay, link affinity, jitter, loss, bandwith,
>>> protection etc ...)
>>> - extend current network protocols to measure and use in their
>>> decision above primitives
>>> - define (or perhaps share with existing work in other similar bodies
>>> example ONF) the way to communicate the primitives to the network (per
>>> packet, per flow, per src application etc ..)
>>> - make the networks smarter to carry today and tomorrow apps,
>>> - completely distribute the smartness,
>>> - supporting small set of primitives would be easy to agree inter-
>>> vendor or inter-provider,
>>> - good scaling property,
>>> - drastic shift from today's "full manual operator control" how his
>>> bits are flowing in entire network or in subset of the network
>>> allowed for being applications aware.
>>> While this is just a very short note I welcome your comments,
>>> questions, flames to the sort of fully reversed out of the box
>>> approach as compared with the just proposed charter.
>>> SDNP mailing list
>>> SDNP at lucidvision.com
> SDNP mailing list
> SDNP at lucidvision.com
More information about the SDNP