Example #1
0
static gboolean
do_ip4_route_add (char **argv)
{
	int ifindex = parse_ifindex (*argv++);
	in_addr_t network, gateway;
	int plen, metric, mss;

   	parse_ip4_address (*argv++, &network, &plen);
	parse_ip4_address (*argv++, &gateway, NULL);
	metric = strtol (*argv++, NULL, 10);
	mss = strtol (*argv++, NULL, 10);

	return nm_platform_ip4_route_add (ifindex, network, plen, gateway, metric, mss);
}
Example #2
0
static gboolean
do_ip4_route_add (char **argv)
{
	int ifindex = parse_ifindex (*argv++);
	in_addr_t network, gateway;
	int plen, metric, mss;

	parse_ip4_address (*argv++, &network, &plen);
	parse_ip4_address (*argv++, &gateway, NULL);
	metric = strtol (*argv++, NULL, 10);
	mss = strtol (*argv++, NULL, 10);

	return nm_platform_ip4_route_add (NM_PLATFORM_GET, ifindex, NM_IP_CONFIG_SOURCE_USER,
	                                  network, plen, gateway, 0,
	                                  metric, mss);
}
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);
}