Thoughts on Potential OF 1.1 Features Martin Casado, Brandon Heller, Glen Gibb, Rajiv Ramanathan, Leon Poutievski, Edward Crabbe, You Rough Schedule • This week: – – – – TTL decrement LPM on Non-IP fields / Non-contiguous masks Multipath Multiple Tables • Next week – Tunnels and Tags – Misc Openflow Changes • uint32 for port speeds and port ID space • Ability to add and delete ports dynamically – Multiple tables • Following Weeks – Multiple Tables… TTL Decrement • Required for loop prevention, diagnostics • Generalized vs proto specific implementation: – Perception is not a great deal of demand for generalized field decrement – Required for IP, MPLS, various diagnostic tools (traceroute etc) • protocol changes for IP/MPLS field decrement: – Match on TTL – TTL decrement action – Action on ttl 0 would generally be to forward to controller Chksum computation implied LPM on Non-IP • Required for some proposed DC architectures (eg: Portland) • Perhaps also allow Non-contiguous masks? (some odd use cases such as overloading IPv4 addresses in MAC for in DC src routing) • Perhaps just non-contiguous IP and MAC fields • How to implement in backwards compatible manner Multipath • Simple use case: load balance packets across k parallel links based on routing protocol decision • Flows are mapped to link based on results of n tuple hash (typically across src/dst IP, src/dst TCP port or similar) to avoid flow reordering Multipath • Implementation based on concept of a multipath ‘group’ • Each group represents a set of action buckets, one of which is chosen for each packet. – For LAG: bucket port – For L3 ECMP: bucket port, MAC rewrite Perhaps a generalized set of actions on flow • Group existence and membership established dynamically via OF protocol. This decouples config protocol from routing decisions / time scales. • Group management implemented on the controller – Eg: remove/add group on port down/up events when some capacity threshold is reached • The following operations would be required, whether explicit of implicit: – Create/delete multipath group – Add/delete port from group – Query group membership Multipath Implementation Example (1) Explicit Group Definition (1) Implicit Group Definition Implicit VS Explicit Groups • Implicit Advantages: – simpler for developer • no need to consider two messages, message order or consistency • Explicit Advantages: – simpler, dumber switch – Provides level of indirection, more efficient Multiple Tables • Single table leads to combinatoric explosion in both table size and number of flow mod messages eg: from any, to any, tcp port 179, count, drop • Each action must be expanded across every re;evant address in table, resulting in cartesian product of fields matched against Multiple Tables • Model is based on pipeline register (lookup scratchpad) – Is used to track progress of lookup through pipeline • Model requires addition of two new actions: – Resubmit: resubmit packet for another lookup – Write: write a value into the register. Register value should increase monotonically to prevent loops. • Model also requires ability to match on register Multiple Tables Just A Few of the Open Issues • Conflicts between actions in both parallel and serial pipelines – HAL to determine conflict or programmers responsibility? – Override / accumulate action flag ? • table type conflicts - send a reject message? • table overflow - send a reject message? • exposure of parallel tables – is there any use case of non serializable action?