/* Cesar project {{{ * * Copyright (C) 2007 Spidcom * * <<>> * * }}} */ /** * \file cp/msg/msg_cm.c * \brief * \ingroup cp_msg */ #include "common/std.h" #include "cp/beacon/inc/bentry.h" #include "cp/beacon/inc/beacons_ctx.h" #include "cp/beacon/forward.h" #include "cp/beacon/inc/beacons_work.h" #include "cp/msg/inc/msg_cm_convert.h" void msg_mme_header_convert(u8 *buffer, msg_mme_t *msg, bitstream_type_t b_type, bitstream_t ctx) {/* dbg_assert(buffer); dbg_assert(msg); u8 tmp; bitstream_access(&ctx, &msg->oda, 48); bitstream_access(&ctx, &msg->osa, 48); //bitstream_access(&ctx, &msg->v_lan_tag, 32); bitstream_access(&ctx, &msg->m_type, 16); bitstream_access(&ctx, &msg->mmv, 8); bitstream_access(&ctx, &msg->mm_type, 16); tmp = msg->fmi.nf_mi; bitstream_access(&ctx, &tmp, 4); if(b_type == BITSTREAM_READ) msg->fmi.nf_mi = tmp; tmp = msg->fmi.fn_mi; bitstream_access(&ctx, &tmp, 4); if(b_type == BITSTREAM_READ) msg->fmi.fn_mi = tmp; bitstream_access(&ctx, &msg->fmi.fmsn, 8); */ } void msg_cm_unassociated_sta_ind_convert(u8 *buffer, msg_mme_t *msg, bitstream_type_t read) {// 11.5.1 bitstream_t ctx; cm_unassociated_sta_t *entry_p; dbg_assert(buffer); dbg_assert(msg); bitstream_init(&ctx, buffer, 1518, read); msg_mme_header_convert(buffer, msg, read, ctx); entry_p = ( cm_unassociated_sta_t *) msg->mm_entry; bitstream_access(&ctx, &entry_p->nid, 2); // this is just to read the 2 non significant bits bitstream_access(&ctx, &entry_p->nid, 54); bitstream_access(&ctx, &entry_p->cco_capability, 1); bitstream_finalise(&ctx); // don't forget it to write the last word }