Early routers only had to perform limited packet header field modifications. This included decrementing the Time-to-Live (TTL) field and swapping the MAC header to the source-destination MAC headers for the next hop. In the case of multicast support, they had to replicate the packet for transmission out multiple output ports. As the switch’s features grew to support advanced capabilities such as virtual local area networks (VLANs) and multiprotocol label switching (MPLS), more packet header fields needed ever more complex manipulation. To this end, the idea of programmable rules came into being, whereby some of this more complex processing could be encoded in rules and carried out directly in ...
Beginning of programming in networking 
Share this highlighthttp://www.safaribooksonline.com/a/software-defined-networks/38096/