summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNélio Laranjeiro2012-11-05 11:24:41 +0100
committerNélio Laranjeiro2012-12-12 14:42:50 +0100
commitc7e5b6873782de5e57b02e281f50ff88c7086f6b (patch)
tree6a390b2849ec332e36de300ef2a9ee7535927ce5
parentd690cdd74d6e3c907b790c6659cede5934bffd05 (diff)
cesar/cp/av/cco/bw: add start_time_atu on allocation for Gigle, closes #2437
-rw-r--r--cesar/bsu/src/bsu.c8
-rw-r--r--cesar/cp/av/beacon/test/utest/src/beacon.c3
-rw-r--r--cesar/cp/av/cco/bw/src/bw.c3
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);