Using Programmable Logic to Enable Adaptable Networks