NATApp acts as a basic framework for providing NAT functionality to the SDN controller. One can use REST or Java APIs to enter global IP address into YANG Data Store which will be used by the odl-natapp-feature to map local IP to global IP addresses.
NATApp listens on OpenFlow southbound interface for Packet_In messages. The application parses the message for header information. If the received message has a local IP address the application installs rules on the OpenFlow switch for network address translation from local to global IP addresses. NATApp has NATPacketHandler class that implements the PacketProcessing interface to override the OnPacketReceived notification by which the application is notified of Packet_In messages.
NATApp is implemented with the help of a few java classes.