Commit graph

69 commits

Author SHA1 Message Date
Josh Blum
bd59192bd4 usrp2: handle real overflow packets in host, reload continuous stream cmd, remove firmware handling 2010-10-21 12:27:49 -07:00
Josh Blum
816a07bee5 usrp2: make the booty smaller than the number of recv frames
This may fix some of our woes when the host cannot keep up.
That is, with a smaller booty, the managed buffers will get
freed up and the call to get buffer will never block waiting
for a buffer to become free. This has several side effects:

1)
Overflows are more likely to occur in the pirate thread.
Pirate-based overflows will overwrite old packets, whereas
socket-based overflows will discard newer incoming packets.

2)
The pirate thread will continue to pull in async packets
rather than loosing them in a socket-based overflow.
2010-10-16 01:18:47 -07:00
Josh Blum
0059e62ed0 usrp2: moved samples per packet calculation into io_impl 2010-10-07 10:43:58 -07:00
Josh Blum
0cd5375b5c uhd: replaced frame params for the zero copy interfaces with a device address
the device address gives a key, value pair of infinite optional capabilities

added a cast option to the device address to cast string to type T

added call to the zero_copy_if to get send and recv frame sizes

changed the usrp2 impl to calculate recv/send spp from the data transport
2010-10-05 10:30:28 -07:00
Josh Blum
4fd922ba3a usrp2: removed extra print-outs in init 2010-10-04 09:48:25 -07:00
Josh Blum
00cd601840 uhd: implemented a double timeout (in seconds) for send and recv chains
converted all size_t timeout_ms to double timeout

bounded and alignment buffer now take double timeout

added timeout to device::send and zero_copy_if::get_send_buff
2010-10-01 18:22:41 -07:00
Josh Blum
2c8a7c7deb uhd: implemented recv timeout for zero copy interface 2010-09-30 14:36:24 -07:00
Josh Blum
2f62c39b71 uhd: fix warning by adding brackets for while(cond){}; 2010-09-27 11:35:28 -07:00
Josh Blum
000578892e usrp1: reworked the io_impl for usrp1 to use the vrt packet handler
used dummy packers and unpackets that have a header size of zero

created wrapper around the data transport to handle non-512 multiple sends

honor the eob flag on send to flush the send buffer
2010-09-22 17:36:18 -07:00
Josh Blum
11c83c6010 usrp2: flush the error flow messages, issue the stop before register configure to align count 2010-08-31 12:11:43 -07:00
Josh Blum
5dca9e6315 usrp2: stop streaming and drain buffer (if left running) 2010-07-30 11:16:58 -07:00
Josh Blum
693929a9e6 Merge branch 'tx_report'
Conflicts:
	host/lib/usrp/usrp2/io_impl.cpp
2010-07-26 15:31:03 -07:00
Josh Blum
91db52802a usrp2: moved timeout into bound callback in io_impl 2010-07-22 17:30:10 -07:00
Josh Blum
19c15883a9 usrp2: added async event types, and common code for handling context words 2010-07-21 19:34:29 -07:00
Josh Blum
90465e6bcd uhd: added async recv message call to device api
implemented in usrp2 io impl

