[Cerowrt-devel] babel over usb networking

Dave Taht dave.taht at gmail.com
Sat Apr 30 11:37:02 EDT 2016


Yesterday jason donated a couple "chip" [2] "9 dollar" computers,
which come with usb and and wifi. They have impressive specs - 1Ghz
cpu, 4GB of onboard flash, 512MB of ram...

By default the usb OTG interface emulates serial, but you can flip
that to g_ether[4] in /etc/modules and have it come up emulating
ethernet instead. You can then configure it and the host via standard
methods (dhcp/static ips/haven't got a cross compiler yet to try
hnetd)

Turns out that the rpi also supports the usb gadget/ethernet
conversion[3] ), as does the beaglebone [1], and I haven't checked on
the odroids yet.

The "chip" gets about 6mbits on wifi, and 90mbits on the g_ether
interface. It's based on either buildroot or debian jesse (which has
babeld 1.5.1 in it, haven't built a later version).

A vision of mine here is to power and send data across a usb bus in
the lab and have universal IP connectivity no matter the link layer.

A) One day, given that usb-C runs at 40Gbit, and has some support for
networking, it would be cool to have stuff that transparently routed
through that/did address assignment sanely, when possible. I don't
know a lot of details about how it or thunderbolt work in this way....

B) What sort of babel metric or rxcost should a 100Mbit interface
announce? (most of the hackerboards have a 100Mbit phy at best)

C) Is anyone working on anything with 802.14 (6lopan) connectivity yet?

D) systemd in ubuntu 16.04, instead of naming usb interfaces
usb0,1,2,3 it comes up with a unique string like:  enxd23bf0e38d7c -
globbing enx* seems like a sane idea...

E) Proof of concept

root at chipper:~# ip -6 route
2601:646:4102:c5::823 via fe80::281c:3ff:fe59:e29b dev usb0  proto
babel  metric 1024
2601:646:4102:c5::/64 via fe80::281c:3ff:fe59:e29b dev usb0  proto
babel  metric 1024
2601:646:4180:64b::/64 via fe80::281c:3ff:fe59:e29b dev usb0  proto
babel  metric 1024
fd1c:47e0:fcef::/64 via fe80::281c:3ff:fe59:e29b dev usb0  proto babel
 metric 1024
fd1c:47e0:fcef::/48 via fe80::281c:3ff:fe59:e29b dev usb0  proto babel
 metric 1024
fd99::5 via fe80::281c:3ff:fe59:e29b dev usb0  proto babel  metric 1024
fd99::23 via fe80::281c:3ff:fe59:e29b dev usb0  proto babel  metric 1024
unreachable fd99::24/127 dev lo  proto kernel  metric 256  error -101
# I added a local static addr
fd9f:237b:c8a6:1::5d6 dev wlan0  proto kernel  metric 256  expires 52964sec
fd9f:237b:c8a6:1::95c via fe80::7ec7:9ff:fede:2bb5 dev wlan0  proto
static  metric 1024
fd9f:237b:c8a6:1:7ec7:9ff:fede:2bb5 via fe80::281c:3ff:fe59:e29b dev
usb0  proto babel  metric 1024
fd9f:237b:c8a6:1::/64 dev wlan0  proto ra  metric 10
fd9f:237b:c8a6::/48 via fe80::100d:7fff:fe64:c990 dev wlan0  proto ra  metric 10




[1] I never figured out how to get a beaglebone up on anything but the
default 192.168.7.1 address, so stopped using it.
[2] http://docs.getchip.com/#wifi
[3] http://pi.gbaman.info/?p=699
[4] there is also cdc_ether which is supposed to give you both a usb
networking and serial interface. It didn't work the first time I tried
it. It would be cool if both worked by default.


-- 
Dave Täht
Let's go make home routers and wifi faster! With better software!
http://blog.cerowrt.org


More information about the Cerowrt-devel mailing list