diff options
author | Samuel O'Brien <sam.obrien@ni.com> | 2020-08-05 09:29:41 -0500 |
---|---|---|
committer | Aaron Rossetto <aaron.rossetto@ni.com> | 2020-10-08 07:44:12 -0500 |
commit | 267365c9458690842da549a00b7adb7946a1117d (patch) | |
tree | 766067b75378f9fe9ee86cd3af20282fa94ef2bd /mpm/python | |
parent | ee9085a494d6f5030e49f5a47aff6a84008e0852 (diff) | |
download | uhd-267365c9458690842da549a00b7adb7946a1117d.tar.gz uhd-267365c9458690842da549a00b7adb7946a1117d.tar.bz2 uhd-267365c9458690842da549a00b7adb7946a1117d.zip |
sim: Clarify Naming of Streams
ChdrSniffer is renamed to ChdrEndpoint to clarify its function as the
actual destination of chdr packets, rather than just an observer.
TxWorker has been renamed to OutputStream and RxWorker has been renamed
to InputStream to avoid ambiguities regarding Tx and Rx terminology.
Signed-off-by: Samuel O'Brien <sam.obrien@ni.com>
Diffstat (limited to 'mpm/python')
-rw-r--r-- | mpm/python/usrp_mpm/periph_manager/sim.py | 4 | ||||
-rw-r--r-- | mpm/python/usrp_mpm/simulator/CMakeLists.txt | 2 | ||||
-rw-r--r-- | mpm/python/usrp_mpm/simulator/chdr_endpoint.py (renamed from mpm/python/usrp_mpm/simulator/chdr_sniffer.py) | 22 | ||||
-rw-r--r-- | mpm/python/usrp_mpm/simulator/rfnoc_graph.py | 24 |
4 files changed, 27 insertions, 25 deletions
diff --git a/mpm/python/usrp_mpm/periph_manager/sim.py b/mpm/python/usrp_mpm/periph_manager/sim.py index 7f9a610a7..20d2486c0 100644 --- a/mpm/python/usrp_mpm/periph_manager/sim.py +++ b/mpm/python/usrp_mpm/periph_manager/sim.py @@ -16,7 +16,7 @@ from usrp_mpm.mpmlog import get_logger from usrp_mpm.rpc_server import no_claim from usrp_mpm.periph_manager import PeriphManagerBase from usrp_mpm.simulator.sim_dboard_catalina import SimulatedCatalinaDboard -from usrp_mpm.simulator.chdr_sniffer import ChdrSniffer +from usrp_mpm.simulator.chdr_endpoint import ChdrEndpoint CLOCK_SOURCE_INTERNAL = "internal" @@ -83,7 +83,7 @@ class sim(PeriphManagerBase): super().__init__() self.device_id = 1 - self.chdr_sniffer = ChdrSniffer(self.log, args) + self.chdr_endpoint = ChdrEndpoint(self.log, args) # Unlike the real hardware drivers, if there is an exception here, # we just crash. No use missing an error when testing. diff --git a/mpm/python/usrp_mpm/simulator/CMakeLists.txt b/mpm/python/usrp_mpm/simulator/CMakeLists.txt index 82fcbd801..b1f44ef12 100644 --- a/mpm/python/usrp_mpm/simulator/CMakeLists.txt +++ b/mpm/python/usrp_mpm/simulator/CMakeLists.txt @@ -13,7 +13,7 @@ set(USRP_MPM_SIMULATOR_FILES ${CMAKE_CURRENT_SOURCE_DIR}/__init__.py ${CMAKE_CURRENT_SOURCE_DIR}/sim_dboard.py ${CMAKE_CURRENT_SOURCE_DIR}/sim_dboard_catalina.py - ${CMAKE_CURRENT_SOURCE_DIR}/chdr_sniffer.py + ${CMAKE_CURRENT_SOURCE_DIR}/chdr_endpoint.py ${CMAKE_CURRENT_SOURCE_DIR}/noc_block_regs.py ${CMAKE_CURRENT_SOURCE_DIR}/rfnoc_graph.py ${CMAKE_CURRENT_SOURCE_DIR}/stream_ep_regs.py diff --git a/mpm/python/usrp_mpm/simulator/chdr_sniffer.py b/mpm/python/usrp_mpm/simulator/chdr_endpoint.py index 8ff467cf2..616cd0ce9 100644 --- a/mpm/python/usrp_mpm/simulator/chdr_sniffer.py +++ b/mpm/python/usrp_mpm/simulator/chdr_endpoint.py @@ -3,17 +3,9 @@ # # SPDX-License-Identifier: GPL-3.0-or-later # -"""This module houses the ChdrSniffer class, which handles networking, -packet dispatch, and the nitty gritty of spinning up rx and tx workers. - -Note: Rx and Tx are reversed when compared to their definitions in the -UHD radio_control_impl.cpp file. Rx is when samples are coming to the -simulator. Tx is when samples are being sent by the simulator. - -TODO: This class is run based on threads for development simplicity. If -more throughput is desired, it should be rewritten to use processes -instead. This allows the socket workers to truly work in parallel. -Python threads are limited by holding the GIL while they are executing. +"""This module houses the ChdrEndpoint class, which handles networking, +packet dispatch, and acts as an interface between these and the RFNoC +Graph. """ from threading import Thread @@ -23,7 +15,7 @@ from .rfnoc_graph import XbarNode, XportNode, StreamEndpointNode, RFNoCGraph, No CHDR_W = ChdrWidth.W64 -class ChdrSniffer: +class ChdrEndpoint: """This class is created by the sim periph_manager It is responsible for opening sockets, dispatching all chdr packet traffic to the appropriate destination, and responding to said @@ -34,7 +26,7 @@ class ChdrSniffer: command line """ def __init__(self, log, extra_args): - self.log = log.getChild("ChdrSniffer") + self.log = log.getChild("ChdrEndpoint") self.thread = Thread(target=self.socket_worker, daemon=True) self.thread.start() self.graph = RFNoCGraph(self.get_default_nodes(), self.log, 1, self.begin_tx, @@ -77,14 +69,14 @@ class ChdrSniffer: blocks on the CHDR socket and processes packets as they come in. """ - self.log.info("Starting ChdrSniffer Thread") + self.log.info("Starting ChdrEndpoint Thread") main_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) main_sock.bind(("0.0.0.0", 49153)) while True: # This allows us to block on multiple sockets at the same time - buffer = bytearray(8192) # Max MTU + buffer = bytearray(8000) # Max MTU # received Data over socket n_bytes, sender = main_sock.recvfrom_into(buffer) self.log.trace("received {} bytes of data from {}" diff --git a/mpm/python/usrp_mpm/simulator/rfnoc_graph.py b/mpm/python/usrp_mpm/simulator/rfnoc_graph.py index 42210ab6e..c12592603 100644 --- a/mpm/python/usrp_mpm/simulator/rfnoc_graph.py +++ b/mpm/python/usrp_mpm/simulator/rfnoc_graph.py @@ -23,7 +23,7 @@ class StreamSpec: radio registers (noc_block_regs.py) sample_rate comes from an rpc to the daughterboard (through the - set_sample_rate method in chdr_sniffer.py) + set_sample_rate method in chdr_endpoint.py) dst_epid comes from the source stream_ep @@ -146,18 +146,23 @@ class Node: next_node = self._handle_default_packet(packet, **kwargs) return next_node + # pylint: disable=unused-argument,no-self-use def _handle_mgmt_packet(self, packet, **kwargs): return NotImplemented + # pylint: disable=unused-argument,no-self-use def _handle_ctrl_packet(self, packet, **kwargs): return NotImplemented + # pylint: disable=unused-argument,no-self-use def _handle_data_packet(self, packet, **kwargs): return NotImplemented + # pylint: disable=unused-argument,no-self-use def _handle_strc_packet(self, packet, **kwargs): return NotImplemented + # pylint: disable=unused-argument,no-self-use def _handle_strs_packet(self, packet, **kwargs): return NotImplemented @@ -329,7 +334,7 @@ class StreamEndpointNode(Node): REG_OSTRM_CTRL_STATUS register """ if status.cfg_start: - # This only creates a new TxWorker if the cfg_start flag is set + # This only creates a new ChdrOutputStream if the cfg_start flag is set self.log.info("Starting Stream EPID:{} -> EPID:{}".format(self.epid, self.dst_epid)) self.sep_config(self, True) return STRM_STATUS_FC_ENABLED @@ -338,7 +343,7 @@ class StreamEndpointNode(Node): """Called by the ep_regs on a write to the REG_OSTRM_CTRL_STATUS register """ - # This always triggers the graph to create a new RxWorker + # This always triggers the graph to create a new ChdrInputStream self.sep_config(self, False) return STRM_STATUS_FC_ENABLED @@ -351,15 +356,18 @@ class StreamEndpointNode(Node): return NodeType.STRM_EP def get_epid(self): + """ Get the endpoint id of this stream endpoint """ return self.epid def set_epid(self, epid): + """ Set the endpoint id of this stream endpoint """ self.epid = epid def set_dst_epid(self, dst_epid): + """ Set the destination endpoint id of this stream endpoint """ self.dst_epid = dst_epid - def _handle_mgmt_packet(self, packet, regs, **kwargs): + def _handle_mgmt_packet(self, packet, **kwargs): send_upstream = False payload = packet.get_payload_mgmt() our_hop = payload.pop_hop() @@ -413,7 +421,7 @@ class RFNoCGraph: """This class holds all of the nodes of the NoC core and the Noc blocks. - It serves as an interface between the ChdrSniffer and the + It serves as an interface between the ChdrEndpoint and the individual blocks/nodes. """ def __init__(self, graph_list, log, device_id, create_tx_func, @@ -449,7 +457,7 @@ class RFNoCGraph: self.radio_tx_stop) def radio_tx_cmd(self, sep_block_id): - """Triggers the creation of a TxWorker in the ChdrSniffer using + """Triggers the creation of a ChdrOutputStream in the ChdrEndpoint using the current stream_spec. This method transforms the sep_block_id into an epid useable by @@ -470,7 +478,7 @@ class RFNoCGraph: self.stream_spec = StreamSpec() def radio_tx_stop(self, sep_block_id): - """Triggers the destuction of a TxWorker in the ChdrSniffer + """Triggers the destuction of a ChdrOutputStream in the ChdrEndpoint This method transforms the sep_block_id into an epid useable by the transmit code @@ -499,6 +507,7 @@ class RFNoCGraph: self.create_rx(stream_ep.epid) def change_spp(self, spp): + """Change the Stream Samples per Packet""" self.stream_spec.packet_samples = spp def find_ep_by_id(self, epid): @@ -551,4 +560,5 @@ class RFNoCGraph: return response_packet def get_stream_spec(self): + """ Get the current output stream configuration """ return self.stream_spec |