#ifndef bsu_beacon_inc_misc_h #define bsu_beacon_inc_misc_h /* Cesar project {{{ * * Copyright (C) 2010 Spidcom * * <<>> * * }}} */ /** * \file bsu_beacon/inc/misc.h * \brief Standard bsu_beacon entries. * \ingroup bsu_beacon * * \warn All structures are aligned on 32 bits. */ /** Discover bentry. */ struct bsu_beacon_bmi_discover_t { BITFIELDS_WORD ( /** Present. */ u32 present:8;, /** TEI. */ u32 tei:8;, /** Reserved. */ u32 rsvd:16; ); }; typedef struct bsu_beacon_bmi_discover_t bsu_beacon_bmi_discover_t; /** Discover infor bentry. */ struct bsu_beacon_bmi_discover_info_t { BITFIELDS_WORD ( /** Present. */ u32 present:8;, /** Reserved. */ u32 rsvd:24; ); /** Discover info data in a word. */ u32 info_data; }; typedef struct bsu_beacon_bmi_discover_info_t bsu_beacon_bmi_discover_info_t; /** Beacon period start time offset. */ struct bsu_beacon_bmi_bpsto_t { BITFIELDS_WORD ( /** Present. */ u32 present:8;, /** Beacon period start time offset. */ u32 bpsto:24; ); }; typedef struct bsu_beacon_bmi_bpsto_t bsu_beacon_bmi_bpsto_t; /** Encryption key change. */ struct bsu_beacon_bmi_eks_t { BITFIELDS_WORD ( /** Present. */ u32 present:8;, /** Key change countdown. */ u32 kccd:8;, /** Key being changed. */ u32 kbc:8;, /** New EKS. */ u32 new_eks:8; ); }; typedef struct bsu_beacon_bmi_eks_t bsu_beacon_bmi_eks_t; /** CCo Handover. */ struct bsu_beacon_bmi_handover_t { BITFIELDS_WORD ( /** Present. */ u32 present:8;, /** Handover countdown. */ u32 hcd:8;, /** New CCo TEI. */ u32 tei:8;, /** Reserved. */ u32 reserved:8; ); }; typedef struct bsu_beacon_bmi_handover_t bsu_beacon_bmi_handover_t; /** Relocation bentry. */ struct bsu_beacon_bmi_relocation_t { BITFIELDS_WORD ( /** Present. */ u32 present:4;, /** Countdown. */ u32 rcd:6;, /** Relocation type. */ u32 rlt:1;, /** Leaving group flag. */ u32 lgf:1;, /** Relocation offset. */ u32 rlo:17;, /** Relocation slot id. */ u32 rlslotid:3; ); }; typedef struct bsu_beacon_bmi_relocation_t bsu_beacon_bmi_relocation_t; /** AC Line synchronization countdown. */ struct bsu_beacon_bmi_aclsc_t { BITFIELDS_WORD ( /** Present. */ u32 present:8;, /** Countdown. */ u32 countdown:6;, /** Reserved. */ u32 rsvd0:2;, /** Reason code. */ u32 reason_code:2;, /** Reserved. */ u32 rsvd1:14; ); }; typedef struct bsu_beacon_bmi_aclsc_t bsu_beacon_bmi_aclsc_t; /** Change number of slots. */ struct bsu_beacon_bmi_change_num_slot_t { BITFIELDS_WORD ( /** Present. */ u32 present:8;, /** NumSlots Change Countdown. */ u32 nsccd:6;, /** Reserved. */ u32 rsvd0:2;, /** New NumSlot value. */ u32 newnumslot:3;, /** Reserved. */ u32 rsvd1:13; ); }; typedef struct bsu_beacon_bmi_change_num_slot_t bsu_beacon_bmi_change_num_slot_t; /** Change hybrid mode. */ struct bsu_beacon_bmi_change_hybrid_mode_t { BITFIELDS_WORD ( /** Present. */ u32 present:8;, /** Hybrid mode change countdown. */ u32 hmccd:6;, /** New Hybrid mode. */ u32 newhm:2;, /** Reserved. */ u32 rsvd:16; ); }; typedef struct bsu_beacon_bmi_change_hybrid_mode_t bsu_beacon_bmi_change_hybrid_mode_t; /** Change SNID. */ struct bsu_beacon_bmi_change_snid_t { BITFIELDS_WORD ( /** Present. */ u32 present:8;, /** Snid change countdown. */ u32 snidccd:4;, /** New SNID. */ u32 new_snid:4;, /** reserved. */ u32 rsvd:16; ); }; typedef struct bsu_beacon_bmi_change_snid_t bsu_beacon_bmi_change_snid_t; /** Mac Address. */ struct bsu_beacon_bmi_mac_address_t { /** Present. */ u32 present; /** Peer mac address. */ mac_t mac_address; }; typedef struct bsu_beacon_bmi_mac_address_t bsu_beacon_bmi_mac_address_t; #endif /* bsu_beacon_inc_misc_h */