added async metadata type
2010-07-20 18:51:36 -07:00
Josh Blum
8e29df8b31 Merge branch 'master' into tx_report 2010-07-20 16:58:33 -07:00
Josh Blum
5a4545d3f9 uhd: bring timeout parameter to the device::recv call, implement in usrp2 2010-07-20 10:58:22 -07:00
Josh Blum
20381a1c83 usrp2: added registers and handling for tx async reports 2010-07-19 18:56:33 -07:00
Josh Blum
5e7af879c8 usrp2: removed SX packet count stuff from vrt packet handler, moved to usrp2 io impl and replaced with Os 2010-07-09 23:24:41 -07:00
Josh Blum
c898ca9751 uhd: ssize_t for phony zero copy return types, null sptr for timeout/error with get managed buffers 2010-07-09 20:09:45 -07:00
Josh Blum
be430761fb usrp2: use the actual pointer in bind so the sptr is not copied 2010-07-07 19:32:47 -07:00
Josh Blum
82790f3da8 usrp2: some cleanup and tweaks in io impl 2010-07-05 13:45:15 -07:00
Josh Blum
158bf440d2 usrp2: moved calculations for max packet size and otw types into shared object between device and mboards 2010-07-05 13:45:14 -07:00
Josh Blum
905f5b3b24 usrp2: split mboard impl into its own class, usrp2 device can instantiate N mboard impls for mimo setup (works with 1 for now) 2010-07-05 13:45:13 -07:00
Josh Blum
08fad28f20 uhd: work vectorizing the vrt packet handler, reworked vrt packet stuff, needs testing 2010-07-05 13:45:11 -07:00
Josh Blum
168ab7279c uhd: work on thread priority scheduling 2010-06-16 18:40:44 -07:00
Josh Blum
0f4eff49c8 Replaced the vrt pack and unpack with a pack and unpack for big endian and a pack and unpack for little endian.
The vrt handler code was templatized to take the relevant packer/unpacker as an argument.
2010-06-07 13:23:07 -07:00
Josh Blum
b369d0f020 usrp2 regs naming convention 2010-06-04 17:35:48 -07:00
Josh Blum
b2054a45d4 Created macros for dealing with pimpls and implemented in code. 2010-06-02 17:44:20 -07:00
Josh Blum
a4494bc2c9 use smart pointer for io impl, simplify send buffer callback 2010-06-02 15:21:56 -07:00
Josh Blum
92fd3a514b disable boost thread interrupt when doing pop with timed wait, fixed error on exit 2010-06-02 14:49:32 -07:00
Josh Blum
212159ca3b Implemented pirate thread, moved io impl details into io impl cpp file. Fixed bug in bounded buffer push with pop on full. 2010-06-01 17:51:26 -07:00
Josh Blum
bb1eef8cad Moved the packet handler state stuff into a separate header (so we dont pull in all the includes).
Use callback for getting buffers rather than zc interface pointer so its more modular.
2010-06-01 12:23:20 -07:00
Josh Blum
4eff47a4b6 Tweak with the udp and zero-copy transport. Eventually, the caller will hang onto a ring of managed buffers. 2010-05-27 14:10:50 -07:00
Josh Blum
17c494b79a Added tx timed samples example.
Added called to device to get max samples per packet.
Removed device props that gave max samples per packet.
2010-05-18 14:26:43 -07:00
Josh Blum
eaa1508dcf Added send and recv modes to the device class and packet handler implementation. 2010-05-18 12:34:04 -07:00
Josh Blum
101afd526d Created inline send vrt packer function that also handles fragmentation. 2010-05-17 18:47:33 -07:00
Josh Blum
d9cc352ed1 work on generic packet handler (got rx working) 2010-05-17 13:22:26 -07:00
Josh Blum
d20595a3fe calculate max samples per packet using otw type 2010-05-17 09:52:43 -07:00
Josh Blum
650e0d9b35 Merge branch 'shrinkfw' into usrp2 2010-05-10 14:18:00 -07:00
Josh Blum
8ebe12659c fix for first seqno on rx, init the variable 2010-05-07 11:31:18 -07:00
Josh Blum
a7c230cb1f Added reload flag to the stream cmd.
This reloads the last command to handle continuous streaming in hardware.
Moved rx control register setup and stream command issuing to the host.
2010-04-28 16:35:22 -07:00
Josh Blum
51a9c2d42d Created a usrp2 interface class with the control, spi, peek/poke functionality.
Its used in all the implementation level code
2010-04-13 17:48:48 -07:00
Josh Blum
389a72ef59 merged unit type and gpio bank for dboard interface into one type, expanded dboard clock config api 2010-04-12 16:52:18 -07:00
Josh Blum
b87d9afe82 Merge branch 'rfx' of git@ettus.sourcerepo.com:ettus/uhd into io
Conflicts:
	host/lib/usrp/usrp2/io_impl.cpp
2010-04-12 15:19:25 -07:00
Josh Blum
24ca9fbd07 store the mtu and hdr len stuff only in the usrp2 impl 2010-04-12 14:31:46 -07:00
Josh Blum
e611e610f6 Added data type conversion routines to transport api. 2010-04-12 13:39:09 -07:00
Josh Blum
0021abf18a Created zero copy interface/framework, made use of it in usrp2 udp transport stuff. 2010-04-12 12:22:29 -07:00
Josh Blum
d743784919 converted timespec to use nanoseconds for fractional part 2010-04-08 10:57:16 -07:00
Josh Blum
8740bc7149 handle tx fragment eob flag case 2010-04-05 18:32:33 -07:00