Sorry for any confusion. If you only want to perform SNAT translation for connections to a specific destination port, you'd actually need to configure a VIP. You can't restrict a default SNAT to a single port.
The VIP would be 0.0.0.0:80 / 0.0.0.0. You could then add the SNAT pool to the VIP. If you have a pool of default gateways, you could configure them in a pool and attach it to the VIP. Else, you could create a Forwarding (IP) VIP. Create a datagroup of type address and add the client IP addresses you want to perform source address translation for. You can then use an iRule which either disables SNAT for any client not in the datagroup or if you don't want to allow arbitrary clients to use this VIP for outbound port 80 traffic, you could either drop or reject those clients.
The rule might look like this:
when CLIENT_ACCEPTED {
Check if client is not part of the allowed clients datagroup
if {not [matchclass [IP::client_addr] equals allowed_clients_dg]}{
Drop the request
drop
Allow the request, but disable SNAT
snat none
}
}
The default action would be to apply the SNAT pool as configured on the VIP and either forward the request or send it to the gateway pool.
Aaron