From c7e5b6873782de5e57b02e281f50ff88c7086f6b Mon Sep 17 00:00:00 2001 From: NĂ©lio Laranjeiro Date: Mon, 5 Nov 2012 11:24:41 +0100 Subject: cesar/cp/av/cco/bw: add start_time_atu on allocation for Gigle, closes #2437 --- cesar/bsu/src/bsu.c | 8 +++++--- cesar/cp/av/beacon/test/utest/src/beacon.c | 3 ++- cesar/cp/av/cco/bw/src/bw.c | 3 ++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/cesar/bsu/src/bsu.c b/cesar/bsu/src/bsu.c index 2b98eadd85..578ae14047 100644 --- a/cesar/bsu/src/bsu.c +++ b/cesar/bsu/src/bsu.c @@ -402,6 +402,7 @@ PRIVATE inline void bsu_schedules_merge__allocation_add (bsu_t *ctx, ca_schedule_t *schedules, uint pos, u32 end_time_atu, u8 glid) { + dbg_claim (end_time_atu); schedules->allocations[pos].end_offset_tck = MAC_ATU_TO_TCK (end_time_atu); schedules->allocations[pos].glid = glid; @@ -440,10 +441,11 @@ bsu_schedules_merge (bsu_t *ctx, bsu_beacon_t *beacon, ctx, schedule, alloc, sai->start_time_atu, glid); alloc++; } - /* Add a hole between the previous allocation end this one. */ - else if (sai->stpf + /* Add a hole between the previous allocation and this one. */ + else if (alloc + && sai->stpf && MAC_ATU_TO_TCK(sai->start_time_atu) - != schedule->allocations[alloc-1].end_offset_tck) + != schedule->allocations[alloc-1].end_offset_tck) { bsu_schedules_merge__allocation_add ( ctx, schedule, alloc, sai->start_time_atu, MAC_LID_SPC_HOLE); diff --git a/cesar/cp/av/beacon/test/utest/src/beacon.c b/cesar/cp/av/beacon/test/utest/src/beacon.c index 602d2f1a10..9b1e5d8de5 100644 --- a/cesar/cp/av/beacon/test/utest/src/beacon.c +++ b/cesar/cp/av/beacon/test/utest/src/beacon.c @@ -256,10 +256,11 @@ test_suite_beacon__beacon_generation (test_t test) test_fail_unless (beacon.bmis.ps.nb == 1); test_fail_unless ( BSU_BEACON_PERSISTENT_ALLOC_IS_PERMANENT(beacon.bmis.ps.ps[0])); - test_fail_unless (!beacon.bmis.ps.ps[0].sais[0].stpf); + test_fail_unless (beacon.bmis.ps.ps[0].sais[0].stpf); test_fail_unless (beacon.bmis.ps.ps[0].sais[0].glid == (MAC_LID_SHARED_CSMA & 0x7f)); test_fail_unless (beacon.bmis.ps.ps[0].sais[0].end_time_atu >= 3907); + test_fail_unless (beacon.bmis.ps.ps[0].sais[0].start_time_atu == 0); /* Non persistent schedules. */ test_fail_unless (beacon.bmis.nps.ns == 0); test_fail_unless (beacon.bmis.discover.present); diff --git a/cesar/cp/av/cco/bw/src/bw.c b/cesar/cp/av/cco/bw/src/bw.c index 0c8bf4b508..8da482fe6d 100644 --- a/cesar/cp/av/cco/bw/src/bw.c +++ b/cesar/cp/av/cco/bw/src/bw.c @@ -29,7 +29,8 @@ cp_av_cco_bw_schedules_default (cp_t *ctx) /* Create an allocation for the station. */ alloc = cp_cco_bw_alloc_init (ctx); - alloc->stpf = false; + alloc->stpf = true; + alloc->start_time_atu = 0; alloc->end_time_atu = MAC_TCK_TO_ATU(BSU_ACLF_50HZ_CLK_MAX_TCK + CP_AV_CCO_BW_ALLOC_MIN_SIZE_TCK); -- cgit v1.2.3