The user API for gateway allows users to specify an empty internal prefixes list (ips in dataplane's code) with a non-empty list of excluded prefixes (not) for an expose object. My understanding is that, in that case, we consider that the user wants to use IPs from the whole IP addressing space, except for the excluded prefixes. The same is allowed for the lists of publicly exposed IPs (empty as_range with non-empty not_as).
We don't support such configurations in the current NAT code, however. Therefore, we forbid it at validation time in #648.
This issue is to track this mismatch between the user API and the current restrictions in the code. We need to solve this either way:
- by restricting the user API to forbid such configurations, if we decide it doesn't make sense,
- or by adding support accordingly in the dataplane.