I find a statement in session-overview.txt:
Multiple per-session routing tables
By default, ConnMan maintains only one online service. So it is impossible to send external traffic (routed through a gateway) on multiple interfaces.
In order to enable this functionality, an application needs to issue the
following API calls:
- create multiple sessions, one for each interface to be used
- set each session's AllowedInterface config field to the required interface name (eth0, eth1, wlan0, ppp0, etc.)
- set each session's SourceIPRule config field to true
- connect each session (or the service it is using)
That will instruct ConnMan to create multiple routing tables, with default routes in them. After that, the application can issue a bind() call on each
socket, using required interface's source IP address. The bind() call must be made before a connect() call on a socket.
I am wondering if my issue is related to this statement.
Now I have two network interfaces: eth0, eth1. They are connected to different networks.
I observe that by default only eth0 can get IP address from DHCP server. For eth1, IP is an APIPA address, as below:
1. For the same type of ethernet interfaces, does connman only maintain one interface, like eth0?
2. Shall I use session API to enable another interface, like eth1? And create another route table for eth1?
3. If yes, where can I find the user guide to use session API?
Thank you in advance for your reply.
Add WireGuard support to the VPN daemon. It's a minimalistic approach,
meaning not all features are yet supported. The option parser is for
sure not ready yet.
The main feature of WireGuard is the builtin roaming support. This
doesn't work yet. We need to teach ConnMan to handle
this. Unfortunatly, it is not straight forward. The main issue is
getting the routing table updated when a new transport comes up. I
have a dirty patch which teaches ConnMan not to tear down the
WireGuard tunnel when the transport goes away but as I said it is
useless until the routing table is updated correctly.
Daniel Wagner (9):
include: Remove unused definition
shared: Remove netlink code
build: Test for libmnl independent of nftables
vpn: Add WireGuard plugin placeholder
shared: Add Generic Netlink helpers for libmnl
vpn: Add embeddable WireGuard library
vpn: Introduce VPN_FLAG_NO_DAEMON
vpn: Add WireGuard support
doc: Document WireGuard VPN plugin
Makefile.am | 13 +-
Makefile.plugins | 25 +
configure.ac | 23 +-
doc/vpn-config-format.txt | 22 +
include/provider.h | 2 -
src/shared/mnlg.c | 325 ++++++++++++
src/shared/mnlg.h | 27 +
src/shared/netlink.c | 666 -------------------------
src/shared/netlink.h | 53 --
tools/netlink-test.c | 123 -----
vpn/plugins/libwireguard.c | 998 +++++++++++++++++++++++++++++++++++++
vpn/plugins/vpn.c | 51 +-
vpn/plugins/vpn.h | 3 +-
vpn/plugins/wireguard.c | 371 ++++++++++++++
vpn/plugins/wireguard.h | 103 ++++
15 files changed, 1944 insertions(+), 861 deletions(-)
create mode 100644 src/shared/mnlg.c
create mode 100644 src/shared/mnlg.h
delete mode 100644 src/shared/netlink.c
delete mode 100644 src/shared/netlink.h
delete mode 100644 tools/netlink-test.c
create mode 100644 vpn/plugins/libwireguard.c
create mode 100644 vpn/plugins/wireguard.c
create mode 100644 vpn/plugins/wireguard.h
I have a query.
Can Connman handle multiple wifi interfaces: like wlan0, wlan1 & wlan2 and
all are powered on?
If as per current architecture it is not possible, can you provide any
suggestions on how to handle it? Can we duplicate wifi plugin and
gsupplicant interface to handle both interface together.?
Please provide suggestions.