Hi Patrik

On 10/14/2015 10:21 AM, Patrik Flykt wrote:

> On Wed, 2015-10-14 at 06:40 +0000, John Ernberg wrote:
>
>> I made a ramdisk out of /var/ when I made the file system read only.
>> Nothing is however preserved after a reboot, and that has not been
>> problem for me yet.
> That's actually a problem, as /var (especially /var/lib) is the only
> location that per definition can hold application state over reboot. In
> this case it presents a problem, as ConnMan will now not know its state
> over reboot. /var/run (or /run) is the proper location for run-time
> data, which can be cleared.

How would it be a problem? I can re-configure the interface every start-up, 
it's not a problem for me.

>> If I have other services that reach the internet, and possibly want to
>> tether on these in the future, but want to keep this link private (not
>> share it with the other connections). Would this then be out of scope
>> for what ConnMan is designed for?
> What do you mean by keeping the link private?

Not letting the link have access to the internet, while other technologies,
which may in the future also tether, have access to the internet.

>> I had to obfuscate the MAC addresses, but it should still give a
>> picture of what the setup looks like. Our cdc_ether driver publishes
>> the Ethernet-over-USB interface as usb0, and shows up in ConnMan as a
>> gadget technology.
>> USB Host side:
>> eth0      Link encap:Ethernet  HWaddr yy:yy:yy:yy:yy:yy
>>             UP BROADCAST MULTICAST  MTU:1500  Metric:1
>>             RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>>             TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>>             collisions:0 txqueuelen:1000
>>             RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
>>
>> tether    Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
>>             inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
>>             inet6 addr: fe80::d838:94ff:fe48:389b/64 Scope:Link
>>             UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>>             RX packets:5 errors:0 dropped:0 overruns:0 frame:0
>>             TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
>>             collisions:0 txqueuelen:0
>>             RX bytes:364 (364.0 B)  TX bytes:620 (620.0 B)
>>
>> usb0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
>>             inet6 addr: fe80::ff:fe02:1201/64 Scope:Link
>>             UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>>             RX packets:11 errors:0 dropped:0 overruns:0 frame:0
>>             TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
>>             collisions:0 txqueuelen:1000
>>             RX bytes:748 (748.0 B)  TX bytes:132 (132.0 method)
> Thethering has been enabled on the USB host. If you enabled 'ethernet'
> technology tethering, eth0 will be tethered. If you enabled 'gadget'
> tethering usb0 will be tethered. The fact that usb0 shows up with an
> IPv6 address makes me think that ethernet tethering is enabled.
>
> So your USB host end also has a gadget connector??

All I know is that cdc_ether interfaces shows up as usb0, the eth0 ethernet is 
a real ethernet port.
When looking in /sys/class/net/usb0 it indeed shows up as a gadget in the 
uevent file.

