Changes between Version 12 and Version 13 of 802.11/wlan_exp


Ignore:
Timestamp:
Oct 24, 2014, 1:43:59 PM (10 years ago)
Author:
murphpo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 802.11/wlan_exp

    v12 v13  
    33= 802.11 Reference Design: Experiments Framework =
    44
    5 The 802.11 Reference Design implements a framework for running experiments with multiple nodes. This framework enables low-level visibility and control of MAC and PHY behaviors in real-time. The experiment framework is called '''wlan_exp'''.
    6 
    7 
    8 == Migrating from WLAN_EXP from v0.9.3 to v0.9.5 ==
    9 
    10 As part of the updates from v0.9.3 to v0.9.5 of the experiments framework, we replaced the host configuration with a network configuration.  The network configuration describes the network that wlan_exp will use to communicate with a subset of nodes.  This allows for greater flexibility in dividing nodes between separate IP subnets while being attached to the same physical ethernet switch.  To update scripts to use v0.9.5 network configuration, the following changes are required:
    11 
    12   1. {{{HOST_INTERFACES   = ['10.0.0.250']}}} becomes {{{NETWORK           = '10.0.0.0'}}} (ie instead of describing the host IP address, you specify the network (ie X.Y.Z.0) the nodes are on.
    13   1. Change the initialization of the configuration objects:
    14 {{{
    15 # Create an object that describes the configuration of the host PC
    16 host_config  = wlan_exp_config.WlanExpHostConfiguration(host_interfaces=HOST_INTERFACES)
    17 
    18 # Create an object that describes the WARP v3 nodes that will be used in this experiment
    19 nodes_config = wlan_exp_config.WlanExpNodesConfiguration(host_config=host_config,
    20                                                          serial_numbers=NODE_SERIAL_LIST)
    21 
    22 
    23 Changes to:
    24 
    25 
    26 # Create an object that describes the configuration of the host PC
    27 network_config = wlan_exp_config.WlanExpNetworkConfiguration(network=NETWORK)
    28 
    29 # Create an object that describes the WARP v3 nodes that will be used in this experiment
    30 nodes_config   = wlan_exp_config.WlanExpNodesConfiguration(network_config=network_config,
    31                                                            serial_numbers=NODE_SERIAL_LIST)
    32 }}}
    33   1. Change any uses of the host configuration to the network configuration:
    34 {{{
    35 # Initialize the Nodes
    36 #  This command will fail if either WARP v3 node does not respond
    37 nodes = wlan_exp_util.init_nodes(nodes_config, host_config)
    38 
    39 # Set the time of all the nodes to zero
    40 wlan_exp_util.broadcast_cmd_set_time(0.0, host_config)
    41 
    42 
    43 Changes to:
    44 
    45 
    46 # Initialize the Nodes
    47 #  This command will fail if either WARP v3 node does not respond
    48 nodes = wlan_exp_util.init_nodes(nodes_config, network_config)
    49 
    50 # Set the time of all the nodes to zero
    51 wlan_exp_util.broadcast_cmd_set_time(0.0, network_config)
    52 }}}
    53 
    54 One other change that requires updates to existing scripts involves the LTG framework.  In v0.9.5, we added additional information to the payload of LTG packets that allows for tracking of LTG flows across nodes.  This necessitated the creation of *_LTG log entry types for RX and TX packets.  Since *_LTG log entry types contain all the fields of the non-*_LTG log entry types, we can merge the two log entry types to create a single set of log entries.  This is equivalent to the behavior in v0.9.3.  To do this, you need to update your filter commands:
    55 {{{
    56 # Filter log index to include all Rx entries, merged into RX_ALL, and all Tx entries
    57 log_index = log_util.filter_log_index(raw_log_index,
    58                                       include_only=['NODE_INFO', 'RX_OFDM', 'TX', 'TX_LOW'])
    59 
    60 
    61 Changes to:
    62 
    63 
    64 # Filter log index to include all Rx entries and all Tx entries
    65 log_index = log_util.filter_log_index(raw_log_index,
    66                                       include_only=['NODE_INFO', 'RX_OFDM', 'TX', 'TX_LOW'],
    67                                       merge={'RX_OFDM': ['RX_OFDM', 'RX_OFDM_LTG'],
    68                                              'TX'     : ['TX', 'TX_LTG'],
    69                                              'TX_LOW' : ['TX_LOW', 'TX_LOW_LTG']})
    70 }}}
    71 
    72 Basically, you are merging the original entry type and the new _LTG entry type and then overwriting the original entry type list.  For example, for 'TX' we take the 'TX' and 'TX_LTG' entry types and merge them in to the 'TX' entry type.  The include_only parameter, then means we only the 'TX' log entry type.  This is equivalent to the 'TX' log entry type in v0.9.3.  One thing to remember is that if you want to use the new functionality of the _LTG entries, then you need to use that entry type. 
    73 
     5The 802.11 Reference Design implements a Python framework for running experiments with multiple nodes under the control of a host PC. This framework enables low-level visibility and control of MAC and PHY behaviors in real-time without interfering with the real-time operation of the wireless interfaces. The experiment framework is called '''wlan_exp'''.
    746
    757== Resources ==
    768Please refer to the pages below for wlan_exp documentation.
    779 * '''[wiki:./GettingStarted Getting Started]'''
    78  * '''[wiki:./examples Examples]'''
     10 * '''[wiki:./examples Examples Scripts]'''
     11 * '''[/docs/mango-wlan-exp wlan_exp Python package documentation]