C. Ji
Please Note
6 records found
1
T4G
Trace-based P4 Program Generation
For decades, packet forwarding was mainly performed by fixed-function routers and switches. These devices provide high performance, yet their packet processing behavior is largely constrained by the underlying hardware and vendor-specific interfaces. SDN improved network flexibility by making the control plane programmable, yet many time-sensitive decisions still require communication between the data plane and the controller. More recently, programmable data-plane devices have shifted part of this flexibility into the forwarding plane, allowing network operators to define packet-processing behaviors directly using programming languages such as P4. Such programmability enables parsing custom headers, implementing match-action logic, and, crucially, maintaining custom stateful logic at line rate.
Among the capabilities exposed by programmable data-plane devices, operator-defined stateful packet processing is one of the most important features. While fixed-function devices have supported specific forms of stateful behavior, such as counters, meters, and protocol-specific state tables, programmable data planes allow operators to define how packets interact with locally maintained state. This enables packet-processing decisions to depend not only on the current packet, but also on flow history, network context, and other factors. As a result, programmable data-plane devices can support advanced in-network applications, including load balancing, in-band telemetry, security, and in-network computation.
However, statefulness also makes programmable data planes difficult to construct, update, and protect. A stateful data-plane application is not merely defined by the program logic, but also by the state it creates and maintains. This state may change at line rate under tight hardware constraints; thus, building practical stateful data-plane applications requires mechanisms for automation and resilience.
This thesis investigates how programmable switches can support automation and resilience for stateful data-plane applications. The core idea is that data-plane state must be managed explicitly throughout the data-plane application life cycle, so that it can be constructed, preserved, and used correctly.
The systems developed in the thesis follow three connected directions. First, the thesis examines how program construction and evolution can be simplified to reduce the manual effort required by network operators. Second, the thesis studies how stateful data-plane applications can remain available in the presence of link or device failures. Third, the thesis explores how locally maintained states can support collaborative security applications, where multiple programmable devices jointly contribute to a network-wide decision.
The contributions of this thesis show that programmable stateful packet processing requires more than exposing packet logic to operators. State management, failure handling, and application logic must be considered jointly to make stateful behavior practical in programmable data planes. ...
For decades, packet forwarding was mainly performed by fixed-function routers and switches. These devices provide high performance, yet their packet processing behavior is largely constrained by the underlying hardware and vendor-specific interfaces. SDN improved network flexibility by making the control plane programmable, yet many time-sensitive decisions still require communication between the data plane and the controller. More recently, programmable data-plane devices have shifted part of this flexibility into the forwarding plane, allowing network operators to define packet-processing behaviors directly using programming languages such as P4. Such programmability enables parsing custom headers, implementing match-action logic, and, crucially, maintaining custom stateful logic at line rate.
Among the capabilities exposed by programmable data-plane devices, operator-defined stateful packet processing is one of the most important features. While fixed-function devices have supported specific forms of stateful behavior, such as counters, meters, and protocol-specific state tables, programmable data planes allow operators to define how packets interact with locally maintained state. This enables packet-processing decisions to depend not only on the current packet, but also on flow history, network context, and other factors. As a result, programmable data-plane devices can support advanced in-network applications, including load balancing, in-band telemetry, security, and in-network computation.
However, statefulness also makes programmable data planes difficult to construct, update, and protect. A stateful data-plane application is not merely defined by the program logic, but also by the state it creates and maintains. This state may change at line rate under tight hardware constraints; thus, building practical stateful data-plane applications requires mechanisms for automation and resilience.
This thesis investigates how programmable switches can support automation and resilience for stateful data-plane applications. The core idea is that data-plane state must be managed explicitly throughout the data-plane application life cycle, so that it can be constructed, preserved, and used correctly.
The systems developed in the thesis follow three connected directions. First, the thesis examines how program construction and evolution can be simplified to reduce the manual effort required by network operators. Second, the thesis studies how stateful data-plane applications can remain available in the presence of link or device failures. Third, the thesis explores how locally maintained states can support collaborative security applications, where multiple programmable devices jointly contribute to a network-wide decision.
The contributions of this thesis show that programmable stateful packet processing requires more than exposing packet logic to operators. State management, failure handling, and application logic must be considered jointly to make stateful behavior practical in programmable data planes.
ARDAPL
An Adaptive Resilient Data-Plane for Stateful Packet Processing
Programmable data plane devices have enabled various in-network applications that rely on locally stored state for delivering low-latency and high-throughput services. However, these applications are susceptible to network failures, which can disrupt state access and network functionality. Timely and reliable failure detection is therefore a critical component of a stateful data plane. In this paper, we propose a data plane framework, FASTR, that enables microsecond-scale fast failure detection between directly connected switches. FASTR can achieve sub- 10 μ s detection latency by implementing a heartbeat mechanism in the data plane. In addition, FASTR also incorporates traffic-awareness to reduce overhead and priority queuing to avoid false alarms. We validate FASTR with hardware experiments, demonstrating that it can consistently detect failures within 10 μ s using a 4 μ s interval while remaining robust to network congestion.
To cater to constantly changing network needs, enabling stateful reconfiguration of Network Functions (NFs) is crucial. Recently, there has been growing interest in offloading NFs to programmable network devices. Unfortunately, it is currently not possible to maintain the full state of NFs during a switch reconfiguration without consuming network resources from and to neighboring switches. In this paper, we present State4, a framework that maintains the state of P4 programs during the reconfiguration of a P4-programmab1e network device, by only using a small amount of local resources on the switch undergoing reconfiguration. State4 acts on both the in-switch control-plane and the data-plane. By utilizing the in-switch local controller, State4 requires no external network resources to achieve reconfiguration while preserving states. As such, State4 enables on-The-fly reconfiguration of stateful NFs, at minimal traffic disruption, where previously traffic had to be re-routed.