mbox series

[00/11] service/wispr: Add Per-service-unique WISPr Host Route Metric/Priority

Message ID 20231216061223.2199037-1-gerickson@nuovations.com (mailing list archive)
Headers show
Series service/wispr: Add Per-service-unique WISPr Host Route Metric/Priority | expand

Message

Grant Erickson Dec. 16, 2023, 6:12 a.m. UTC
This add and leverages '__connman_service_get_route_metric' to select
an appropriate service-specific route metric/priority when adding or
deleting WISPr host routes.
    
This allows multiple such routes to coexist simultaneously, supporting
"continuous" mode online checks in which one or more services may be
conducting "online" WISPr-based Internet reachability checks as they
move in and out of reachability success/failure.

'__connman_service_get_route_metric' is a non-public service
interface, which attempts to get the route metric/priority for the
specified service based on the current service and services state.

If the service is the default or if it is the only service, then the
metric is zero (0). Otherwise, a low-priority metric (metric > 0)
unique to the service and its underlying network interface is computed
and returned.

Grant Erickson (11):
  service: Add '__connman_service_get_route_metric'.
  service: Document '__connman_service_get_route_metric'.
  wispr: Expand 'DBG' in 'wispr_portal_detect'.
  wispr: Add 'DBG' to '__connman_wispr_start' error path.
  wispr: Update 'DBG' in '__connman_wispr_start'.
  wispr: Refactor 'free_wispr_routes'.
  wispr: Simplify IPv4 vs. IPv6 host route management.
  wispr: Document 'free_wispr_route{,s}'.
  wispr: Document 'wispr_route'.
  wispr: Document 'wispr_portal_context_route_ops'.
  wispr: Leverage '__connman_service_get_route_metric'.

 src/connman.h |   2 +
 src/service.c |  98 ++++++++++++++++++++++++
 src/wispr.c   | 207 +++++++++++++++++++++++++++++++++++++++++---------
 3 files changed, 271 insertions(+), 36 deletions(-)

Comments

Marcel Holtmann Dec. 16, 2023, 6:46 p.m. UTC | #1
Hi Grant,

> This add and leverages '__connman_service_get_route_metric' to select
> an appropriate service-specific route metric/priority when adding or
> deleting WISPr host routes.
> 
> This allows multiple such routes to coexist simultaneously, supporting
> "continuous" mode online checks in which one or more services may be
> conducting "online" WISPr-based Internet reachability checks as they
> move in and out of reachability success/failure.
> 
> '__connman_service_get_route_metric' is a non-public service
> interface, which attempts to get the route metric/priority for the
> specified service based on the current service and services state.
> 
> If the service is the default or if it is the only service, then the
> metric is zero (0). Otherwise, a low-priority metric (metric > 0)
> unique to the service and its underlying network interface is computed
> and returned.
> 
> Grant Erickson (11):
>  service: Add '__connman_service_get_route_metric'.
>  service: Document '__connman_service_get_route_metric'.
>  wispr: Expand 'DBG' in 'wispr_portal_detect'.
>  wispr: Add 'DBG' to '__connman_wispr_start' error path.
>  wispr: Update 'DBG' in '__connman_wispr_start'.
>  wispr: Refactor 'free_wispr_routes'.
>  wispr: Simplify IPv4 vs. IPv6 host route management.
>  wispr: Document 'free_wispr_route{,s}'.
>  wispr: Document 'wispr_route'.
>  wispr: Document 'wispr_portal_context_route_ops'.
>  wispr: Leverage '__connman_service_get_route_metric'.
> 
> src/connman.h |   2 +
> src/service.c |  98 ++++++++++++++++++++++++
> src/wispr.c   | 207 +++++++++++++++++++++++++++++++++++++++++---------
> 3 files changed, 271 insertions(+), 36 deletions(-)

all 11 patches have been applied.

Regards

Marcel