NetworkManager/src/core/devices
Bhushan Shah 9fc72bf75d
wwan/ofono: create connections based on available contexts
Downstream patches for this does it through NMSettings plugin, however
settings plugin are hard to maintain and complicated architecture wise
as well.

So directly create a connection profiles in-memory from the
nm-modem-ofono side. Those profiles are created in /run, and are not
added as a persistent connection, because connection state quite depends
on the state of ofono

This also allows us to drop the hack where we are keeping track of
active context/APN through the connection name, i.e if connection name
was in /imsi/context1 format, it was used. Instead now, Connection name
is actual context name which is user friendly ("Vodafone Connect" e.g.
in my case), and details like IMSI and context are stored internally.

[ratchanan@ubports.com:
- forward-ported to main branch.
- fold "wwan/ofono: handle context removal" into this commit.
- track the "preferred"-ness of the context and react accordingly.
  Creates proxies for all retrived contexts to listen to changes.
  While at it, also track name and type.
- use, instead of ignore, internet APN. Also support internet+mms APN.
- correct priv->contexts' value destroy function.
- factor out UUID generation as a helper function.
- handle the case where context dictionary is missing required keys.
- simplify nm_ofono_connection_new's arguments and rename to
  add_or_update_connection. Makes it handle the case where the
  connection already exists.
- also simplify other functions' arguments.
- clean up code and comments. Fix memory problems. Get rid of warnings.
]

Co-authored-by: Ratchanan Srirattanamet <ratchanan@ubports.com>
2022-11-10 07:44:56 +01:00
..
adsl device/adsl: make argument of callback for platform-changed-signal const 2022-09-14 20:36:13 +02:00
bluetooth nm-device-bt: allow Bluetooth NAP type for complete-connection 2022-08-01 09:37:42 +02:00
ovs ovs: wait that links disappear during initial cleanup 2022-10-07 11:56:31 +02:00
team team: log port config when it's set 2022-10-14 22:43:08 +02:00
tests lldp: use new libnm-lldp instead of systemd's sd_lldp_rx 2022-10-25 10:59:01 +02:00
wifi core: extend NML3ConfigData:nameserver to track DNS as string 2022-10-27 09:11:33 +02:00
wwan wwan/ofono: create connections based on available contexts 2022-11-10 07:44:56 +01:00
meson.build all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-6lowpan.c device: remove the unmanaged inheritance from the parent for 6lowpan devices 2022-10-15 18:29:10 +02:00
nm-device-6lowpan.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-bond.c merge: branch 'lr/master-uuid' 2022-10-05 11:42:34 +02:00
nm-device-bond.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-bridge.c bond,bridge,team: use uuid for con.master when generating connection 2022-09-30 23:21:36 +02:00
nm-device-bridge.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-dummy.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-dummy.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-ethernet-utils.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-device-ethernet-utils.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-ethernet.c glib-aux: add and use nm_uuid_generate_from_strings_old() 2022-10-11 09:03:17 +02:00
nm-device-ethernet.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-factory.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-factory.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-generic.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-generic.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-infiniband.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-infiniband.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-ip-tunnel.c glib-aux: rename IP address related helpers from "nm-inet-utils.h" 2022-08-25 19:05:51 +02:00
nm-device-ip-tunnel.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-logging.h all: avoid "-Wunreachable-code-generic-assoc" warning with _Generic() 2022-10-11 17:21:11 +02:00
nm-device-macsec.c device: remove the unmanaged inheritance from the parent for macsec devices 2022-10-15 18:29:10 +02:00
nm-device-macsec.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-macvlan.c device: remove the unmanaged inheritance from the parent for macvlan devices 2022-10-15 18:29:10 +02:00
nm-device-macvlan.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-ppp.c ppp: don't remove addresses from interface while IPCP/IPV6CP is running 2022-06-14 12:26:21 +02:00
nm-device-ppp.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-private.h device: allow resetting the devip state via nm_device_devip_set_state() 2022-09-29 14:41:58 +02:00
nm-device-tun.c ovs, dpdk: ignore ovs-netdev tun interface 2022-03-31 11:49:34 +02:00
nm-device-tun.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-utils.c glib-aux: rename IP address related helpers from "nm-inet-utils.h" 2022-08-25 19:05:51 +02:00
nm-device-utils.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-veth.c veth: drop iface peer check during create_and_realize() 2022-09-29 10:29:28 +02:00
nm-device-veth.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-vlan.c device: allow configuration of VLAN on an unmanaged interface 2022-10-15 18:29:10 +02:00
nm-device-vlan.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-vrf.c device: make attach_port() asynchronous 2022-05-03 13:19:24 +02:00
nm-device-vrf.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-vxlan.c glib-aux: rename IP address related helpers from "nm-inet-utils.h" 2022-08-25 19:05:51 +02:00
nm-device-vxlan.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-wireguard.c all: use nm_g_array_{index,first,last,index_p}() instead of g_array_index() 2022-09-15 12:39:07 +02:00
nm-device-wireguard.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-wpan.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-wpan.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device.c core: extend NML3ConfigData:nameserver to track DNS as string 2022-10-27 09:11:33 +02:00
nm-device.h device: remove the possibility of inheriting the unmanaged condition from the parent of a device 2022-10-15 18:29:10 +02:00
nm-lldp-listener.c lldp: use nm_lldp_neighbor_id_hash() in "nm-lldp-listener.c" 2022-10-25 10:59:02 +02:00
nm-lldp-listener.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00