• Cody Schuffelen's avatar
    mac80211-next: rtnetlink wifi simulation device · c7cdba31
    Cody Schuffelen authored
    This device takes over an existing network device and produces a
    new one that appears like a wireless connection, returning enough canned
    responses to nl80211 to satisfy a standard connection manager. If
    necessary, it can also be set up one step removed from an existing
    network device, such as through a vlan/80211Q or macvlan connection to
    not disrupt the existing network interface.
    
    To use it to wrap a bare ethernet connection:
    
    ip link add link eth0 name wlan0 type virt_wifi
    
    You may have to rename or otherwise hide the eth0 from your connection
    manager, as the original network link will become unusuable and only
    the wireless wrapper will be functional. This can also be combined with
    vlan or macvlan links on top of eth0 to share the network between
    distinct links, but that requires support outside the machine for
    accepting vlan-tagged packets or packets from multiple MAC addresses.
    
    This is being used for Google's Remote Android Virtual Device project,
    which runs Android devices in virtual machines. The standard network
    interfaces provided inside the virtual machines are all ethernet.
    However, Android is not interested in ethernet devices and would rather
    connect to a wireless interface. This patch allows the virtual machine
    guest to treat one of its network connections as wireless rather than
    ethernet, satisfying Android's network connection requirements.
    
    We believe this is a generally useful driver for simulating wireless
    network connections in other environments where a wireless connection is
    desired by some userspace process but is not available.
    
    This is distinct from other testing efforts such as mac80211_hwsim by
    being a cfg80211 device instead of mac80211 device, allowing straight
    pass-through on the data plane instead of forcing packaging of ethernet
    data into mac80211 frames.
    Signed-off-by: default avatarA. Cody Schuffelen <schuffelen@google.com>
    Acked-by: default avatarAlistair Strachan <astrachan@google.com>
    Acked-by: default avatarGreg Hartman <ghartman@google.com>
    Acked-by: default avatarTristan Muntsinger <muntsinger@google.com>
    [make it a tristate]
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    c7cdba31
virt_wifi.c 16.4 KB