Canadian Prime Minister Justin Trudeau has shaken up his cabinet less than two weeks before Donald Trump's inauguration as US president.

Mr Trudeau named Chrystia Freeland as the new foreign minister amid concern that Mr Trump will renegotiate the North American Free Trade Agreement.

Ms Freeland was trade minister when she oversaw last year's ratification of the Canada-European Union free trade agreement after initial concerns that Europe would not approve it.

The former journalist of Ukrainian descent is barred from Russia - something she has called an honour.

John McCallum, who oversaw the arrival of more than 39,000 Syrian refugees as immigration minister, is retiring from parliament to become ambassador to China as Mr Trudeau embarks on a free trade agreement with the Asian country.

Ahmed Hussen, a Somali refugee, was named Canada's new immigration minister.