A uniform interface for programming SDN switches that supports various low-level protocols