static gboolean do_ip6_route_add (char **argv) { int ifindex = parse_ifindex (*argv++); struct in6_addr network, gateway; int plen, metric, mss; parse_ip6_address (*argv++, &network, &plen); parse_ip6_address (*argv++, &gateway, NULL); metric = strtol (*argv++, NULL, 10); mss = strtol (*argv++, NULL, 10); return nm_platform_ip6_route_add (ifindex, network, plen, gateway, metric, mss); }
static gboolean do_ip6_route_delete (char **argv) { int ifindex = parse_ifindex (*argv++); struct in6_addr network; int plen, metric; parse_ip6_address (*argv++, &network, &plen); metric = strtol (*argv++, NULL, 10); return nm_platform_ip6_route_delete (NM_PLATFORM_GET, ifindex, network, plen, metric); }
static gboolean do_ip6_route_exists (char **argv) { int ifindex = parse_ifindex (*argv++); struct in6_addr network; int plen, metric; parse_ip6_address (*argv++, &network, &plen); metric = strtol (*argv++, NULL, 10); print_boolean (nm_platform_ip6_route_exists (ifindex, network, plen, metric)); return TRUE; }
static gboolean do_ip6_address_add (char **argv) { int ifindex = parse_ifindex (*argv++); ip6_t address; int plen; if (ifindex && parse_ip6_address (*argv++, &address, &plen)) { guint32 lifetime = strtol (*argv++, NULL, 10); guint32 preferred = strtol (*argv++, NULL, 10); guint flags = (*argv) ? rtnl_addr_str2flags (*argv++) : 0; gboolean value = nm_platform_ip6_address_add (NM_PLATFORM_GET, ifindex, address, in6addr_any, plen, lifetime, preferred, flags); return value; } else return FALSE; }