static void
setup_dev0_ip4 (int ifindex, guint mss_of_first_route, guint32 metric_of_second_route)
{
	GArray *routes = g_array_new (FALSE, FALSE, sizeof (NMPlatformIP4Route));
	NMPlatformIP4Route route = { 0 };

	route.ifindex = ifindex;
	route.mss = 0;

	route.source = NM_IP_CONFIG_SOURCE_USER;
	inet_pton (AF_INET, "6.6.6.0", &route.network);
	route.plen = 24;
	route.gateway = INADDR_ANY;
	route.metric = 20;
	route.mss = mss_of_first_route;
	g_array_append_val (routes, route);

	route.source = NM_IP_CONFIG_SOURCE_USER;
	inet_pton (AF_INET, "7.0.0.0", &route.network);
	route.plen = 8;
	inet_pton (AF_INET, "6.6.6.1", &route.gateway);
	route.metric = metric_of_second_route;
	route.mss = 0;
	g_array_append_val (routes, route);

	nm_route_manager_ip4_route_sync (nm_route_manager_get (), ifindex, routes, TRUE, TRUE);
	g_array_free (routes, TRUE);
}
static void
update_dev0_ip4 (int ifindex)
{
	GArray *routes = g_array_new (FALSE, FALSE, sizeof (NMPlatformIP4Route));
	NMPlatformIP4Route route = { 0 };

	route.ifindex = ifindex;
	route.mss = 0;

	route.source = NM_IP_CONFIG_SOURCE_USER;
	inet_pton (AF_INET, "6.6.6.0", &route.network);
	route.plen = 24;
	route.gateway = INADDR_ANY;
	route.metric = 20;
	g_array_append_val (routes, route);

	route.source = NM_IP_CONFIG_SOURCE_USER;
	inet_pton (AF_INET, "7.0.0.0", &route.network);
	route.plen = 8;
	route.gateway = INADDR_ANY;
	route.metric = 21;
	g_array_append_val (routes, route);

	nm_route_manager_ip4_route_sync (nm_netns_get_route_manager (nm_netns_controller_get_root_netns ()), ifindex, routes, TRUE, TRUE);
	g_array_free (routes, TRUE);
}
static void
setup_dev1_ip4 (int ifindex)
{
	GArray *routes = g_array_new (FALSE, FALSE, sizeof (NMPlatformIP4Route));
	NMPlatformIP4Route route = { 0 };

	route.ifindex = ifindex;
	route.mss = 0;

	/* Add some route outside of route manager. The route manager
	 * should get rid of it upon sync. */
	if (!nm_platform_ip4_route_add (NM_PLATFORM_GET,
	                                route.ifindex,
	                                NM_IP_CONFIG_SOURCE_USER,
	                                nmtst_inet4_from_string ("9.0.0.0"),
	                                8,
	                                INADDR_ANY,
	                                0,
	                                10,
	                                route.mss))
		g_assert_not_reached ();

	route.source = NM_IP_CONFIG_SOURCE_USER;
	inet_pton (AF_INET, "6.6.6.0", &route.network);
	route.plen = 24;
	route.gateway = INADDR_ANY;
	route.metric = 20;
	g_array_append_val (routes, route);

	route.source = NM_IP_CONFIG_SOURCE_USER;
	inet_pton (AF_INET, "7.0.0.0", &route.network);
	route.plen = 8;
	route.gateway = INADDR_ANY;
	route.metric = 22;
	g_array_append_val (routes, route);

	route.source = NM_IP_CONFIG_SOURCE_USER;
	inet_pton (AF_INET, "8.0.0.0", &route.network);
	route.plen = 8;
	inet_pton (AF_INET, "6.6.6.2", &route.gateway);
	route.metric = 22;
	g_array_append_val (routes, route);

	nm_route_manager_ip4_route_sync (nm_route_manager_get (), ifindex, routes, TRUE, TRUE);
	g_array_free (routes, TRUE);
}