summaryrefslogtreecommitdiff
path: root/cesar/mac
AgeCommit message (Collapse)Author
2013-06-14cesar/mac/common: backport mac_store_sta_get_noref from EoC, refs #4018Cyril Jourdan
2013-06-14cesar/mac/common: increase MAC tolerance, closes #4043Nicolas Schodet
This is needed for extra long cables (up to 1200m).
2013-06-12cesar/mac/pbproc: update backoff, closes #4037Milenko Jelisavcic
2013-06-12cesar/mac/pbproc: refactor access partMilenko Jelisavcic
2013-06-06cesar/{hal/phy,mac/pbproc}: on SPOC reset, set initial rho_q30 value, closes ↵Yacine Belkadi
#4004 When SPOC_RHO_INITIAL_Q30 is set in the internal.conf file, that value should be the one set on a SPOC reset, not 0. Make pbproc_spoc_reset() use the initial spoc rho q30 value. This also moves the knowledge about the initial SPOC parameters to the phy layer, which seems more appropriate.
2013-06-06cesar/{cp/{av,}/beacon,mac/pbproc}: add pbproc_spoc_reset(), refs #4004Yacine Belkadi
Add a pbproc_spoc_reset() that the cp can use to reset SPOC parameters, without having to know what the reset parameters are. This allows to move the knowledge of reset values to the pbproc, and will help for next commits. Refactoring only. No (intended) functional changes.
2013-06-06cesar/{cp/{av,}/beacon,mac/pbproc}: add/use pbproc_spoc_update(), refs #4004Yacine Belkadi
Add a pbproc_spoc_update() that the cp can use to update SPOC parameters without having to know about implementation details like allocating coefficients, computing them, then setting them. These changes will help for next commits. No (intended) functional changes.
2013-06-04cesar/cp[av]: set CP_TIMER_OFFSET_STA to allow beacon reception, closes #3990Nélio Laranjeiro
When there is not traffic on the medium, our CCo sends the central beacon 10ms after the beginning of the beacon period according with CA_ACCESS_MERGE_MARGIN_TCK margin.
2013-05-23cesar/{bsu,cp,mac/pbproc}: change NEK managementYacine Belkadi
Two slots were used to store the NEKs. One for the current NEK, the other for the next NEK. The CP could update any slot at any time, by setting the EKS to MAC_EKS_CLEAR first. One problem is that the pbproc doesn't expect someone to change a key that it is in use. If the cp sets the EKS to MAC_EKS_CLEAR for a key that is in use, may make the pbproc send data unencrypted, which is a problem. Another problem may occur during a NEK change, if the new NEK is not received via the SET_KEY_CNF. In that case, when the countdown starts, the cp sends a GET_KEY_CNF to get the new NEK. When it receives it, it puts the new key in the next slot. To identify the next slot the cp uses bsu_nek_index_next(). This is not reliable around a NEK change: - the cp receives the new NEK - the cp starts setting the new NEK - the cp is suspended - the bsu changes nek_switch - the cp is resumed and calls bsu_nek_index_next() which returns the index of the current NEK instead of the next NEK - the cp writes the new NEK in the current slot instead of the next slot - the pbproc may send packets unencrypted - the NEK change occurs - the new NEK is used in Rx (because the new NEK is in one of the two slots) but not in Tx (because it's not the in the current slot) To fix that, change the way the NEKs are managed: Use pointers and indirection to be able to atomically change a NEK transparently from the pbproc's point of view. Make the cp store the NEKs and set the current NEK, but let the bsu grab the next NEK if it's available.
2013-05-17cesar/mac/pbproc: send beacon using rts-cts, refs #3976Milenko Jelisavcic
2013-05-17cesar/mac/pbproc: use access confirmation in rts-cts, refs #3976Milenko Jelisavcic
2013-05-17cesar/mac/pbproc: modify rts-cts part, refs #3976Milenko Jelisavcic
* limit rts-cts tolerance. * cancel prepared mpdu. * add support for sound frames. * activate tx rts-cts.
2013-05-17cesar/mac/pbproc: bursting with rts-cts, refs #3976Milenko Jelisavcic
2013-05-17cesar/mac/pbproc: factorize rts-cts frame prepare, refs #3976Milenko Jelisavcic
2013-05-16cesar/mac/pbproc: always send MMEs using ROBO mode, closes #3936Cyril Jourdan
This is a hack to improve CE sync between stations. We should think of another ways to ensure that this sync is OK and revert this (see #3988).
2013-05-15cesar/mac/pbproc/test/int: use LID 0xFB instead of 0xFD, refs #3342Cyril Jourdan
0xFB is the value for central beacon LID, 0xFD is the value for discover beacon LID. The test only need a beacon LID, so this change has no impact on AV project. But on EoC project, 0xFB is the only beacon LID valid value, so this change allows us to unify code.
2013-05-15cesar/mac/pbproc/test/int: use TEI 3 instead of 2, refs #3342Cyril Jourdan
This is done to unify code with EoC project where 2 is a reserved value for TEI.
2013-05-15cesar/mac/pbproc: minor refactoring, refs #3342Cyril Jourdan
2013-04-26cesar/cp/av/sta: save force_role in sta_own_data struct, refs #3789Thierry Carré
2013-04-25cesar/ce/rx: reset sound frame counter after a delay, closes #3909Nicolas Schodet
2013-04-25cesar/ce, cesar/mac: use a separate counter for sound interval, refs #3909Nicolas Schodet
2013-04-25cesar/ce, cesar/mac/common: move CE globals to CENicolas Schodet
2013-04-25cesar/ce, cesar/mac/common: add group interval nb in mac tonemap configurationNicolas Schodet
2013-04-25cesar/mac/common, cesar/ce/rx: get rid of mac_interval_measure_shift_tolerance_Nicolas Schodet
2013-04-25cesar/mac/pbproc/test/pbproc: add SRC as parameter, refs #3909Nicolas Schodet
2013-04-25cesar/mac/pbproc/test/pbproc: prepare interval usage for RX, refs #3909Nicolas Schodet
2013-04-22cesar/mac/sar: don't reinitialise RX MFS when in wait_sync state, closes #3893Nélio Laranjeiro
2013-03-06cesar/mac/pbproc: handle correctly SOF without payload, closes #3804Cyril Jourdan
We can compute a negative PB number if we receive a SOF with symb_nb = 0 and a good tonemap. This is a theoretical bug but it also allows us to unify code with EoC project.
2013-03-06cesar/mac/pbproc: handle received RSOF frames, closes #3803Cyril Jourdan
For the moment, they are handled as frames not for us. This first implementation is done to unify code with EoC and set the basis to a clean management of this kind of frames.
2013-03-06cesar/mac/pbproc: wait reverse frame of a bidir burst nfu, closes #3778Cyril Jourdan
2013-02-22cesar: keep log to stderr instead forcing to stdout, refs #2979Thierry Carré
2013-02-21cesar/mac/sar: add TX/RX msdu dropped statistics, closes #3770Nélio Laranjeiro
2013-02-20cesar/mac/sar: initialize all pb header to 0, closes #3773Olivier Dufour
2013-02-14cesar/mac/common: fix the version field size in intervals_t, closes #2541Jean-Philippe SAVE
This commit is a cherry-pick of this one: d87f522ea3ab6b01de8aacc2df18079a48109d6f
2013-01-31cesar: check the hardware compatibility when ipmbox is activated, refs #3680Thierry Carré
Information about an assert could be collected by Linux, only after ipmbox activation.
2013-01-31cesar/maximus: C++ maximus refactoring, closes #3336, closes #3098Thierry Carré
Feedback on new performance on tests inside: test_general/station Ratio = Test duration before this commit divided by new duration. |--------------------------------------------|-------| | Unit test | Ratio | |--------------------------------------------|-------| | maximus/py/sc01_long_simu.py | 6.5 | | maximus/py/sc02_long_simu.py | 4.5 | | scenario/av/py/sc01_assoc_auth.py | 3.3 | | scenario/av/py/sc02_stas_communication.py | 4.5 | | scenario/av/py/sc03_two_avln_coexisting.py | 2.1 | | scenario/av/py/sc04_cc_whoru.py | 2.1 | | scenario/av/py/sc05_cc_leave.py | 2.3 | | scenario/av/py/sc06_discover_procedure.py | 2.3 | | scenario/av/py/sc07_bridge.py | 2.2 | | scenario/av/py/sc08_bentry_change.py | 2.1 | | scenario/av/py/sc09_simple_connect.py | 2.2 | | scenario/av/py/sc10_short_messages.py | 5.7 | | scenario/av/py/sc11_cm_nw_info.py | 4.7 | | scenario/av/py/sc12_change_nmk.py | 5.5 | | scenario/av/py/sc14_igmp.py | 4.0 | | scenario/av/py/sc15_hide.py | 6.0 | | compliance/py/sc01_dut_as_a_cco.py | 5.8 | | tonemap/py/sc01_bl_initial.py | 2.3 | | tonemap/py/sc02_vs_get_tonemap.py | 2.3 | |--------------------------------------------|-------| | Average speed improvement of Maximus is | 4.9 | |--------------------------------------------|-------| Many tickets have been opened to continue the refactoring. Titles begin by "[Maximus][Refactoring]" in pessac's trac. For this reason #3336 is close. #3098 is really fixed.
2013-01-18cesar/ce/rx: include bsu_aclf context pointer in CE RX, refs #2366Jérôme Jutteau
2013-01-18cesar/mac/pbproc: allow at least one PB for non strict tonemaps, closes #2320Nicolas Schodet
2013-01-18cesar/mac/pbproc: handle intervals tolerance and beacon period end, refs #2320Nicolas Schodet
Shrink the interval if the beacon period is smaller than the interval. Use the 150 µs interval tolerance: when near the interval end, use the next interval or enlarge the interval.
2013-01-18cesar/mac/pbproc: add interval end frame length limitation, closes #2291Nicolas Schodet
2013-01-17cesar/mac/sar: add icv false stats, closes #3673Nélio Laranjeiro
2013-01-07cesar/mac/pbproc: handle received FC before prepared MPDU is canceledNicolas Schodet
Handling FC is more urgent, MPDU cancel can be made later. Also remove disabled code which were never enabled.
2013-01-07cesar/mac/pbproc/test/pbproc: add tests for noack casesNicolas Schodet
2013-01-07cesar/mac/pbproc/test/pbproc: code factorizationNicolas Schodet
2013-01-07cesar/mac/pbproc: preparation to split SACK and other SACKD parsingNicolas Schodet
2012-12-17cesar/{mac,hal}: store the agc gain on mpdu reception, refs #3485Nélio Laranjeiro
2012-12-13cesar/mac/pbproc: handle correctly burst not for us, closes #2863Nicolas Schodet
When a burst MPDU is received which is not for us, the PBProc should wait for the next MPDU. If no MPDU is received, go to EIFS.
2012-12-13cesar/mac/{ca,pbproc}: handle merged allocations transitions, closes #3500Nicolas Schodet
Previous code was always using old merge flag value in pbproc, or new merge flag value in ca.
2012-12-12cesar/mac/pbproc: drop mpdu with stei == station tei, closes #2597Nélio Laranjeiro
2012-12-12cesar/mac/pbproc: do not handle sound with invalid rsc, closes #2658Nélio Laranjeiro