Setting y=x, we obtain 2xf(xf(x))=2x2f(x), and so f(xf(x))=xf(x) since x>0.
Now suppose f(x)=f(y). Then
x2(f(x)+f(y))=f(yf(x))(x+y)=f(yf(y))(x+y)=yf(y)(x+y)
and so
2x2f(x)=(xy+y2)f(y)⟹2x2−xy−y2=(2x+y)(x−y)=0⟹x=y,
since all the quantities in the equations are positive and so y=−2x. So f is injective. Moreover, setting x=y=1, we obtain f(f(1))=f(1), and so injectivity implies that f(1)=1.
Now set x=1 in the given equation:
f(y)(y+1)=1+f(y)⟹f(y)=y1,
and it is a simple matter to check that the solution f(x)=x1 satisfies the given equation.