summaryrefslogtreecommitdiff
path: root/cesar/bsu/beacon/defs.h
diff options
context:
space:
mode:
authorlaranjeiro2010-04-06 09:57:20 +0000
committerlaranjeiro2010-04-06 09:57:20 +0000
commitea35ceec611c968bc3ed8104885143eab966a3a6 (patch)
tree38147fcbd06645be23a22407ce87f7086f6255fe /cesar/bsu/beacon/defs.h
parentf2c3183ced776bd5e3979410846a69f0f804bcb4 (diff)
cesar/beacon: add beacon library, closes #1424
git-svn-id: svn+ssh://pessac/svn/cesar/trunk@6874 017c9cb6-072f-447c-8318-d5b54f68fe89
Diffstat (limited to 'cesar/bsu/beacon/defs.h')
-rw-r--r--cesar/bsu/beacon/defs.h159
1 files changed, 159 insertions, 0 deletions
diff --git a/cesar/bsu/beacon/defs.h b/cesar/bsu/beacon/defs.h
new file mode 100644
index 0000000000..93a1c22e74
--- /dev/null
+++ b/cesar/bsu/beacon/defs.h
@@ -0,0 +1,159 @@
+#ifndef bsu_beacon_inc_bmi_defs_h
+#define bsu_beacon_inc_bmi_defs_h
+/* Cesar project {{{
+ *
+ * Copyright (C) 2010 Spidcom
+ *
+ * <<<Licence>>>
+ *
+ * }}} */
+/**
+ * \file bsu_beacon/inc/bmi_defs.h
+ * \brief Beacon entries definition.
+ * \ingroup bsu_beacon
+ */
+
+/** Non coordinated mode. */
+enum bsu_beacon_non_coordinated_mode_t
+{
+ BSU_BEACON_NON_COORDINATED_NETWORK,
+ BSU_BEACON_NON_COORDINATED_NETWORK_REPORTED,
+ BSU_BEACON_NON_COORDINATED_MAX
+};
+typedef enum bsu_beacon_non_coordinated_mode_t
+bsu_beacon_non_coordinated_mode_t;
+
+/** Power Saving mode. */
+enum bsu_beacon_npsm_t
+{
+ BSU_BEACON_NPSM_NOT_ACTIVE,
+ BSU_BEACON_NPSM_ACTIVE,
+ BSU_BEACON_NPSM_MAX
+};
+typedef enum bsu_beacon_npsm_t bsu_beacon_npsm_t;
+
+/** Handover in progress. */
+enum bsu_beacon_hoip_t
+{
+ BSU_BEACON_HOIP_FALSE,
+ BSU_BEACON_HOIP_TRUE,
+ BSU_BEACON_HOIP_MAX
+};
+typedef enum bsu_beacon_hoip_t bsu_beacon_hoip_t;
+
+/** Network mode. */
+enum bsu_beacon_nm_t
+{
+ BSU_BEACON_NM_UNCOORDINATED,
+ BSU_BEACON_NM_COORDINATED,
+ BSU_BEACON_NM_CSMA_ONLY,
+ BSU_BEACON_NM_NB
+};
+typedef enum bsu_beacon_nm_t bsu_beacon_nm_t;
+
+/** CCo Cap. */
+enum bsu_beacon_cco_cap_t
+{
+ BSU_BEACON_CCO_LEVEL0,
+ BSU_BEACON_CCO_LEVEL1,
+ BSU_BEACON_CCO_LEVEL2,
+ BSU_BEACON_CCO_LEVEL3
+};
+typedef enum bsu_beacon_cco_cap_t bsu_beacon_cco_cap_t;
+
+enum bsu_beacon_eks_kbc_t
+{
+ BSU_BEACON_EKS_KBC_NEK,
+ BSU_BEACON_EKS_KBC_NMK,
+ BSU_BEACON_EKS_KBC_NB
+};
+typedef enum bsu_beacon_eks_kbc_t bsu_beacon_eks_kbc_t;
+
+enum bsu_beacon_entry_header_t
+{
+ BSU_BEACON_ENTRY_HEADER_NON_PERSISTENT_SCHEDULE,
+ BSU_BEACON_ENTRY_HEADER_PERSISTENT_SCHEDULE,
+ BSU_BEACON_ENTRY_HEADER_REGIONS,
+ BSU_BEACON_ENTRY_HEADER_MAC_ADDRESS,
+ BSU_BEACON_ENTRY_HEADER_DISCOVER,
+ BSU_BEACON_ENTRY_HEADER_DISCOVERED_INFO,
+ BSU_BEACON_ENTRY_HEADER_BEACON_PERIOD_START_TIME_OFFSET,
+ BSU_BEACON_ENTRY_HEADER_ENCRYPTION_KEY_CHANGE,
+ BSU_BEACON_ENTRY_HEADER_CCO_HANDOVER,
+ BSU_BEACON_ENTRY_HEADER_BEACON_RELOCATION,
+ BSU_BEACON_ENTRY_HEADER_AC_LINE_SYNC_COUNTDOWN,
+ BSU_BEACON_ENTRY_HEADER_CHANGE_NUMSLOTS,
+ BSU_BEACON_ENTRY_HEADER_CHANGE_HM,
+ BSU_BEACON_ENTRY_HEADER_CHANGE_SNID,
+ BSU_BEACON_ENTRY_HEADER_RSVD_MIN = 0x0E,
+ BSU_BEACON_ENTRY_HEADER_RSVD_MAX = 0xFE,
+ BSU_BEACON_ENTRY_HEADER_VENDOR=0xFF
+};
+typedef enum bsu_beacon_entry_header_t bsu_beacon_entry_header_t;
+
+#define BSU_BEACON_ENTRY_IS_BENTRY(val) \
+ (((val) < BSU_BEACON_ENTRY_HEADER_RSVD_MIN) \
+ || ((val) == BSU_BEACON_ENTRY_HEADER_VENDOR))
+
+/** Bentry header size. */
+#define BSU_BEACON_ENTRY_SIZE_HEADER 2
+
+/** Mac Address bentry size. */
+#define BSU_BEACON_ENTRY_SIZE_MAC_ADDRESS 6
+
+/** Discover Bentry. */
+#define BSU_BEACON_ENTRY_SIZE_DISCOVER 1
+
+/** Discover Info Bentry. */
+#define BSU_BEACON_ENTRY_SIZE_DISCOVER_INFO 4
+
+/** Beacon Period Start Time Offset. */
+#define BSU_BEACON_ENTRY_SIZE_BPSTO 3
+
+/** Encryption key change. */
+#define BSU_BEACON_ENTRY_SIZE_EKC 2
+
+/** Handover. */
+#define BSU_BEACON_ENTRY_SIZE_HOIP 2
+
+/** Beacon Relocation. */
+#define BSU_BEACON_ENTRY_SIZE_RLO 4
+
+/** AC Line synchronisation. */
+#define BSU_BEACON_ENTRY_SIZE_ACL 2
+
+/** Change Num Slots. */
+#define BSU_BEACON_ENTRY_SIZE_CHANGE_NUMSLOTS 2
+
+/** Change hybrid mode. */
+#define BSU_BEACON_ENTRY_SIZE_CHANGE_HM 1
+
+/** Change SNID. */
+#define BSU_BEACON_ENTRY_SIZE_CHANGE_SNID 1
+
+/* Variable ones. */
+
+/** Define the size in bytes of a SAI with start time. */
+#define BSU_BEACON_ENTRY_SIZE_SCHED_SAI_STPF 4
+
+/** Define the size in bytes of a SAI without start time. */
+#define BSU_BEACON_ENTRY_SIZE_SCHED_SAI_NSTPF 3
+
+/** Define the macro to compute a non persistent schedule bentry. */
+#define BSU_BEACON_ENTRY_SIZE_NON_PERSISTENT_SCHED(sai, nsai) \
+ (1 + (sai * BSU_BEACON_ENTRY_SIZE_SCHED_SAI_STPF) \
+ + (nsai * BSU_BEACON_ENTRY_SIZE_SCHED_SAI_NSTPF))
+
+/** Define the macro to compute a persistent schedule bentry. */
+#define BSU_BEACON_ENTRY_SIZE_PERSISTENT_SCHED(sai, nsai) \
+ (2 + (sai * BSU_BEACON_ENTRY_SIZE_SCHED_SAI_STPF) \
+ + (nsai * BSU_BEACON_ENTRY_SIZE_SCHED_SAI_NSTPF))
+
+/** Define the size in bytes of a region definition. */
+#define BSU_BEACON_ENTRY_SIZE_REGION_DESC 2
+
+/** Define the Macro to compute a region bentry. */
+#define BSU_BEACON_ENTRY_SIZE_REGION(nr) \
+ (1 + BSU_BEACON_ENTRY_SIZE_REGION_DESC * nr)
+
+#endif /* bsu_beacon_inc_bmi_defs_h */