Programmability is fuel for network innovation. In today’s programmable networks, new features can be easily developed without having to rely on vendor support. However, deploying new features still requires fleet-wide maintenance to avoid disruption because device reprogramming incurs downtime. This severely constrains the speed of change, as maintenance operations require meticulous planning well ahead of time. This project proposes runtime programmable networks, where the end-to-end network infrastructure, vertically from the host kernels down to the network interface cards, and horizontally extending across switches to the other end of the network, can be reprogrammed on-the-fly without packet drops and with strong consistency guarantees. This represents a major leap from today’s programmable networks, which are reconfigurable at compile time but become fixed functions at runtime after deployment. According to this project's vision, FlexNet, the network infrastructure provides a collection of basic utilities and, on demand, extensions are partially reconfigured into the infrastructure by injecting, removing, or overriding specific functions. This accelerates the speed of delivering new features to end users, increases the manageability of large networks by lowering the barrier for change, and creates new possibilities unavailable in today’s programmable networks, such as powerful, dynamic security defenses. With FlexNet, this project can summon security defenses into