• Cedric Roux's avatar
    nrUE: simplify nr_rrc_ue_process_securityModeCommand() · ec917d4d
    Cedric Roux authored
    The case securityModeFailure didn't seem to be implemented
    properly, so I just removed it entirely.
    
    The variable 'securityMode' did not make much sense, removed as well.
    Plus for integrity, there was: securityMode |= 1 << 5 for nea1
    and << 6 for nea2, which does not seem correct (I would expect << 4
    and << 5 respectively), so it was properly incorrect.
    
    'securityModeCommand->criticalExtensions.choice.securityModeCommand'
    was accessed before checking that
    'securityModeCommand->criticalExtensions.present'
    is 'NR_SecurityModeCommand__criticalExtensions_PR_securityModeCommand',
    which is wrong.
    
    The tests 'securityMode >= NO_SECURITY_MODE' and 'securityMode != 0xff'
    don't make sense/are unclear, so removed too.
    
    So let's simplify this function, wrong in several places. And put
    some AssertFatal() so that the code won't do weird things. The
    AssertFatal() can be removed later and the function improved later
    if needed. The case securityModeFailure can also be handled later,
    but I think there is more work to do than just encoding the message
    and send it to the gNB, so it's not bad to remove it for the moment.
    ec917d4d
rrc_UE.c 80.1 KB