Roger Federer beats Fabio Fognini to give Switzerland an unbeatable 3-1 lead over in the Davis Cup semifinal in Geneva.