I am working on a project using GNU Radio and USRP radios (Ettus B205mini). I would like to vary the output power based on an incoming signal strength. For example, given a frequency (let's say 900MHz), output power should scale with the strength of a control tone on that frequency. Is this possible to do out-of-the-box or would I need to code a new block for it?
Should be possible. You can convert signal to signal power with the "complex to magnitude square block"; then scale that to something useful (i.e. between 0 and 1) with the "multiply const" block, or use any other combination of arithmetic blocks to achieve the desired power / power curve.
Then, you'd typically low-pass filter the result, and use it with a "Multiply" block to scale the complex numbers you feed into the "USRP Sink".
GNU Radio: Varying output power based on incoming signal strength