Dynamic NR-DC
Note
Dynamic NR-DC means the DC feature (two tunnels in one PDU Session) will be trigger after the initial PDU session establishment procedure.
At gNB
If gNB get the signal to modify the UE's tunnel, it will iinteract with secondary gNB for retrieving the second tunnel's info, like TEID
.
-
For master gNB:
-
Build the target
PDUSessionResourceModifyIndicationTransfer
message. -
Encapsulate into
PDUSessionResourceModifyIndication
NGAP message. -
Interact with secondary gNB.
pduSessionModifyIndication, err = g.xnPduSessionResourceModifyIndication(ranUe.GetMobileIdentityIMSI(), pduSessionModifyIndication)
This step will start communication with secondary gNB via Xn-interface.
-
Send the modify indication message to AMF for core network DC setup.
-
Receive the confirm message and transmit it to secondary gNB
-
Send tunnel update message to UE
This message is just designed by free-ran-ue, not followed 3GPP. The purpose of the message is letting UE update the data plane configuration.
-
-
For secondary gNB:
- Receive the modify indication NGAP message and insert its tunnel's information.
- Receive the confirm NGAP message and update the uplink TEID.
For more details implemtation, please refer to: xn.go
At UE
After master gNB finishing the modify procedure, it will send an update message to UE. Once UE received this tunnel update message, it will update the data plane configuration.
-
Modify from non-DC to DC:
-
Dial a connection to secondary gNB's data plane connection.
-
Start the data plane read for secondaru gNB.
-
-
Modify from DC to non-DC
-
Close the secondary gNB's data plane connection.
-
The data plane handler will based on the ue.nrdc.enable
flag to do the traffic flow split.