Fixed allocate/deallocate PDU session id

1. For data connection originated on IWLAN, Android frameworks
   is responsible for allocating a PDU session id from the modem.
   If later on this data connection handover to cellular, and then ends,
   modem will be responsible for releasing the PDU session id. Android
   frameworks will NOT call "release PDU session id" in this case.
2. For data connection originated on cellular, Android frameworks passes
   -1 in setup data call request, which means modem should allocate the
   PDU session id for this data connection. When handover is about to
   happen, Android frameworks calls startHandover(psi), meaning this PDU
   session id should be preserved for the handover connection on IWLAN.
   Later on if this data connection ends on IWLAN, Android frameworks
   will be responsible for calling "release pdu session id", even though
   Android frameworks did not call "allocate pdu session id" for this
   data connection at the beginning.

Fix: 198516169
Test: atest DataConnectionTest

Change-Id: I95146e150bec0cf34fa86ca4f78a67e933957ca0
3 files changed