##(see the SpecSpec for an explanation) * '''Launchpad Entry''': UbuntuSpec:jaunty-crda-planning * '''Created''': PeteGraner * '''Contributors''': * '''Packages affected''': == Summary == The Central Regulatory Domain Agent (CRDA) is a free software project to allow Linux (and possibly other operating systems) comply with radio spectrum regulations around the world by enforcing the regulatory requirements in software. CRDA is also aimed to encourage Linux support from the vendors who were previously afraid to support Linux drivers that would not follow the requirements for radio spectrum use. * http://linuxwireless.org/en/developers/Regulatory/CRDA * http://www.freedesktop.org/wiki/Software/GeoClue ##This should provide an overview of the issue/functionality/change proposed here. Focus here on what will actually be DONE, summarising that so that other people don't have to read the whole spec. See also CategorySpec for examples. == Release Note == ##This section should include a paragraph describing the end-user impact of this change. It is meant to be included in the release notes of the first release in which it is implemented. (Not all of these will actually be included in the release notes, at the release manager's discretion; but writing them is a useful exercise.) The Central Regulatory Domain Agent cooperates with the wireless stack to enforce wireless channel and power regulatory domain restrictions according to the country locale and NIC capabilities. == Rationale == CRDA is proposed as a method for enforcing regulatory domain restrictions, thereby allowing wireless NIC vendors to produce open source drivers. The thought is that a well supported regulatory mechanism will forestall complaints or prosecution from the FCC. The regulatory mechanism is sufficiently difficult enough to defeat that it is at least on a par with host side binary object obfuscation. == Use Cases == Julie has just purchased an Atheros 9K series card in San Jose, CA where it works perfectly with US 2Ghz channel and power restrictions. As part of her job she must travel to Japan where public spectrum restrictions in the 2Ghz channel space are much tighter. Her wireless stack notices the 802.11d information element in the Access Point beacon and queries the CRDA database for the channel and power set pertaining to the Japanese locale. Her wireless stack then calculates the most restrictive union of CRDA channels and NIC capabilities. Thereafter, only the channels in this union are available for transmitting packets. == Assumptions == == Design == CRDA is a user space application (/sbin/crda) that is invoked by kernel user-space events to query regulatory domain settings. One component of the CRDA package is a signed regulatory database, e.g., /usr/lib/crda/regulatory.bin and /usr/lib/crda/key.pub.pem, that is used to satisfy domain queries. The database is signed in order to prevent tampering. == Implementation == The CRDA infrastructure requires a udev rule to correctly direct user-space events. For example: /etc/udev/rules.d/regulatory.rules: KERNEL=="regulatory*", ACTION=="change", SUBSYSTEM=="platform", RUN+="/sbin/crda" === UI Changes === No UI changes are anticipated. === Code Changes === CRDA requires a new package. == Test/Demo Plan == CRDA requires no user configuration. Manual setting of regulatory domain is through iw or wpa_supplicant. ##This need not be added or completed until the specification is nearing beta. == Unresolved issues == ##This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved. == BoF agenda and discussion == ##Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected. ---- CategorySpec