summaryrefslogtreecommitdiff
path: root/cesar/bsu
diff options
context:
space:
mode:
authorNélio Laranjeiro2011-10-20 17:36:59 +0200
committerNélio Laranjeiro2011-11-02 17:47:55 +0100
commitd27850a4f98c56a312a11bc7917135df5bcdefcb (patch)
treecac10fec1a1148ee1213a6c75d104ad0cc4d43a9 /cesar/bsu
parent3dae7611ec33642dbe2773fcb2f02191b07c9ea5 (diff)
cesar/bsu: get the AVLN instead of adding it on track request, closes #2805
In track function called by the CP, BSU was adding the AVLN instead of getting it from its own lists.
Diffstat (limited to 'cesar/bsu')
-rw-r--r--cesar/bsu/src/bsu.c7
-rw-r--r--cesar/bsu/test/utest/src/schedules.c3
2 files changed, 7 insertions, 3 deletions
diff --git a/cesar/bsu/src/bsu.c b/cesar/bsu/src/bsu.c
index ada63dae01..4e0ed55760 100644
--- a/cesar/bsu/src/bsu.c
+++ b/cesar/bsu/src/bsu.c
@@ -1235,14 +1235,15 @@ bsu_update (bsu_t *ctx, bsu_beacon_t *beacon, bsu_update_sta_type_t is_sta)
void
bsu_track_avln (bsu_t *ctx, u64 nid, u16 snid, u8 tei, mac_t mac)
{
- bool added;
bsu_avln_t *avln;
dbg_assert (ctx);
arch_dsr_lock ();
/* Station acts as STA now. */
ctx->is_sta = BSU_UPDATE_STA_TYPE_STA;
- avln = bsu_avln_add (ctx, nid, snid, mac, &added);
- dbg_check (avln);
+ avln = bsu_avln_get (ctx, nid, snid, mac);
+ dbg_assert_print (
+ avln, "No AVLN found with nid 0x%llx snid 0x%x TEI 0x%x mac 0x%llx",
+ nid, snid, tei, mac);
bsu_track_avln_identify (ctx, avln);
arch_dsr_unlock ();
}
diff --git a/cesar/bsu/test/utest/src/schedules.c b/cesar/bsu/test/utest/src/schedules.c
index 2bb8d28fa3..10bcf800ac 100644
--- a/cesar/bsu/test/utest/src/schedules.c
+++ b/cesar/bsu/test/utest/src/schedules.c
@@ -486,6 +486,9 @@ test_case_track_new (test_t t)
ctx.bsu->poweron.sync.ntb_offset_tck = 0;
ctx.bsu->poweron.sync.fe = 0.0;
/* Create the previous AVLN. */
+ bool added;
+ bsu_avln_add (ctx.bsu, 1, 1, mac_track, &added);
+ test_fail_unless (added);
bsu_track_avln (ctx.bsu, 1, 1, 1, mac_track);
/* Create a central beacon of the same NID, SNID but from a different
* CCo. */