1. 11 1月, 2014 1 次提交
    • J
      mac80211_hwsim: allow creating/destroying radios on the fly · bc791098
      Johannes Berg 提交于
      Add new commands to the hwsim generic netlink family to allow
      creating and destroying radios on the fly. The number of channels
      a radio supports can be specified when it's created, if it isn't
      the module parameter will be used as default.
      
      This should be extended in the future to allow other parameters
      to be specified, e.g.
       * list of channels
       * interface combinations, particularly P2P_DEVICE support
       * regtest
       * and pretty much all other hardware capabilities
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      bc791098
  2. 02 6月, 2011 1 次提交
    • J
      mac80211_hwsim driver support userspace frame tx/rx · 7882513b
      Javier Lopez 提交于
      This patch adds to mac80211_hwsim the capability to send traffic via
      userspace.
      
      Frame exchange between kernel and user spaces is done through generic
      netlink communication protocol. A new generic netlink family
      MAC80211_HWSIM is proposed, this family contains three basic commands
      HWSIM_CMD_REGISTER, which is the command used to register a new
      traffic listener, HWSIM_CMD_FRAME, to exchange the frames from kernel
      to user and vice-versa, and HWSIM_CMD_TX_INFO_FRAME which returns
      from user all the information about retransmissions, rates, rx signal,
      and so on.
      
      How it works:
      
      Once the driver is loaded the MAC80211_HWSIM family will be registered.
      In the absence of userspace daemon, the driver itselfs implements a
      perfect wireless medium as it did in the past. When a daemon sends a
      HWSIM_CMD_REGISTER command, the module stores the application PID, and
      from this moment all frames will be sent to the registered daemon.
      
      The user space application will be in charge of process/forward all
      frames broadcast by any mac80211_hwsim radio. If the user application
      is stopped, the kernel module will detect the release of the socket
      and it will switch back to in-kernel perfect channel simulation.
      
      The userspace daemon must be waiting for incoming HWSIM_CMD_FRAME
      commands sent from kernel, for each HWSIM_CMD_FRAME command the
      application will try to broadcast this frame to all mac80211_hwsim
      radios, however the application may decide to forward/drop this frame.
      In the case of forwarding the frame, a new HWSIM_CMD_FRAME command will
      be created, all necessary attributes will be populated and the frame
      will be sent back to the kernel.
      
      Also after the frame broadcast phase, a HWSIM_CMD_TX_INFO_FRAME
      command will be sent from userspace to kernel, this command contains
      all the information regarding the transmission, such as number of
      tries, rates, ack signal, etc.
      
      You can find the actual implementation of wireless mediumd daemon
      (wmediumd) at:
      
      * Last version tarball: https://github.com/jlopex/cozybit/tarball/master
      * Or visiting my github tree: https://github.com/jlopex/cozybit/treeSigned-off-by: NJavier Lopez <jlopex@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      7882513b