USRP Hardware Driver and USRP Manual  Version: 003.010.003.HEAD-0-gef157678
UHD and USRP Manual
uhd::sid_t Class Reference

Represents a stream ID (SID). More...

#include <uhd/types/sid.hpp>

Public Member Functions

 sid_t ()
 Create an unset SID. More...
 
 sid_t (uint32_t sid)
 Create a sid_t object from a 32-Bit SID value. More...
 
 sid_t (uint8_t src_addr, uint8_t src_ep, uint8_t dst_addr, uint8_t dst_ep)
 Create a sid_t object from its four components. More...
 
 sid_t (const std::string &)
 Convert a string representation of a SID into its numerical representation. More...
 
std::string to_pp_string () const
 Return a decimal string representation of the SID. More...
 
std::string to_pp_string_hex () const
 Return a hexadecimal string representation of the SID. More...
 
bool is_set () const
 Returns true if this actually holds a valid SID. More...
 
UHD_INLINE uint32_t get () const
 Alias for get_sid() More...
 
UHD_INLINE uint32_t get_sid () const
 Returns a 32-Bit representation of the SID if set, or zero otherwise. More...
 
UHD_INLINE uint32_t get_src () const
 Return the 16-bit source address of this SID. More...
 
UHD_INLINE uint32_t get_dst () const
 Return the 16-bit destination address of this SID. More...
 
UHD_INLINE uint32_t get_src_addr () const
 Return 8-bit address of the source. More...
 
UHD_INLINE uint32_t get_src_endpoint () const
 Return endpoint of the source. More...
 
UHD_INLINE uint32_t get_src_xbarport () const
 Return crossbar port of the source. More...
 
UHD_INLINE uint32_t get_src_blockport () const
 Return block port of the source. More...
 
UHD_INLINE uint32_t get_dst_addr () const
 Return 8-bit address of the destination. More...
 
UHD_INLINE uint32_t get_dst_endpoint () const
 Return endpoint of the destination. More...
 
UHD_INLINE uint32_t get_dst_xbarport () const
 Return crossbar port of the source. More...
 
UHD_INLINE uint32_t get_dst_blockport () const
 Return block port of the source. More...
 
void set (uint32_t new_sid)
 Alias for set_sid() More...
 
void set_from_str (const std::string &)
 Convert a string representation of a SID into a numerical one. More...
 
void set_sid (uint32_t new_sid)
 
void set_src (uint32_t new_addr)
 Set the source address of this SID. More...
 
void set_dst (uint32_t new_addr)
 Set the destination address of this SID. More...
 
void set_src_addr (uint32_t new_addr)
 
void set_src_endpoint (uint32_t new_addr)
 
void set_dst_addr (uint32_t new_addr)
 
void set_dst_endpoint (uint32_t new_addr)
 
void set_dst_xbarport (uint32_t new_xbarport)
 
void set_dst_blockport (uint32_t new_blockport)
 
sid_t reversed ()
 Swaps dst and src address and returns the new SID. More...
 
void reverse ()
 Swaps dst and src in-place. More...
 
sid_t operator= (uint32_t new_sid)
 
sid_t operator= (sid_t &sid)
 
sid_t operator= (const std::string &sid_str)
 
bool operator== (const sid_t &sid) const
 
bool operator== (uint32_t sid) const
 
bool operator== (const std::string &sid_str) const
 
 operator uint32_t () const
 If the SID is not set, always returns zero. More...
 
 operator bool () const
 

Detailed Description

Represents a stream ID (SID).

A stream ID (SID) is an identifier for data. It is a 32-Bit value which consists of 16 Bits for the source address and 16 Bits for the destination address. Every address is split into two parts: The address, which identifies the device used, and the endpoint, which identifies a specific object inside the given device (e.g., a block). Note: In the case where there are several crossbars on a single device, each crossbar gets its own address. Both address and endpoint are 8 bits in length. If a 16-bit address is required, we use the combination of the 8-bit address and the 8-bit endpoint.

+-------------+--------------+-------------+--------------+
| SRC address | SRC endpoint | DST address | DST endpoint |
+-------------+--------------+-------------+--------------+

String Representation (pretty printing)

The string representation of a SID is of the form

2.3>0.6

The '>' symbol shows the direction, so in this case, data is flowing from address 2.3 to 0.6.

As a convention, ':' is used instead of '.' when giving the SID in hexadecimal numbers, and two characters are used for each address part. As an example, the following two SIDs are identical:

2.3>0.16 (decimal)
02:03>00:10 (hexadecimal)

The format is: SRC_ADDRESS.SRC_ENDPOINT>DST_ADDRESS.DST_ENDPOINT

Block Ports

In the special case where a block on a crossbar is addressed, the endpoint is further split up into two parts of four bits each: The first four bits specify the port number on the crossbar, whereas the lower four bits represent the block port. As an example, consider the following SID, given in hexadecimal:

00:10>02:A1

In this example, assume data is flowing from the host computer to an X300. The crossbar address is 02. The endpoint is A1, which means we are accessing a block on crossbar port A (the tenth port), and are addressing block port 1.

Constructor & Destructor Documentation

◆ sid_t() [1/4]

uhd::sid_t::sid_t ( )

