-
Task
-
Resolution: Unresolved
-
Normal
-
None
For reference on OVN composable services, please see this document: https://docs.google.com/document/d/1GMyxUJbqTaCxCx3hbEGSu6xMRDriMWUK1dKNFpSWlXo/edit
For this task, you will implement NAT as a standalone service. Here is a basic rundown of the changes that are required:
- Database schema changes
- Add "NAT_Service" table
- northd changes:
- Create logical flows for each row in the NAT_Service table.
- Use functions from FDP-856 to create southbound datapath bindings and port bindings for each row in NAT_Service
- ovn-controller changes
- Ensure that a conntrack zone is assigned for each local Datapath_Binding corresponding to a northd NAT_Service
- Tests
- Ensure that "dnat_and_snat" type is not allowed for NAT services.
- Ensure that northd creates the expected logical flows for each NAT type/direction.
- Ensure that changes to a configured NAT or NAT_Service results in logical flows being re-written.
- Ensure that conntrack zones are allocated for local NAT services. Ensure that conntrack zones are not allocated if the NAT service is not local to the chassis.
- Ensure that traffic that passes through NAT services have their addresses altered as expected.