summaryrefslogtreecommitdiff
path: root/cesar/cp/beacon/src/beacon.c
diff options
context:
space:
mode:
Diffstat (limited to 'cesar/cp/beacon/src/beacon.c')
-rw-r--r--cesar/cp/beacon/src/beacon.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/cesar/cp/beacon/src/beacon.c b/cesar/cp/beacon/src/beacon.c
index e6d7461875..c3a07859ad 100644
--- a/cesar/cp/beacon/src/beacon.c
+++ b/cesar/cp/beacon/src/beacon.c
@@ -751,6 +751,21 @@ cp_beacon_get_and_process_beacon (cp_t *ctx)
/** Program the timer. */
cp_beacon_reconfigure_timer (ctx, false);
}
+ /* Discover beacons from our AVLN. */
+ else if (cp_sta_own_data_get_tei (ctx)
+ && type == CP_BEACON_DISCOVER_BEACON
+ && nid == cp_sta_own_data_get_nid (ctx)
+ && snid == cp_sta_own_data_get_snid (ctx))
+ {
+ bool updated = bitstream_direct_read (
+ &beacon_data.bmis.discover_info.info_data, 0, 1);
+ if (updated)
+ {
+ cp_fsm_event_t *event = cp_fsm_event_sta_new (
+ ctx, CP_FSM_EVENT_TYPE_discover_info_updated, net, sta);
+ cp_fsm_post (ctx, event);
+ }
+ }
else if (cp_sta_own_data_get_tei (ctx))
{
/* Is the SNID in conflict. */