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