summaryrefslogtreecommitdiff
path: root/cesar
diff options
context:
space:
mode:
Diffstat (limited to 'cesar')
-rw-r--r--cesar/bsu/beacon/beacon.h2
-rw-r--r--cesar/bsu/beacon/src/beacon.c5
-rw-r--r--cesar/cp/beacon/defs.h9
-rw-r--r--cesar/cp/beacon/src/beacon.c4
-rw-r--r--cesar/cp/beacon/test/src/beacon.c2
5 files changed, 9 insertions, 13 deletions
diff --git a/cesar/bsu/beacon/beacon.h b/cesar/bsu/beacon/beacon.h
index 7cafd88eec..dedafb3711 100644
--- a/cesar/bsu/beacon/beacon.h
+++ b/cesar/bsu/beacon/beacon.h
@@ -142,6 +142,8 @@ struct bsu_beacon_schedules_t
u8 snid[BSU_BEACON_SCHEDULES_MAX];
/** NEK switch. */
uint nek_switch[BSU_BEACON_SCHEDULES_MAX];
+ /** Network mode. */
+ bsu_beacon_nm_t nm;
/** Persistent schedule. */
bsu_beacon_bmi_persistent_schedule_t ps;
/** Non persistent schedule. */
diff --git a/cesar/bsu/beacon/src/beacon.c b/cesar/bsu/beacon/src/beacon.c
index 5ed22ab649..adadc99070 100644
--- a/cesar/bsu/beacon/src/beacon.c
+++ b/cesar/bsu/beacon/src/beacon.c
@@ -1034,8 +1034,11 @@ bsu_beacon_read_schedules (pb_beacon_t *beacon,
/* Skip the NID. */
bitstream_skip (&stream, 22);
schedules->hm[0] = bitstream_read (&stream, 2);
+ /* Skip the variant fields until network mode. */
+ bitstream_skip (&stream, 32);
+ schedules->nm = bitstream_read (&stream, 2);
/* Skip the end of variant fields. */
- bitstream_skip (&stream, 40);
+ bitstream_skip (&stream, 6);
/* Read number of beacon entry. */
nbe = bitstream_read (&stream, 8);
/* Reset schedule data. */
diff --git a/cesar/cp/beacon/defs.h b/cesar/cp/beacon/defs.h
index f463f48acb..f951ee6e04 100644
--- a/cesar/cp/beacon/defs.h
+++ b/cesar/cp/beacon/defs.h
@@ -47,15 +47,6 @@ enum cp_beacon_hoip_e
CP_BEACON_HOIP_MAX
};
-/** Network mode. */
-enum cp_beacon_nm_e
-{
- CP_BEACON_NM_UNCOORDINATED,
- CP_BEACON_NM_COORDINATED,
- CP_BEACON_NM_CSMA_ONLY,
- CP_BEACON_NM_NB
-};
-
/** CCo Cap. */
enum cp_beacon_cco_cap_e
{
diff --git a/cesar/cp/beacon/src/beacon.c b/cesar/cp/beacon/src/beacon.c
index 8a9172ad31..ffa7d11c9f 100644
--- a/cesar/cp/beacon/src/beacon.c
+++ b/cesar/cp/beacon/src/beacon.c
@@ -138,7 +138,7 @@ cp_beacon_fill_share_memory (cp_t *ctx)
beacon->vf.aclsss = 0;
beacon->vf.hoip = ctx->beacon.hoip.hoip_flag;
beacon->vf.rtsbf = false;
- beacon->vf.nm = CP_BEACON_NM_CSMA_ONLY;
+ beacon->vf.nm = BSU_BEACON_NM_CSMA_ONLY;
beacon->vf.ccocap = CP_CCO_LEVEL;
/* regions. */
@@ -263,7 +263,7 @@ cp_beacon_fill_share_memory (cp_t *ctx)
else
beacon->bmis.change_snid.present = false;
- beacon->bmis.bpsto.present = (beacon->vf.nm == CP_BEACON_NM_CSMA_ONLY);
+ beacon->bmis.bpsto.present = (beacon->vf.nm == BSU_BEACON_NM_CSMA_ONLY);
beacon->bmis.relocation.present = false;
beacon->bmis.aclsc.present = false;
beacon->bmis.cns.present = false;
diff --git a/cesar/cp/beacon/test/src/beacon.c b/cesar/cp/beacon/test/src/beacon.c
index 315769fe63..3f88b7f76e 100644
--- a/cesar/cp/beacon/test/src/beacon.c
+++ b/cesar/cp/beacon/test/src/beacon.c
@@ -139,7 +139,7 @@ test_beacon_variant_field (test_t test, bsu_beacon_t *beacon, cp_nid_t nid,
test_fail_unless (beacon->vf.numslots == 1);
test_fail_unless (beacon->vf.aclsss == 0);
test_fail_unless (beacon->vf.rtsbf == false);
- test_fail_unless (beacon->vf.nm == CP_BEACON_NM_CSMA_ONLY);
+ test_fail_unless (beacon->vf.nm == BSU_BEACON_NM_CSMA_ONLY);
test_fail_unless (beacon->vf.ccocap == CP_CCO_LEVEL);
}
test_end;