High-Level Abstractions for Programming Network Policies