Answer: f(x)=0 for all x∈R.
Consider several preliminary substitutions to the problem condition
f(f(x)+f(y))=(x+y)f(x+y).(1)
Substitution x=y=0 gives the equality f(2f(0))=0. Substitution x=2f(0), y=0 gives f(f(0))=0. Finally, substitution x=y=f(0) gives f(0)=0.
Substitution y=0 to (1) implies that for all x∈R holds f(f(x))=xf(x). Suppose that for some a,b∈R holds f(a)=f(b)=0, then af(a)=f(f(a))=f(f(b))=bf(b), whence a=b. Therefore f can attend several times only zero.
We will show that there exists c=0 such that f(c)=0. Substitution y=1−x to (1) implies f(f(x)+f(1−x))=f(1). If f(1)=0, then c=1. Otherwise, f(x)+f(1−x)=1 for all x∈R. Substitutions of x=0 and x=1/2 in the latter equation give f(1)=1 and f(1/2)=1/2. Finally for x=1 and y=1/2 the equality (1) gives f(3/2)=3/2f(3/2), whence f(3/2)=0.
Denote by c an arbitrary nonzero number such that f(c)=0. Substitution x=y=c to (1) implies f(2c)=0. Suppose that there exist a real number t such that f(t)=0. Putting to (1) successively x=c, y=−c+t and x=2c, y=−2c+t, we obtain
f(f(−c+t))=tf(t)=f(f(−2c+t)), where tf(t)=0.
Therefore, f(−c+t)=f(−2c+t)=0, whence −c+t=−2c+t, which contradicts c=0. Consequently such t doesn't exist and f(x)=0 for all x∈R.