Demand Assigned Multiple Access (DAMA) is one of the multiple access schemes implemented in OpenSAND. The implemented DAMA mechanisms are heavily inspired on the ones described by the DVB-RCS and DVB-RCS2 standards, albeit with several simplifications.
With DAMA, terminals request resources to the gateways depending on their need, which allocates dedicated slots in return. Thus, there is no contention when accessing the shared medium with this mechanism.
There are four types of allocations in OpenSAND:
CRA and FCA allocations do not require the terminal to make requests. RBDC and VBDC, however, require the terminal to make explicit requests. These requests are carried in OpenSAND using SAC messages.
DAMA is the default multiple access mechanism used by the terminals on the return link, for all types of traffic.
DAMA is used for a type of traffic on the return link if its associated FIFO (on the terminal
dvb_rcs_tal section in the
Advanced Configuration window) is configured with one of the following types:
DAMA_RBDC: RBDC is enabled for this type of traffic.
DAMA_VBDC: VBDC is enabled for this type of traffic.
DAMA_CRA: no RBDC nor VBDC is enabled for this type of traffic.
Also, for the terminal to be able to transmit data using DAMA, there must be at least one carrier on the return link dedicated for this access type (consult the carrier page for more information).
The available capacity for each type of allocation can be configured in the
dvb_rcs_tal section of the terminal configuration on the
Advanced Configuration window (some parameters are located in the
dvb_ncc section of the gateway configuration):
constant_rate_allocation: specifies the constant allocated capacity (in kbits/s).
max_rbdc: specifies the maximum RBDC allocation for this terminal (in kbits/s).
max_vbdc: specifies the maximum VBDC allocation for this terminal (in kbits/s).
fca(on the gateway): specifies the maximum FCA allocation for each terminal (in kbits/s)
Other configurable parameters include:
dama_agent_algorithm: algorithm to use to generate the capacity requests.
dama_algorithm(on the gateway): algorithm to use to allocate the capacities.
msl_duration: number of frames between the capacity request emission and the reception of the corresponding TBTP.
More information about these configurations is available on each allocation type page.
The DAMA probes available on the gateway are:
STX_allocation.CRA_allocation: the CRA allocation for the STX, in kbits/s.
STX_allocation.RBDC_allocation: the RBDC allocation for the STX, in kbits/s.
STX_allocation.RBDC_max: the maximum RBDC for the STX, in kbits/s.
STX_allocation.VBDC_allocation: the VBDC allocation for the STX, in kbits.
Spot_X.NCC.CRA_allocated: the total CRA allocation for the Spot X, in kbits/s.
Spot_X.NCC.RBDC.RBDC_allocated: the total RBDC allocated for the Spot X, in kbits/s.
Spot_X.NCC.RBDC.RBDC_max: the total RBDC allocation for the Spot X, in kbits/s.
Spot_X.NCC.RBDC.RBDC_requested_capacity: the total RBDC capacity requested on the Spot X, in kbits/s.
Spot_X.NCC.RBDC.RBDC_request_number: the number of requests for RBDC for the Spot X.
Spot_X.NCC.VBDC.VBDC_allocated: the total VBDC allocated for the Spot X, in kbits.
Spot_X.NCC.VBDC.VBDC_requested_capacity: the total VBDC capacity requested on the Spot X, in kbits.
Spot_X.NCC.VBDC.VBDC_request_number: the number of requests for VBDC for the Spot X.
The DAMA probes available on each terminal are:
Request.RBDC: the RBDC requested, in kbits/s.
Request.VBDC: the VBDC requested, in kbits.
Allocation.Remaining: the allocation remaining, counting all types of allocation, in kbits/s.
Allocation.Total: the total allocation, counting all types of allocation, in kbits/s.
DAMA is implemented in the Block DVB of the OpenSAND core, and plays a role on both the terminals and the gateways.
On the terminals, the necessary functions (e.g. making the capacity requests) are implemented by a
DamaAgent, while on the gateway the functions (e.g. processing the capacity requests from the terminals, and allocating the slots on the return link) are implemented by a
DamaCtrl. Since both DVB-RCS and DVB-RCS2 can be used on the return link, different versions of these entities exist, with particularities for each protocol.
When computing allocations on the DamaCtrl, the order of computing is the following: