A simple solution is to simply create two virtual servers, one at 10.0.1.1 port 8080 that load balances to a pool with one member at 10.1.1.1:8080, and another at 10.0.1.1 port 9090 that load balances to a different pool with one member at 10.1.1.1:9090. You can have two virtual servers listening on the same IP address but different ports and two pools with the same underlying node. This solution does not require port lists or any sort of logic via an iRule or Local Traffic Policy to examine the port on the client-side request and select the appropriate pool member.