@@ -3382,6 +3382,39 @@ int __connman_inet_add_default_to_table(uint32_t table_id, int ifindex,
gateway, prefixlen);
}
+/**
+ * @brief
+ * Add a gateway default route with metric/priority.
+ *
+ * This attempts to add a gateway default route to the kernel routing
+ * table, @a table_id, using a Linux Route Netlink (rtnl) socket and
+ * protocol with the specified attributes, including an explicit
+ * metric/prioity from the range [0, UINT32_MAX].
+ *
+ * @param[in] table_id The table to add this route to.
+ * @param[in] ifindex The network interface index associated with
+ * the output network device for the route.
+ * @param[in] gateway A pointer to an immutable null-terminated C
+ * string containing the IPv4 or IPv6 address,
+ * in text form, of the route destination or
+ * next hop gateway address.
+ * @param[in] metric The routing priority metric for the route.
+ *
+ * @retval 0 If successful.
+ * @retval -EINVAL If the address family of @a gateway was not AF_INET
+ * (IPv4) or AF_INET6 (IPv6), if @a gateway does not
+ * contain a character string representing a valid
+ * network address in either the AF_INET or
+ * AF_INET6 family, or if the routing information
+ * to be deleted was invalid.
+ * @retval -EFAULT If the address to the routing information to be
+ * deleted was invalid.
+ * @retval -EPERM If the current process does not have the
+ * credentials or capabilities to delete routes.
+ * @retval -EEXIST A request was made to add an existing routing
+ * entry.
+ *
+ */
int __connman_inet_add_default_to_table_with_metric(uint32_t table_id,
int ifindex,
const char *gateway,
@@ -3453,6 +3486,39 @@ int __connman_inet_del_default_from_table(uint32_t table_id, int ifindex,
gateway, prefixlen);
}
+/**
+ * @brief
+ * Delete a gateway default route with metric/priority.
+ *
+ * This attempts to delete a gateway default route from the kernel
+ * routing table, @a table_id, using a Linux Route Netlink (rtnl)
+ * socket and protocol with the specified attributes, including an
+ * explicit metric/prioity from the range [0, UINT32_MAX].
+ *
+ * @param[in] table_id The table to delete this route from.
+ * @param[in] ifindex The network interface index associated with
+ * the output network device for the route.
+ * @param[in] gateway A pointer to an immutable null-terminated C
+ * string containing the IPv4 or IPv6 address,
+ * in text form, of the route destination or
+ * next hop gateway address.
+ * @param[in] metric The routing priority metric for the route.
+ *
+ * @retval 0 If successful.
+ * @retval -EINVAL If the address family of @a gateway was not AF_INET
+ * (IPv4) or AF_INET6 (IPv6), if @a gateway does not
+ * contain a character string representing a valid
+ * network address in either the AF_INET or
+ * AF_INET6 family, or if the routing information
+ * to be deleted was invalid.
+ * @retval -EFAULT If the address to the routing information to be
+ * deleted was invalid.
+ * @retval -EPERM If the current process does not have the
+ * credentials or capabilities to delete routes.
+ * @retval -ESRCH A request was made to delete a non-existing
+ * routing entry.
+ *
+ */
int __connman_inet_del_default_from_table_with_metric(uint32_t table_id,
int ifindex,
const char *gateway,
From: Grant Erickson <erick205@umn.edu> This adds documentation to the '__connman_inet_{add,del}_default_{to,from}_table_with_metric' functions. --- src/inet.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+)