Create an unset SID.

◆ sid_t() [2/4]

uhd::sid_t::sid_t ( uint32_t  sid)

Create a sid_t object from a 32-Bit SID value.

◆ sid_t() [3/4]

uhd::sid_t::sid_t ( uint8_t  src_addr,
uint8_t  src_ep,
uint8_t  dst_addr,
uint8_t  dst_ep 
)

Create a sid_t object from its four components.

◆ sid_t() [4/4]

uhd::sid_t::sid_t ( const std::string &  )

Convert a string representation of a SID into its numerical representation.

Member Function Documentation

◆ get()

UHD_INLINE uint32_t uhd::sid_t::get ( void  ) const
inline

Alias for get_sid()

◆ get_dst()

UHD_INLINE uint32_t uhd::sid_t::get_dst ( ) const
inline

Return the 16-bit destination address of this SID.

◆ get_dst_addr()

UHD_INLINE uint32_t uhd::sid_t::get_dst_addr ( ) const
inline

Return 8-bit address of the destination.

◆ get_dst_blockport()

UHD_INLINE uint32_t uhd::sid_t::get_dst_blockport ( ) const
inline

Return block port of the source.

◆ get_dst_endpoint()

UHD_INLINE uint32_t uhd::sid_t::get_dst_endpoint ( ) const
inline

Return endpoint of the destination.

◆ get_dst_xbarport()

UHD_INLINE uint32_t uhd::sid_t::get_dst_xbarport ( ) const
inline

Return crossbar port of the source.

◆ get_sid()

UHD_INLINE uint32_t uhd::sid_t::get_sid ( ) const
inline

Returns a 32-Bit representation of the SID if set, or zero otherwise.

◆ get_src()

UHD_INLINE uint32_t uhd::sid_t::get_src ( ) const
inline

Return the 16-bit source address of this SID.

◆ get_src_addr()

UHD_INLINE uint32_t uhd::sid_t::get_src_addr ( ) const
inline

Return 8-bit address of the source.

◆ get_src_blockport()

UHD_INLINE uint32_t uhd::sid_t::get_src_blockport ( ) const
inline

Return block port of the source.

◆ get_src_endpoint()

UHD_INLINE uint32_t uhd::sid_t::get_src_endpoint ( ) const
inline

Return endpoint of the source.

◆ get_src_xbarport()

UHD_INLINE uint32_t uhd::sid_t::get_src_xbarport ( ) const
inline

Return crossbar port of the source.

◆ is_set()

bool uhd::sid_t::is_set ( ) const
inline

Returns true if this actually holds a valid SID.

◆ operator bool()

uhd::sid_t::operator bool ( ) const
inline

◆ operator uint32_t()

uhd::sid_t::operator uint32_t ( ) const
inline

If the SID is not set, always returns zero.

◆ operator=() [1/3]

sid_t uhd::sid_t::operator= ( uint32_t  new_sid)
inline

◆ operator=() [2/3]

sid_t uhd::sid_t::operator= ( sid_t sid)
inline

◆ operator=() [3/3]

sid_t uhd::sid_t::operator= ( const std::string &  sid_str)
inline

◆ operator==() [1/3]

bool uhd::sid_t::operator== ( const sid_t sid) const
inline

◆ operator==() [2/3]

bool uhd::sid_t::operator== ( uint32_t  sid) const
inline

◆ operator==() [3/3]

bool uhd::sid_t::operator== ( const std::string &  sid_str) const
inline

◆ reverse()

void uhd::sid_t::reverse ( )

Swaps dst and src in-place.

◆ reversed()

sid_t uhd::sid_t::reversed ( )

Swaps dst and src address and returns the new SID.

◆ set()

void uhd::sid_t::set ( uint32_t  new_sid)
inline

Alias for set_sid()

◆ set_dst()

void uhd::sid_t::set_dst ( uint32_t  new_addr)

Set the destination address of this SID.

◆ set_dst_addr()

void uhd::sid_t::set_dst_addr ( uint32_t  new_addr)

◆ set_dst_blockport()

void uhd::sid_t::set_dst_blockport ( uint32_t  new_blockport)

◆ set_dst_endpoint()

void uhd::sid_t::set_dst_endpoint ( uint32_t  new_addr)

◆ set_dst_xbarport()

void uhd::sid_t::set_dst_xbarport ( uint32_t  new_xbarport)

◆ set_from_str()

void uhd::sid_t::set_from_str ( const std::string &  )

Convert a string representation of a SID into a numerical one.

◆ set_sid()

void uhd::sid_t::set_sid ( uint32_t  new_sid)

◆ set_src()

void uhd::sid_t::set_src ( uint32_t  new_addr)

Set the source address of this SID.

◆ set_src_addr()

void uhd::sid_t::set_src_addr ( uint32_t  new_addr)

◆ set_src_endpoint()

void uhd::sid_t::set_src_endpoint ( uint32_t  new_addr)

◆ to_pp_string()

std::string uhd::sid_t::to_pp_string ( ) const

Return a decimal string representation of the SID.

◆ to_pp_string_hex()

std::string uhd::sid_t::to_pp_string_hex ( ) const

Return a hexadecimal string representation of the SID.


The documentation for this class was generated from the following file: