An artillery shell or mortar round struck a public transport stop in the rebel-controlled city of Donetsk in eastern Ukraine on Thursday, killing at least eight civilians in an incident both sides blamed on the other.

The attack, which wrecked a trolleybus and blew out windows nearby, followed a night of intense fighting at the city's main airport and diplomatic talks in Berlin involving Ukraine and Russia.

President Petro Poroshenko, returning early from Switzerland where he told the World Economic Forum that Russia now had 9,000 troops inside Ukraine, said he and defence chiefs would work on a plan to "regroup and stop aggression."