summaryrefslogtreecommitdiff
path: root/cesar
diff options
context:
space:
mode:
authorNicolas Schodet2010-11-17 11:32:17 +0100
committerNicolas Schodet2010-11-18 15:56:42 +0100
commit559c2eb382fe640fdf1e58ae85fae8380b5f77da (patch)
treef32a632872909e5794a86b783934dd43c20c6b31 /cesar
parenta6eb2bf9210b5280e9077bcce4517f19b11aa272 (diff)
cesar/mac/pbproc: no more than one segment in a beacon MFS, closes #2070
Diffstat (limited to 'cesar')
-rw-r--r--cesar/mac/pbproc/src/prep_mpdu.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/cesar/mac/pbproc/src/prep_mpdu.c b/cesar/mac/pbproc/src/prep_mpdu.c
index 3879891500..33252b98c3 100644
--- a/cesar/mac/pbproc/src/prep_mpdu.c
+++ b/cesar/mac/pbproc/src/prep_mpdu.c
@@ -942,8 +942,10 @@ pbproc_prep_mpdu_commit (pbproc_t *ctx,
/* Change MFS. */
if (return_head)
{
- /* If the MFS has been removed, do not give PB back. */
- if (mfs->ca_state == CA_MFS_STATE_REMOVED)
+ /* If the MFS has been removed, do not give PB back. Do not put more
+ * than one PB in a beacon MFS. */
+ if (mfs->ca_state == CA_MFS_STATE_REMOVED
+ || (mfs->beacon && mfs->seg_nb))
{
slist_push_back_range (ctx->commit.release_,
return_head, return_tail);