America has cancelled £230m ($300m) of aid to Pakistan just days before a visit by Washington's top diplomat, amid US frustration Islamabad is still doing too little to rein in Afghan militants.

The Pentagon said it would spend the military aid elsewhere because of a lack of Pakistani action backing US troops in Afghanistan.

America has long accused Pakistan, and particularly its military spy agency, of providing a safe haven and support to Taliban militants fighting in Afghanistan.

The announcement to cancel the aid, which was already suspended, came only days before Mike Pompeo is due to arrive in Pakistan requesting help to bolster Ashraf Ghani's beleaguered Kabul government.

A year into Donald Trump's revamped South Asia strategy to end the Afghan conflict, US officials say Islamabad has not done enough to clamp down on the Taliban or its Haqqani network faction.