I want to broadcast (unidirectional) UDP packets over the air on 2.4 GHz or 5 GHz at 3+ Mbit/s at maximum (legal) power. Is there a good way to do this with any current SDR hardware? Or is my best bet to ab(use) wifi cards for this purpose?
You can use SDR to transmit any I/Q stream you want. I/Q is just a stream of two numbers for the strength of two phase-shifted carrier waves. How you encode your data (UDP packets) in the I/Q stream is up to you. SDRs like the LimeSDR Mini support sample rates of up to 30 MS/s, therefore it should be perfectly possible to achieve high throughput rates. On the receiver side you will also get an I/Q stream. The problem though is that it is not going to be the same of the transmitted I/Q stream. There might be a lot of noise, the carrier may be slightly shifted, the phase is not the same. Therefore you have to use some modulation to encode and decode the data. It is really up to you what kind of modulation to use. Some traditional ones are OOK (on-off keying), and some of the more complicated ones are APSK. LimeSDR Mini comes with example Python code to transmit raw I/Q. RTL-SDR should be enough for a passive receiver, but it is limited to 3.2 MS/s.
What does "broadcast UDP packets" mean? They'll need some sort of physical encoding; if wifi, why not use a wifi card? If not wifi...what are you trying to do by broadcasting UDP packets?
The question was too underspecified to give a good answer. It's the equivalent to asking "can I send data over the internet"? The answer to the question as-asked is "yes", but the details will be substantially different depending on what you're actually trying to do.
The question was precisely much more specific than "data over internet".
They indicated that they had UDP packets, which is the specification of the application layer, it means that they have an application that already works with UDP and they just want to send them over the radio, bypassing WiFi protocols/cards etc, from an SDR to an SDR directly. It means that whatever solution is, if it can work with UDP, if the underlying layer translates data into UDP, it will work with their application. That's a very precise specification.
That wasn't actually stated. Maybe OP has a bunch of laptops with WiFi cards and no access point and wants to broadcast data to them with the laptops listening in monitor mode. Or maybe OP has a bunch of laptops connected to an access point and wants to broadcast to them using IP multicast. Or maybe OP really does have a bunch of software-defined radios and wants to directly encode UDP packets into IQ samples. Don't you think those would be three very different solutions?
We broadcast UDP over various satellite transponders. We have also done this over terrestrial links. We've done UDP file broadcasting over DVB-S/DVB-T/LoRa/FSK/etc with forward error correction in the client/receiver. Feel free to contact me. Email in my profile.
You definitely can broadcast packets via wifi. I mean, that's essentially what you're doing when talking to an AP. All the other wifi antennas/chips in the area can see the data you're sending. You'd have to do some hacking on the receive side to get the data out, but that should be pretty straightforward.
To receive, just set your interface to monitor mode, set the right channel, dump and filter. tcpdump works fine, though you probably want to read and process the data with a custom application.