Wednesday, December 11, 2013

SoftCell: Scalable and Flexible Cellular Core Network Architecture

Presenter: Xin Jin
Authors: Xin Jin (Princeton University), Li Erran Li (Bell Labs), Laurent Vanbever (Princeton University), Jennifer Rexford (Princeton University)

Cellular core networks are not flexible and most of functionality is implemented at packet data network gateway (content filtering, app identification, firewalls, etc). Combining functionality of different components from different vendors is not feasible.

The main question: can we make cellular networks like data center networks? Yes, with softcell.

SoftCell runs on commodity hardware as a controller for all the different components. Challenge: scalable support of fine-grained service policies, e.g. combination of various filters, firewalls QoS guarantees. Packet classification has to work with millions of flows. To scale it up, packets are classified at the edge and encoded in source port / destination port because classification at the edge gateway does not scale. Classification is then also piggybacked on destination address/port.
For traffic steering using the policies, aggregate across multiple dimensions: policy id, base station id and user equipment id. The forwarding is then simple based on just the tags.
Control plane load can also be a problem, therefore use a Local Agent at each base station.

Using LTE workload characteristics, each basestation handles a few hundreds of UE arrivals and handoffs, which are sufficiently low for the approach to scale. Commodity switches also have enough memory for policy storage, because generally there are not many.

Overall the softcell architecture runs on commodity hardware sufficiently well for existing workloads.

Q: what is fundamental to cellular networks with respect to traffic steering? What is different from
A: Dominant traffic pattern is North-South, between clients and gateways and few gateway switches.

Q: In cellular networks user traffic is tunnelled using GTP, so there is already aggregation - why can you not just use GTP headers?
A: For different policies you want to route to different middleboxes