

diagram {

LteHelper => EpcHelper [label="AddEnb"] {
  EpcHelper  -> EpcHelper [label="create EpcEnbApplication"];
  EpcHelper  -> EpcHelper [label="Setup S1 link"];
  EpcHelper  => EpcSgwPgwApplication [label="AddEnb (enbIpv4Address)"];
}


LteHelper => LteUeRrc [label="GetRnti", return="RNTI"]
LteHelper => LteEnbRrc [label="SetupRadioBearer", return="LCID"] 

LteHelper => EpcHelper [label="ActivateEpsBearer(UE IP, eNB IP, TFT, RNTI, LCID)"] {
  EpcHelper => EpcSgwPgwApplication [label="ActivateS1Bearer (UE IP, eNB IP, TFT)", return="TEID"] {
    EpcSgwPgwApplication => EpcSgwPgwApplication [label="Store UE IP<->eNB IP mapping"];
    EpcSgwPgwApplication => EpcSgwPgwApplication [label="Create GTP-U tunnel endpoint"];
  }
  EpcHelper => EpcEnbApplication [label="ErabSetupRequest(TEID, RNTI, LCID	)"] {
    EpcEnbApplication -> EpcEnbApplication [label="Create GTP-U tunnel endpoint (TEID)"];
    EpcEnbApplication -> EpcEnbApplication [label="store TEID<->(RNTI,LCID) mapping"]
  }  
}
    

}