This guide explains how to implement the Grant procedure as defined in WINNF-TS-0016.
A Grant is the formal authorization from the SAS for a CBSD to transmit on a specific frequency range with defined power limits. Grants are required before any transmission begins.
The process uses:
GrantRequest (sent after registration and optional spectrum inquiry)GrantResponse (approves, denies, or suspends the request)Grants have states: GRANTED (active after heartbeat), AUTHORIZED (transmitting), SUSPENDED (temporarily halted).
cbsdIdTip: The request must include a frequency range in operationFrequencyRange. You can request the entire CBRS band (lowFrequency: 3550000000, highFrequency: 3700000000) to let the SAS select the best available channel(s).
Required Parameters
| Parameter | Data Type | Description |
|---|---|---|
| cbsdId | string | Assigned during registration |
| operationParam | object | Proposed operation details |
operationParam Sub-parameters
| Parameter | Data Type | Description |
|---|---|---|
| maxEirp | number | Requested maximum EIRP in dBm/MHz (Category A ≤20, Category B ≤37) |
| operationFrequencyRange | object | lowFrequency and highFrequency in Hz (must be within 3550-3700 MHz) |
Optional but Recommended
| Parameter | Description |
|---|---|
| measReport | Include if measCapability configured |
Example JSON (requesting full band)
{
"grantRequest": [
{
"cbsdId": "SAS123/CBSD-001",
"operationParam": {
"maxEirp": 37.0,
"operationFrequencyRange": {
"lowFrequency": 3550000000,
"highFrequency": 3700000000
}
},
"measReport": {
"rcvdPowerMeasReports": [
{
"measFrequency": 3550000000,
"measBandwidth": 50000000,
"measRcvdPower": -60.5
}
]
}
}
]
}
Tip: Request multiple narrower ranges in separate grantRequest objects if you want specific channels; SAS may grant partial ranges.
Key Parameters
| Parameter | Description |
|---|---|
| grantId | Unique ID if approved (required for heartbeat) |
| channelType | "PAL" or "GAA" |
| operationParam | Granted frequency range and maxEirp (may be narrower/lower than requested) |
| grantExpireTime | UTC timestamp when grant expires if not renewed |
| response | responseCode and responseMessage |
Common responseCode Values
| Code | Meaning | Action Required |
|---|---|---|
| 0 | SUCCESS | Proceed to heartbeat to authorize transmission |
| 400 | GRANT_FAILURE | Adjust request (lower EIRP, narrower range) and retry |
| 401 | INTERFERENCE | Location/channel contested; try different range |
| 501 | TERMINATED_GRANT | Previous grant conflict; relinquish old first |
Example Successful Response
{
"grantResponse": [
{
"cbsdId": "SAS123/CBSD-001",
"grantId": "GRANT-789",
"channelType": "GAA",
"operationParam": {
"operationFrequencyRange": {
"lowFrequency": 3620000000,
"highFrequency": 3630000000
},
"maxEirp": 30.0
},
"grantExpireTime": "2026-01-08T12:00:00Z",
"response": {
"responseCode": 0,
"responseMessage": "Success"
}
}
]
}
After SUCCESS, immediately start sending HeartbeatRequest using grantId to move grant to AUTHORIZED state.
| Issue | Likely Cause | Solution |
|---|---|---|
| GRANT_FAILURE (400) | Excessive EIRP or contested area | Reduce maxEirp; narrow frequency range |
| No grant despite inquiry success | Dynamic DPA activation | Wait and retry; use broader measurement reports |
| Partial frequency range granted | Neighbor interference or protection | Accept and use; request additional grants |
Pages