Network streams are the interface to the host buffers, and they are used for receiving data from and transmitting data to the SmartNICs. A stream does not correspond to a specific host buffer but instead the stream / host buffer relationship is set up dynamically, based on the filters applied and the available host buffers. This makes network streams an abstraction on top of the host buffers and makes it possible to have network streams that merge between multiple host buffers (packet merging – see Packet Merging) and similarly have multiple applications open the same streams (data sharing – Data Sharing). A network stream can be opened as either a packet-based or a segment-based interface (see Packet-Based Interface and Segment-Based Interface).
Network streams are unidirectional, meaning that they are either receive (RX) streams or transmit (TX) streams.