In this lesson we’ll be exploring consistent updates in SDN’s. As a reminder from last lesson, we looked at how to update switch flow table entries using open flow control commands from the control. The open flow API however does not provide specific guarantees about the Level of consistency that packets along an end-to-end path can experience. So for example, updates to multiple switches along a path in a network that occur at different times may result in problems such as forwarding loops. Additionally, if updates to the switches along an end-to-end path occur in the middle of a flow, Packets from the same flow may be subjected to different network states. These two problems are known as consistency problems. The first problem is known as a packet level consistency problem and the second problem is known as a flow level consistency problem. In this lesson, we will explore these problems in more detail and look at various approaches to guaranteeing consistent updates in SDNs. To think about consistency properly, we first need a notion of a high level programming model that sits on top of what we would call the southbound interface. We’ll talk about how to write applications, that use the controller interface that we learned about in the last lesson. That can rely on a better notion of consistency, than existing controller platforms currently provide. Let’s first think about how we want to program these applications. And what type of abstraction the applications would require from the underlying control interface.