>                                                                               
>     
>> return sender=:1.2 -> dest=:1.22 reply_serial=2
>>      array [
>>         struct {
>>            object path "/net/connman/technology/gadget"
>>            array [
>>               dict entry(
>>                  string "Name"
>>                  variant                   string "Gadget"
>>               )
>>               dict entry(
>>                  string "Type"
>>                  variant                   string "gadget"
>>               )
>>               dict entry(
>>                  string "Powered"
>>                  variant                   boolean true
>>               )
>>               dict entry(
>>                  string "Connected"
>>                  variant                   boolean false
>>               )
>>               dict entry(
>>                  string "Tethering"
>>                  variant                   boolean true
>>               )
>>            ]
>>         }
> Gadget is tethering. Which means this is the USB client end. If it's the
> same situation as above, there is a bug somewhere as usb0 should not
> have an IP address.

I only listed Technologies on the USB host side.

>>         struct {
>>            object path "/net/connman/technology/ethernet"
>>            array [
>>               dict entry(
>>                  string "Name"
>>                  variant                   string "Wired"
>>               )
>>               dict entry(
>>                  string "Type"
>>                  variant                   string "ethernet"
>>               )
>>               dict entry(
>>                  string "Powered"
>>                  variant                   boolean true
>>               )
>>               dict entry(
>>                  string "Connected"
>>                  variant                   boolean false
>>               )
>>               dict entry(
>>                  string "Tethering"
>>                  variant                   boolean false
>>               )
>>            ]
>>         }
> Ok, ethernet is not tethering. Is this the same situation as above where
> you listed the interfaces? Networks created in the USB host end of
> things will show up as 'ethernet' devices.
>
>> USB gadget side:
>> usb0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
>>             inet6 addr: fe80::ff:fe00:1011/64 Scope:Link
>>             UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>>             RX packets:2 errors:0 dropped:0 overruns:0 frame:0
>>             TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
>>             collisions:0 txqueuelen:1000
>>             RX bytes:104 (104.0 B)  TX bytes:902 (902.0 B)
>>
>> method return sender=:1.2 -> dest=:1.169 reply_serial=2
>>      array [
>>         struct {
>>            object path "/net/connman/service/gadget_xxxxxxxxxxxx_usb"
> The USB client/gadget end is not tethering, as the service
> gadget_xxxxxxxxxxxx_usb shows up.

This is the gadget side, I only listed services on the gadget side.

> To me it seems that you have enabled gadget tethering instead of
> ethernet USB host tethering for the first device. But this means the
> first device has an ethernet connector (possibly a USB host?) and a USB
> gadget (client) connector. Is this correct?

The ethernet interface shown on the USB host side is a real ethernet port.

>>            array [
>>               dict entry(
>>                  string "Type"
>>                  variant                   string "gadget"
>>               )
>>               dict entry(
>>                  string "Security"
>>                  variant                   array [
>>                     ]
>>               )
>>               dict entry(
>>                  string "State"
>>                  variant                   string "idle"
>>               )
>>               dict entry(
>>                  string "Favorite"
>>                  variant                   boolean false
>>               )
>>               dict entry(
>>                  string "Immutable"
>>                  variant                   boolean false
>>               )
>>               dict entry(
>>                  string "AutoConnect"
>>                  variant                   boolean false
>>               )
>>               dict entry(
>>                  string "Name"
>>                  variant                   string "Wired"
>>               )
>>               dict entry(
>>                  string "Ethernet"
>>                  variant                   array [
>>                        dict entry(
>>                           string "Method"
>>                           variant                            string "auto"
>>                        )
>>                        dict entry(
>>                           string "Interface"
>>                           variant                            string "usb0"
>>                        )
>>                        dict entry(
>>                           string "Address"
>>                           variant                            string 
>> "xx:xx:xx:xx:xx:xx"
>>                        )
>>                        dict entry(
>>                           string "MTU"
>>                           variant                            uint16 1500
>>                        )
>>                     ]
>>               )
>>               dict entry(
>>                  string "IPv4"
>>                  variant                   array [
>>                     ]
>>               )
>>               dict entry(
>>                  string "IPv4.Configuration"
>>                  variant                   array [
>>                        dict entry(
>>                           string "Method"
>>                           variant                            string "dhcp"
>>                        )
>>                     ]
>>               )
>>               dict entry(
>>                  string "IPv6"
>>                  variant                   array [
>>                     ]
>>               )
>>               dict entry(
>>                  string "IPv6.Configuration"
>>                  variant                   array [
>>                        dict entry(
>>                           string "Method"
>>                           variant                            string "auto"
>>                        )
>>                        dict entry(
>>                           string "Privacy"
>>                           variant                            string 
>> "disabled"
>>                        )
>>                     ]
>>               )
>>               dict entry(
>>                  string "Nameservers"
>>                  variant                   array [
>>                     ]
>>               )
>>               dict entry(
>>                  string "Nameservers.Configuration"
>>                  variant                   array [
>>                     ]
>>               )
>>               dict entry(
>>                  string "Timeservers"
>>                  variant                   array [
>>                     ]
>>               )
>>               dict entry(
>>                  string "Timeservers.Configuration"
>>                  variant                   array [
>>                     ]
>>               )
>>               dict entry(
>>                  string "Domains"
>>                  variant                   array [
>>                     ]
>>               )
>>               dict entry(
>>                  string "Domains.Configuration"
>>                  variant                   array [
>>                     ]
>>               )
>>               dict entry(
>>                  string "Proxy"
>>                  variant                   array [
>>                     ]
>>               )
>>               dict entry(
>>                  string "Proxy.Configuration"
>>                  variant                   array [
>>                     ]
>>               )
>>               dict entry(
>>                  string "Provider"
>>                  variant                   array [
>>                     ]
>>               )
>>            ]
>>         }
>>      ]
> Cheers,
>
>       Patrik
>
> _______________________________________________
> connman mailing list
> connman@connman.net
> https://lists.connman.net/mailman/listinfo/connman

Thank you in advance and best regards // John Ernberg
_______________________________________________
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman

Reply via email to