This paper describes the design and implementation of a network virtualization substrate ( ) for effective virtualization of wireless resources in cellular networks. Virtualization fosters the realization of several interesting deployment scenarios such as customized virtual networks, virtual services, and widearea corporate networks, with diverse performance objectives. In virtualizing a base station's uplink and downlink resources into slices, meets three key requirements-isolation, customization, and efficient resource utilization-using two novel features: 1) introduces a provably optimal slice scheduler that allows existence of slices with bandwidth-based and resource-based reservations simultaneously; and 2) includes a generic framework for efficiently enabling customized flow scheduling within the base station on a per-slice basis. Through a prototype implementation and detailed evaluation on a WiMAX testbed, we demonstrate the efficacy of . For instance, we show for both downlink and uplink directions that can run different flow schedulers in different slices, run different slices simultaneously with different types of reservations, and perform slice-specific application optimizations for providing customized services.