• Robert Schmidt's avatar
    Remove drb_active array · 1c2e4c71
    Robert Schmidt authored
    The drb_active array keeps track of active DRBs. However, it only
    replicates some of the information in established_drbs, and could lead
    to a reuse of DRB IDs when two bearers are to be set up. Consider the
    following:
    1. trigger first DRB creation at RRC
    2. DRB ID chosen from free drb_active entry
    3. trigger second DRB creation at RRC
       -> The first reconfiguration has not been acknowledged
       -> drb_active is not marked as DRB_ACTIVE
    4. The second DRB ID is chosen from a free drb_active entry, which is
       the same as in 2.
    
    By reusing established_drbs everywhere, this cannot happen, as we
    1. select the DRB to be used using next_available_drb() and then
    2. use generateDRB(), which marks the DRB used
    all from within fill_DRB_configList, which gives a new DRB.
    
    The logic is still overly complex, though.
    1c2e4c71
nr_rrc_defs.h 14.5 KB