Gigabit Ethernet Interconnect for the USRP2 At this point, this is a place to summarize design requirements, possible solutions, point-counterpoint, etc. Requirements: (R1) High throughput and low latency between USRP h/w and user-space. One of the primary reasons for switching from USB to gigabit ethernet is to increase throughput. Many users want to be be able to build WLAN type systems, and are thwarted by the relatively low throughput available over the USB. Eric thinks we should shoot for at least 100MB/s full-duplex into user space, using packets with payloads on the order of 256 to 512 bytes. The small packet size is to reduce the latency. This is important for many MACs that people want to build on the host side. (R2) Non-priviledged user programs should be able to access the USRP. This could be implemented by a priviledged daemon that actually handles the low level communication with the USRP2. This daemon may be desirable for other reasons, including central point of control for arbitrating/muxing/demuxing between multiple concurrent users (e.g., Tx, Rx, requests, replies, various logical channels). (R3) Some way to flow control the host to USRP2 stream. This is required in case the user connects an unthrottled signal generator to the USRP. (This is not uncommon.) The USRP2 to host direction shouldn't be a problem, since the USRP2 throughput is controlled by its configuration. It is an error to configure the USRP2 to transmit data at a higher rate than the transport or host can consume. One solution to this requirement could be having the USRP2 emit GigE "pause" frames. We'll need to confirm that this works.