[PATCH/RFC 00/18] 802.11s mesh support

Bob Copeland me at bobcopeland.com
Mon Jul 14 01:19:05 EDT 2014


Greetings,

This patchset developed at Cozybit adds mesh support to wpa_supplicant,
providing an alternative to the authsae daemon for running a secure
11s mesh network.  Unlike authsae, it also supports running open mesh
with the peering manager in userspace.

Patches 1-8 implement the mesh peering manager (MPM) supporting open mesh
networks.  Patches 9-12 augment the MPM and the existing SAE code to support
the Authenticated Mesh Peering Exchange (AMPE) and encrypted mesh.
Patch 13 implements mesh scanning, patch 14 implements P2P-like control
interface, patch 17 implements HT support, and the rest are odds and ends.

There are certainly a number of things that can be improved in this patchset,
and it needs a bit more testing, but I am posting it now to get input from
other intersted parties, some guidance on the approach in general, and
identification of which parts need the most work, in hopes that we can
address the warts and get the code upstream.


Bob Copeland (4):
  mesh_mpm: add mesh peering manager
  driver: add new NL80211 cmds to support mesh ifaces
  mesh: parse mesh-related information elements
  aes_siv: implement RFC 5297 AES-SIV

Chun-Yeow Yeoh (1):
  mesh_rsn: add timer for SAE authentication

Jason Abele (1):
  wpa_supplicant: implement mesh scanning

Jason Mobarak (1):
  wpa_s: enable mesh HT mode

Javier Lopez (3):
  wpa_s, ctrl_iface: Add mesh_group_{add,remove}
  hwsim_tests: add test_wpas_mesh test cases
  hostapd: check if mesh_conf struct is set

Thomas Pedersen (8):
  data structures: add required mesh data fields
  mesh: add mesh mode routines
  events: handle mesh events coming from driver
  config: add mesh mode, user_mpm, and no_auto_peer options
  Makefile: add mesh support to wpa_s build
  mesh_rsn: add mesh robust security network
  auth: handle auth frames for mesh ifaces
  sample conf: add description for new mesh options

 hostapd/Android.mk                        |   4 +
 src/ap/ap_config.h                        |  29 +-
 src/ap/hostapd.c                          |  28 +-
 src/ap/hostapd.h                          |  11 +
 src/ap/ieee802_11.c                       |  96 +++-
 src/ap/sta_info.c                         |   8 +
 src/ap/sta_info.h                         |  19 +
 src/ap/wpa_auth.c                         |  16 +
 src/ap/wpa_auth.h                         |   3 +
 src/common/defs.h                         |  36 ++
 src/common/ieee802_11_common.c            |  22 +
 src/common/ieee802_11_common.h            |  10 +
 src/common/ieee802_11_defs.h              |  36 ++
 src/common/wpa_ctrl.h                     |   6 +
 src/crypto/Makefile                       |   1 +
 src/crypto/aes-siv.c                      | 180 ++++++
 src/crypto/aes_siv.h                      |  17 +
 src/drivers/driver.h                      |  91 ++-
 src/drivers/driver_common.c               |   1 +
 src/drivers/driver_nl80211.c              | 327 ++++++++++-
 src/drivers/driver_wext.c                 |   5 +-
 tests/hwsim/example-wpa_supplicant.config |   1 +
 tests/hwsim/p2p0.conf                     |   1 +
 tests/hwsim/p2p1.conf                     |   1 +
 tests/hwsim/p2p2.conf                     |   1 +
 tests/hwsim/test_wpas_mesh.py             | 336 +++++++++++
 tests/hwsim/wpasupplicant.py              |  12 +
 wpa_supplicant/Android.mk                 |  13 +
 wpa_supplicant/Makefile                   |  15 +
 wpa_supplicant/ap.c                       |  42 +-
 wpa_supplicant/ap.h                       |   5 +
 wpa_supplicant/bss.c                      |   8 +-
 wpa_supplicant/config.c                   |  82 ++-
 wpa_supplicant/config.h                   |  11 +
 wpa_supplicant/config_file.c              |   5 +
 wpa_supplicant/config_ssid.h              |  21 +
 wpa_supplicant/ctrl_iface.c               | 108 +++-
 wpa_supplicant/driver_i.h                 |  22 +
 wpa_supplicant/events.c                   |  36 +-
 wpa_supplicant/mesh.c                     | 327 +++++++++++
 wpa_supplicant/mesh.h                     |  38 ++
 wpa_supplicant/mesh_mpm.c                 | 922 ++++++++++++++++++++++++++++++
 wpa_supplicant/mesh_mpm.h                 |  28 +
 wpa_supplicant/mesh_rsn.c                 | 579 +++++++++++++++++++
 wpa_supplicant/mesh_rsn.h                 |  39 ++
 wpa_supplicant/scan.c                     |   5 +
 wpa_supplicant/wpa_cli.c                  |  21 +
 wpa_supplicant/wpa_supplicant.c           |  55 +-
 wpa_supplicant/wpa_supplicant.conf        |  26 +
 wpa_supplicant/wpa_supplicant_i.h         |   7 +-
 50 files changed, 3648 insertions(+), 65 deletions(-)
 create mode 100644 src/crypto/aes-siv.c
 create mode 100644 src/crypto/aes_siv.h
 create mode 100644 tests/hwsim/test_wpas_mesh.py
 create mode 100644 wpa_supplicant/mesh.c
 create mode 100644 wpa_supplicant/mesh.h
 create mode 100644 wpa_supplicant/mesh_mpm.c
 create mode 100644 wpa_supplicant/mesh_mpm.h
 create mode 100644 wpa_supplicant/mesh_rsn.c
 create mode 100644 wpa_supplicant/mesh_rsn.h

-- 
2.0.0.rc2



More information about the HostAP mailing list