'Add SNAT interface to the specified router and subnet.'

def _add_csnat_router_interface_port(self, context, router, network_id, subnet_id, do_pop=True):

    port_data = {'tenant_id': '', 'network_id': network_id, 'fixed_ips': [{'subnet_id': subnet_id}], 'device_id': router.id, 'device_owner': const.DEVICE_OWNER_ROUTER_SNAT, 'admin_state_up': True, 'name': ''}
    snat_port = p_utils.create_port(self._core_plugin, context, {'port': port_data})
    if (not snat_port):
        msg = _('Unable    to    create    the    SNAT    Interface    Port')
        raise n_exc.BadRequest(resource='router', msg=msg)
    l3_obj.RouterPort(context, port_id=snat_port['id'], router_id=router.id, port_type=const.DEVICE_OWNER_ROUTER_SNAT).create()
    if do_pop:
        return self.l3plugin._populate_mtu_and_subnets_for_ports(context, [snat_port])
    return snat_port
