# Handle command-line options parser = OptionParser(option_class=eng_option, conflict_handler="resolve") expert_grp = parser.add_option_group("Expert") cs_mac.add_options(parser, expert_grp) usrp_rx.add_options(parser, expert_grp) usrp_tx.add_options(parser, expert_grp) pkt_sender.add_options(parser, expert_grp) (options, args) = parser.parse_args() # Create MAC and connect to USRP tb = gr.top_block() mac = cs_mac(options) tb.connect(usrp_rx(options), mac, usrp_tx(options)) # Spawn thread to send packets pkt_thread = pkt_sender(options, mac) pkt_thread.start() # Let everything run tb.start() try: raw_input() except KeyboardInterrupt: pass # Cleanup tb.stop() mac.stop() pkt_thread.stop() # Wait for completion
(src, dst) = (endpoints[0], endpoints[1]) # Use global options as a base flow_options = copy.copy(options) # Assign destination address flow_options.pkt_dest = nodes[dst][0].get_local_address() # Assign other flow options (e.g., packet interval) if config.has_option(s, "pkt-interval"): flow_options.pkt_interval = config.getfloat(s, "pkt-interval") if config.has_option(s, "init-delay"): flow_options.init_delay = config.getfloat(s, "init-delay") # Spawn packet generator mac_sender = pkt_sender(flow_options, nodes[src][0]) mac_sender.start() flow_srcs.append(mac_sender) # Let everything run tb.start() try: raw_input() except KeyboardInterrupt: pass # Cleanup tb.stop() for n in nodes.keys(): nodes[n][0].stop() nodes[n][2].stop()