MachineQ Developer Documentation logo DOCS

Multicast Session Overlap Avoidance

When starting a new campaign, it is important to avoid multiple campaigns overlapping their multicast session times on the same gateway. As of FUOTA v3.1.5, the server prevents overlapping multicast sessions on the same gateway. This guide explains why overlap is a problem and how the server resolves it depending on how the campaign was configured.

Before You Begin

You need:

Why Overlap Is a Problem

If two campaigns overlap their multicast sessions on the same gateway, the result is usually:

  • The gateway gets overwhelmed by the traffic.
  • Because it is overwhelmed, the gateway may drop some downlinks.
  • Because of the lost downlinks, one or both campaigns could fail.

How It Works

When a campaign starts, its multicast session start/stop times are saved and treated as a reserved time on each of its gateways that no other campaign can use.

For each gateway

Remove this campaign's multicast session time from this gateway

For each gateway

Add this campaign's multicast session time to this gateway

Campaign successfully started

Campaign stopped or finished

When another campaign is created, it first checks that its multicast session time does not overlap any existing reserved times on the gateways it wants to use.

No

Yes

For each gateway

Yes

No

Get preexisting campaign multicast times for the gateway

Does this campaign's time overlap existing times?

Add to list of gateways with overlapping times

Continue

Setting up campaign

Any overlapping times on any gateway?

Attempt to avoid the overlap

All OK, continue setting up campaign

What happens next depends on whether the new campaign's start time and gateways were set manually or automatically.

Case 1: Gateways and Start Time Manually Set

If you manually set the multicast_setup_time and the gateways field is set in the device group, the server cannot prevent the overlap. Starting the campaign fails, and the campaign permanently enters the ERROR_SETTING_UP stage.

Case 2: Gateways Manually Set, Start Time Set Automatically

If the gateways field is set manually but you leave multicast_setup_time to be set automatically, the start time can be automatically adjusted to avoid overlaps by finding a free time slot for the given gateways within the next 24 hours.

Note: The gateways field comes from the device group. Specifying a value for gateways directly in the create campaign request is not allowed.

For example, with a single gateway, a new campaign that would initially overlap is pushed back to the first non-overlapping slot the server can find. With multiple gateways, the same time shift applies but must avoid preexisting campaigns on all the gateways.

2025-01-012025-01-012025-01-012025-01-012025-01-012025-01-012025-01-012025-01-012025-01-012025-01-012025-01-012025-01-012025-01-01Campaign 1 Campaign 2 New Campaign Campaign 3 Gateway 1

Warning: There is a limit to how far the server can push a campaign's multicast_setup_time. If it cannot find a non-overlapping start time less than 24 hours from the original start time, the campaign fails to start and goes into the ERROR_SETTING_UP stage.

Case 3: Start Time Manually Set, Gateways Set Automatically

If multicast_setup_time is set manually and the gateways field is left empty for automatic gateway selection, the server cannot shift the time but can remove gateways with overlapping campaigns. Gateways with overlapping campaigns are filtered out of the new campaign's gateway list, allowing it to start at the set time.

Warning: If removing all overlapping gateways would mean removing all the automatically selected gateways, the campaign cannot start and goes into the ERROR_SETTING_UP stage.

Case 4: Both Start Time and Gateways Set Automatically

If both the start time and the gateways are left automatic, the server combines time shifting and gateway filtering. It prefers to adjust the start time over filtering out gateways. When removing a gateway is unavoidable, it removes the gateway with the least free time (the one with the most time taken by preexisting campaigns).

No

Yes

Yes

No

No

Yes

Campaign created with automatic gateways and start time

Attempt to shift the start time to avoid any overlaps across all gateways

Change the campaign's start time to fit the gap

Filter out the gateway with the least free time over the next 24 hours

The campaign fails and goes into the ERROR_SETTING_UP stage

The campaign is able to start

Any overlap with the campaigns in the gateways?

Any block of free time in the next 24 hours the campaign will fit into?

At least one gateway remaining?

What's Next?