Send connman mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        https://lists.01.org/mailman/listinfo/connman
or, via email, send a message with subject or body 'help' to
        [email protected]

You can reach the person managing the list at
        [email protected]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of connman digest..."


Today's Topics:

   1. Using connman with multiple active interfaces (Lukasz Nowak)


----------------------------------------------------------------------

Message: 1
Date: Tue, 1 Nov 2016 10:41:36 +0100
From: Lukasz Nowak <[email protected]>
To: [email protected]
Subject: Using connman with multiple active interfaces
Message-ID: <[email protected]>
Content-Type: text/plain; charset=utf-8

Hi,

We are building a system which has 4 network interfaces: ethernet (private), 
ethernet (public), wifi, cellular.
We need to keep multiple of them (ideally all, if available) on-line, and allow 
the applications to select which one they want to use on a per-socket basis. 
This includes access to internet, so we would need a default route established 
on every interface.

Also, there will be a management application, which will select the preferred 
interface, which should be used by all other "normal" applications.

As far as I can see, there are two potential options to do that:
1. Add multiple default routes to the main routing table, with different 
metrics. In that case to select an interface an application should call 
setsockopt(SO_BINDTODEVICE). Example: ping -I eth1
2. Create multiple routing tables with iproute2, and rules filtering based on 
source address. Application uses bind(adapter ip address) before connect(). 
Example: ping -I 10.20.30.40

Our primary use case is Mosquitto, an MQTT client. It only currently implements 
option 2, although option 1 could be ported into it easily enough.

As far as I can see, currently, neither option is implemented in Connman. There 
is only one on-line interface at a time.

The session API, and per-application routing, seems to be the closest thing, 
but it still does not allow the application to freely chose which interface it 
wants to use.

There was a discussion here, in March, about something very similar to what we 
are trying to do:
https://lists.01.org/pipermail/connman/2016-March/000532.html
https://endocode.com/blog/2016/03/22/multipathtcp-support-for-connman/
https://github.com/endocode/connman

Is that something that can be integrated into Connman?

Alternatively, is there any other way of achieving our requirement of keeping 
multiple on-line interfaces at the same time with Connman?

We have some development time allocated to this feature, so we could work on 
providing it upstream, if it could be accepted in one form or another.

Thanks for help with this.

Kind Regards,
Lukasz Nowak


------------------------------

Subject: Digest Footer

_______________________________________________
connman mailing list
[email protected]
https://lists.01.org/mailman/listinfo/connman


------------------------------

End of connman Digest, Vol 13, Issue 1
**************************************

Reply via email to