HInternet/TR2: Difference between revisions

From Noisebridge
Jump to navigation Jump to search
(Created page with '== 802.11 == * [http://en.wikipedia.org/wiki/IEEE_802.11 IEEE 802.11] comprises a set of standards for wireless LAN (WLAN) operation. == 802.11s == 802.11s is a draft amendment…')
 
Line 12: Line 12:
== Hardware requirements for open80211s ==
== Hardware requirements for open80211s ==
* A WLAN adapter that has a driver written for the mac80211 framework. Consult the [http://linuxwireless.org/en/users/Drivers Driver Table] to check that it also supports "mesh" as an interface type.
* A WLAN adapter that has a driver written for the mac80211 framework. Consult the [http://linuxwireless.org/en/users/Drivers Driver Table] to check that it also supports "mesh" as an interface type.
* Recommended computers
* [http://www.soekris.com/products.htm Soekris computers] with miniPCI slots. These are fairly open, low-power, x86 computers. They're produced in relatively small production runs so they can be somewhat expensive.
* [http://www.ubnt.com/routerstation Ubiquiti RouterStation]. A low-power, MIPS computer for WISP applications. Produced at scale, and relatively inexpensive.
* [http://www.routerboard.com/ RouterBoard] are low-power, mostly Atheros-based MIPS computers made by WISP supplier MicroTik. Produced at scale and relatively inexpensive.
* Recommended wireless adapters/controllers
* Ubiquiti Networks Atheros-based miniPCI Adapters
  * [http://ubnt.com/xr2 XR2]. A high-power 2.4 GHz adapter that supports 5 MHz channels. 28 dBm TXPO.
  * [http://ubnt.com/sr2 SR2]. A high-power 2.4 GHz adapter that supports 5 MHz channels. 26 dBm TXPO.
  * [http://ubnt.com/xr5 XR5]. A high-power 5 GHz adapter that supports 5 MHz channels. 28 dBm TXPO.


== Example: configuring an open80211s network under Linux using mac80211_hwsim ==
== Example: configuring an open80211s network under Linux using mac80211_hwsim ==

Revision as of 20:14, 19 September 2010

802.11

  • IEEE 802.11 comprises a set of standards for wireless LAN (WLAN) operation.

802.11s

802.11s is a draft amendment to the existing 802.11 standards documents to support mesh networking between WLAN nodes. It supports unicast and multicast routing, and RF-aware dynamic routing using a new dynamic routing protocol dubbed Hybrid Wireless Mesh Protocol (HWMP).

There is some support in the mac80211 stack in the Linux kernel to support an all-software implementation of 802.11s dubbed open8021s.

It is present in kernel 2.6.32 and above, and is backported through the wireless-testing git tree. [Citation Needed]

Hardware requirements for open80211s

  • A WLAN adapter that has a driver written for the mac80211 framework. Consult the Driver Table to check that it also supports "mesh" as an interface type.
  • Recommended computers
* Soekris computers with miniPCI slots. These are fairly open, low-power, x86 computers. They're produced in relatively small production runs so they can be somewhat expensive.
* Ubiquiti RouterStation. A low-power, MIPS computer for WISP applications. Produced at scale, and relatively inexpensive.
* RouterBoard are low-power, mostly Atheros-based MIPS computers made by WISP supplier MicroTik. Produced at scale and relatively inexpensive.
  • Recommended wireless adapters/controllers
* Ubiquiti Networks Atheros-based miniPCI Adapters
 * XR2. A high-power 2.4 GHz adapter that supports 5 MHz channels. 28 dBm TXPO.
 * SR2. A high-power 2.4 GHz adapter that supports 5 MHz channels. 26 dBm TXPO.
 * XR5. A high-power 5 GHz adapter that supports 5 MHz channels. 28 dBm TXPO.

Example: configuring an open80211s network under Linux using mac80211_hwsim

There exists a testing driver in the mac80211 stack in Linux in recent kernels that will create simulated 802.11 devices so that one can test mesh networking even if they don't have proper adapters yet. It creates a configurable number of adapters (default is 2) that will shuttle frames between adapters that are tuned to the same frequency.

  • Before beginning, make sure that you have a recent version of the "iw" utility, as the netlink interface to mac80211 is under constant development.
  • First, load the mac80211_hwsim driver
modprobe mac80211_hwsim
  • You should see some lines in your dmesg like:
[80477.585860] mac80211_hwsim: Initializing radio 0
[80477.586051] phy3: Selected rate control algorithm 'minstrel'
[80477.587047] phy3: hwaddr 02:00:00:00:00:00 registered
[80477.587057] mac80211_hwsim: Initializing radio 1
[80477.587326] phy4: Selected rate control algorithm 'minstrel'
[80477.588596] phy4: hwaddr 02:00:00:00:01:00 registered
  • Pick a 32-byte "mesh ID". "hinternet" is used here.
  • Create some mesh interfaces from the two phys that were created (called wlan1 and wlan2 here)
think:~# iw dev wlan1 interface add mesh1 type mp mesh_id hinternet
think:~# iw dev wlan2 interface add mesh2 type mp mesh_id hinternet
  • See the new devices with "iw dev"
think:~# iw dev
phy#4
	Interface mesh2
		ifindex 22
		type mesh point
	Interface wlan2
		ifindex 19
		type managed
phy#3
	Interface mesh1
		ifindex 21
		type mesh point
	Interface wlan1
		ifindex 18
		type managed
  • Bring "UP" the mesh interfaces
think:~# ip link set dev mesh1 up
think:~# ip link set dev mesh2 up
  • Tune the interfaces to the same channel
think:~# iw dev mesh1 set channel 1
think:~# iw dev mesh2 set channel 1
  • At this point, the mesh interfaces should be able to "hear" each other and create adjacencies
think:~# iw dev mesh1 station dump
Station 02:00:00:00:01:00 (on mesh1)
	inactive time:	612 ms
	rx bytes:	17352
	rx packets:	171
	tx bytes:	264
	tx packets:	3
	signal:  	-50 dBm
	tx bitrate:	1.0 MBit/s
	mesh llid:	46469
	mesh plid:	33020
	mesh plink:	ESTAB
think:~# iw dev mesh2 station dump
Station 02:00:00:00:00:00 (on mesh2)
	inactive time:	912 ms
	rx bytes:	22127
	rx packets:	232
	tx bytes:	594
	tx packets:	8
	signal:  	-50 dBm
	tx bitrate:	1.0 MBit/s
	mesh llid:	33020
	mesh plid:	46469
	mesh plink:	ESTAB