From 55c693469dcba76e9546dc77ba041f1c4cb191da Mon Sep 17 00:00:00 2001 From: Hiro <147632749+Hiro6666@users.noreply.github.com> Date: Mon, 15 Apr 2024 00:56:22 +0800 Subject: [PATCH] Add TNGF (#13) * tngf add ranid * tngf twif add ID * add tngf twif wagf ID * add tngf twif wagf ID and UserLocationInfo * change all indents to tab * format file under ngapType & ngap Convert * modify all dependency version --------- Co-authored-by: tsc Co-authored-by: tim-ywliu <68043973+tim-ywliu@users.noreply.github.com> --- ngapConvert/RanId.go | 28 +++++++++ ngapConvert/TNAPID.go | 19 ++++++ ngapConvert/TWAPID.go | 19 ++++++ ngapType/GlobalLineID.go | 9 +++ ngapType/GlobalLineIdentity.go | 9 +++ ngapType/GlobalTNGFID.go | 9 +++ ngapType/GlobalTWIFID.go | 9 +++ ngapType/GlobalWAGFID.go | 9 +++ ngapType/HFCNodeID.go | 9 +++ ngapType/LineType.go | 14 +++++ ngapType/ProtocolExtensionContainer.go | 36 +++++++++++ ngapType/ProtocolExtensionField.go | 84 +++++++++++++++++++++++++ ngapType/ProtocolIEField.go | 16 ++++- ngapType/ProtocolIEID.go | 6 ++ ngapType/ProtocolIESingleContainer.go | 20 +++++- ngapType/TNAPID.go | 9 +++ ngapType/TNGFID.go | 17 +++++ ngapType/TWAPID.go | 9 +++ ngapType/TWIFID.go | 17 +++++ ngapType/UserLocationInformationTNGF.go | 10 +++ ngapType/UserLocationInformationTWIF.go | 10 +++ ngapType/UserLocationInformationWAGF.go | 17 +++++ ngapType/WAGFID.go | 17 +++++ 23 files changed, 398 insertions(+), 4 deletions(-) create mode 100644 ngapConvert/TNAPID.go create mode 100644 ngapConvert/TWAPID.go create mode 100644 ngapType/GlobalLineID.go create mode 100644 ngapType/GlobalLineIdentity.go create mode 100644 ngapType/GlobalTNGFID.go create mode 100644 ngapType/GlobalTWIFID.go create mode 100644 ngapType/GlobalWAGFID.go create mode 100644 ngapType/HFCNodeID.go create mode 100644 ngapType/LineType.go create mode 100644 ngapType/TNAPID.go create mode 100644 ngapType/TNGFID.go create mode 100644 ngapType/TWAPID.go create mode 100644 ngapType/TWIFID.go create mode 100644 ngapType/UserLocationInformationTNGF.go create mode 100644 ngapType/UserLocationInformationTWIF.go create mode 100644 ngapType/UserLocationInformationWAGF.go create mode 100644 ngapType/WAGFID.go diff --git a/ngapConvert/RanId.go b/ngapConvert/RanId.go index 6a54840..99fa60e 100644 --- a/ngapConvert/RanId.go +++ b/ngapConvert/RanId.go @@ -42,6 +42,34 @@ func RanIdToModels(ranNodeId ngapType.GlobalRANNodeID) (ranId models.GlobalRanNo choiceN3IWFID := ngapN3IWFID.N3IWFID.N3IWFID ranId.N3IwfId = BitStringToHex(choiceN3IWFID) } + case ngapType.GlobalRANNodeIDPresentChoiceExtensions: + switch ranNodeId.ChoiceExtensions.GlobalRANNodeIDExtIEs.Value.Present { + case ngapType.GlobalRANNodeIDExtIEsPresentGlobalTNGFID: + ngapTNGFID := ranNodeId.ChoiceExtensions.GlobalRANNodeIDExtIEs.Value.GlobalTNGFID + plmnid := PlmnIdToModels(ngapTNGFID.PLMNIdentity) + ranId.PlmnId = &plmnid + if ngapTNGFID.TNGFID.Present == ngapType.TNGFIDPresentTNGFID { + choiceTNGFID := ngapTNGFID.TNGFID.TNGFID + ranId.TngfId = BitStringToHex(choiceTNGFID) + } + case ngapType.GlobalRANNodeIDExtIEsPresentGlobalTWIFID: + ngapTWIFID := ranNodeId.ChoiceExtensions.GlobalRANNodeIDExtIEs.Value.GlobalTWIFID + plmnid := PlmnIdToModels(ngapTWIFID.PLMNIdentity) + ranId.PlmnId = &plmnid + if ngapTWIFID.TWIFID.Present == ngapType.TWIFIDPresentTWIFID { + choiceTWIFID := ngapTWIFID.TWIFID.TWIFID + ranId.TwifId = BitStringToHex(choiceTWIFID) + } + case ngapType.GlobalRANNodeIDExtIEsPresentGlobalWAGFID: + ngapWAGFID := ranNodeId.ChoiceExtensions.GlobalRANNodeIDExtIEs.Value.GlobalWAGFID + plmnid := PlmnIdToModels(ngapWAGFID.PLMNIdentity) + ranId.PlmnId = &plmnid + if ngapWAGFID.WAGFID.Present == ngapType.WAGFIDPresentWAGFID { + choiceWAGFID := ngapWAGFID.WAGFID.WAGFID + ranId.WagfId = BitStringToHex(choiceWAGFID) + } + + } } return ranId diff --git a/ngapConvert/TNAPID.go b/ngapConvert/TNAPID.go new file mode 100644 index 0000000..5130853 --- /dev/null +++ b/ngapConvert/TNAPID.go @@ -0,0 +1,19 @@ +package ngapConvert + +import ( + "encoding/binary" + + "github.com/free5gc/ngap/ngapType" +) + +func TNAPIDToInt(id ngapType.TNAPID) (idInt64 int64) { + idInt64 = int64(binary.BigEndian.Uint16(id.Value)) + return +} + +func TNAPIDToNgap(idInt64 uint64) (id ngapType.TNAPID) { + id.Value = make([]byte, 6) + binary.BigEndian.PutUint16(id.Value[0:2], uint16(idInt64>>32)) + binary.BigEndian.PutUint32(id.Value[2:], uint32(idInt64)) + return +} diff --git a/ngapConvert/TWAPID.go b/ngapConvert/TWAPID.go new file mode 100644 index 0000000..d6ea7af --- /dev/null +++ b/ngapConvert/TWAPID.go @@ -0,0 +1,19 @@ +package ngapConvert + +import ( + "encoding/binary" + + "github.com/free5gc/ngap/ngapType" +) + +func TWAPIDToInt(id ngapType.TWAPID) (idInt64 int64) { + idInt64 = int64(binary.BigEndian.Uint16(id.Value)) + return +} + +func TWAPIDToNgap(idInt64 uint64) (id ngapType.TWAPID) { + id.Value = make([]byte, 6) + binary.BigEndian.PutUint16(id.Value[0:2], uint16(idInt64>>32)) + binary.BigEndian.PutUint32(id.Value[2:], uint32(idInt64)) + return +} diff --git a/ngapType/GlobalLineID.go b/ngapType/GlobalLineID.go new file mode 100644 index 0000000..0547ed8 --- /dev/null +++ b/ngapType/GlobalLineID.go @@ -0,0 +1,9 @@ +package ngapType + +// Need to import "gofree5gc/lib/aper" if it uses "aper" + +type GlobalLineID struct { /* Sequence Type (Extensible) */ + GlobalLineIdentity GlobalLineIdentity + LineType *LineType `aper:"valueExt,valueLB:0,valueUB:1,optional"` + IEExtensions *ProtocolExtensionContainerGlobalLineIDExtIEs `aper:"optional"` +} diff --git a/ngapType/GlobalLineIdentity.go b/ngapType/GlobalLineIdentity.go new file mode 100644 index 0000000..b033f92 --- /dev/null +++ b/ngapType/GlobalLineIdentity.go @@ -0,0 +1,9 @@ +package ngapType + +import "github.com/free5gc/aper" + +// Need to import "gofree5gc/lib/aper" if it uses "aper" + +type GlobalLineIdentity struct { + Value aper.OctetString +} diff --git a/ngapType/GlobalTNGFID.go b/ngapType/GlobalTNGFID.go new file mode 100644 index 0000000..0046fd6 --- /dev/null +++ b/ngapType/GlobalTNGFID.go @@ -0,0 +1,9 @@ +package ngapType + +// Need to import "gofree5gc/lib/aper" if it uses "aper" + +type GlobalTNGFID struct { /* Sequence Type (Extensible) */ + PLMNIdentity PLMNIdentity + TNGFID TNGFID `aper:"valueLB:0,valueUB:1"` + IEExtensions *ProtocolExtensionContainerGlobalTNGFIDExtIEs `aper:"optional"` +} diff --git a/ngapType/GlobalTWIFID.go b/ngapType/GlobalTWIFID.go new file mode 100644 index 0000000..f80a5e9 --- /dev/null +++ b/ngapType/GlobalTWIFID.go @@ -0,0 +1,9 @@ +package ngapType + +// Need to import "gofree5gc/lib/aper" if it uses "aper" + +type GlobalTWIFID struct { /* Sequence Type (Extensible) */ + PLMNIdentity PLMNIdentity + TWIFID TWIFID `aper:"valueLB:0,valueUB:1"` + IEExtensions *ProtocolExtensionContainerGlobalTWIFIDExtIEs `aper:"optional"` +} diff --git a/ngapType/GlobalWAGFID.go b/ngapType/GlobalWAGFID.go new file mode 100644 index 0000000..61acea7 --- /dev/null +++ b/ngapType/GlobalWAGFID.go @@ -0,0 +1,9 @@ +package ngapType + +// Need to import "gofree5gc/lib/aper" if it uses "aper" + +type GlobalWAGFID struct { /* Sequence Type (Extensible) */ + PLMNIdentity PLMNIdentity + WAGFID WAGFID `aper:"valueLB:0,valueUB:1"` + IEExtensions *ProtocolExtensionContainerGlobalWAGFIDExtIEs `aper:"optional"` +} diff --git a/ngapType/HFCNodeID.go b/ngapType/HFCNodeID.go new file mode 100644 index 0000000..9a83614 --- /dev/null +++ b/ngapType/HFCNodeID.go @@ -0,0 +1,9 @@ +package ngapType + +import "github.com/free5gc/aper" + +// Need to import "gofree5gc/lib/aper" if it uses "aper" + +type HFCNodeID struct { + Value aper.OctetString +} diff --git a/ngapType/LineType.go b/ngapType/LineType.go new file mode 100644 index 0000000..59c6c57 --- /dev/null +++ b/ngapType/LineType.go @@ -0,0 +1,14 @@ +package ngapType + +import "github.com/free5gc/aper" + +// Need to import "gofree5gc/lib/aper" if it uses "aper" + +const ( /* Enum Type */ + LineTypePresentDsl aper.Enumerated = 0 + LineTypePresentPon aper.Enumerated = 1 +) + +type LineType struct { + Value aper.Enumerated `aper:"valueExt,valueLB:0,valueUB:1"` +} diff --git a/ngapType/ProtocolExtensionContainer.go b/ngapType/ProtocolExtensionContainer.go index b25adb7..6993c19 100644 --- a/ngapType/ProtocolExtensionContainer.go +++ b/ngapType/ProtocolExtensionContainer.go @@ -350,6 +350,30 @@ type ProtocolExtensionContainerGlobalN3IWFIDExtIEs struct { List []GlobalN3IWFIDExtIEs `aper:"sizeLB:1,sizeUB:65535"` } +/* Sequence of = 35, FULL Name = struct ProtocolExtensionContainer_9611P88 */ +/* GlobalLineIDExtIEs */ +type ProtocolExtensionContainerGlobalLineIDExtIEs struct { + List []GlobalLineIDExtIEs `aper:"sizeLB:1,sizeUB:65535"` +} + +/* Sequence of = 35, FULL Name = struct ProtocolExtensionContainer_6706P57 */ +/* GlobalTNGFIDExtIEs */ +type ProtocolExtensionContainerGlobalTNGFIDExtIEs struct { + List []GlobalTNGFIDExtIEs `aper:"sizeLB:1,sizeUB:65535"` +} + +/* Sequence of = 35, FULL Name = struct ProtocolExtensionContainer_6706P57 */ +/* GlobalTWIFIDExtIEs */ +type ProtocolExtensionContainerGlobalTWIFIDExtIEs struct { + List []GlobalTWIFIDExtIEs `aper:"sizeLB:1,sizeUB:65535"` +} + +/* Sequence of = 35, FULL Name = struct ProtocolExtensionContainer_6706P57 */ +/* GlobalWAGFIDExtIEs */ +type ProtocolExtensionContainerGlobalWAGFIDExtIEs struct { + List []GlobalWAGFIDExtIEs `aper:"sizeLB:1,sizeUB:65535"` +} + /* Sequence of = 35, FULL Name = struct ProtocolExtensionContainer_6706P58 */ /* GlobalNgENBIDExtIEs */ type ProtocolExtensionContainerGlobalNgENBIDExtIEs struct { @@ -1118,6 +1142,18 @@ type ProtocolExtensionContainerUserLocationInformationN3IWFExtIEs struct { List []UserLocationInformationN3IWFExtIEs `aper:"sizeLB:1,sizeUB:65535"` } +/* Sequence of = 35, FULL Name = struct ProtocolExtensionContainer_6706P185 */ +/* UserLocationInformationTNGFExtIEs */ +type ProtocolExtensionContainerUserLocationInformationTNGFExtIEs struct { + List []UserLocationInformationTNGFExtIEs `aper:"sizeLB:1,sizeUB:65535"` +} + +/* Sequence of = 35, FULL Name = struct ProtocolExtensionContainer_6706P185 */ +/* UserLocationInformationTWIFExtIEs */ +type ProtocolExtensionContainerUserLocationInformationTWIFExtIEs struct { + List []UserLocationInformationTWIFExtIEs `aper:"sizeLB:1,sizeUB:65535"` +} + /* Sequence of = 35, FULL Name = struct ProtocolExtensionContainer_6706P186 */ /* UserLocationInformationNRExtIEs */ type ProtocolExtensionContainerUserLocationInformationNRExtIEs struct { diff --git a/ngapType/ProtocolExtensionField.go b/ngapType/ProtocolExtensionField.go index 58946fe..4b8e8b3 100644 --- a/ngapType/ProtocolExtensionField.go +++ b/ngapType/ProtocolExtensionField.go @@ -816,6 +816,48 @@ type GlobalN3IWFIDExtIEsExtensionValue struct { Present int } +type GlobalTNGFIDExtIEs struct { + Id ProtocolExtensionID + Criticality Criticality + ExtensionValue GlobalTNGFIDExtIEsExtensionValue `aper:"openType,referenceFieldName:Id"` +} + +const ( + GlobalTNGFIDExtIEsPresentNothing int = iota /* No components present */ +) + +type GlobalTNGFIDExtIEsExtensionValue struct { + Present int +} + +type GlobalTWIFIDExtIEs struct { + Id ProtocolExtensionID + Criticality Criticality + ExtensionValue GlobalTWIFIDExtIEsExtensionValue `aper:"openType,referenceFieldName:Id"` +} + +const ( + GlobalTWIFIDExtIEsPresentNothing int = iota /* No components present */ +) + +type GlobalTWIFIDExtIEsExtensionValue struct { + Present int +} + +type GlobalWAGFIDExtIEs struct { + Id ProtocolExtensionID + Criticality Criticality + ExtensionValue GlobalWAGFIDExtIEsExtensionValue `aper:"openType,referenceFieldName:Id"` +} + +const ( + GlobalWAGFIDExtIEsPresentNothing int = iota /* No components present */ +) + +type GlobalWAGFIDExtIEsExtensionValue struct { + Present int +} + type GlobalNgENBIDExtIEs struct { Id ProtocolExtensionID Criticality Criticality @@ -2636,6 +2678,48 @@ type UserLocationInformationN3IWFExtIEsExtensionValue struct { Present int } +type GlobalLineIDExtIEs struct { /* Sequence Type */ + Id ProtocolExtensionID + Criticality Criticality + ExtensionValue GlobalLineIDExtIEsExtensionValue `aper:"openType,referenceFieldName:Id"` +} + +const ( + GlobalLineIDExtIEsPresentNothing int = iota /* No components present */ +) + +type GlobalLineIDExtIEsExtensionValue struct { + Present int /* Open Type */ +} + +type UserLocationInformationTNGFExtIEs struct { + Id ProtocolExtensionID + Criticality Criticality + ExtensionValue UserLocationInformationTNGFExtIEsExtensionValue `aper:"openType,referenceFieldName:Id"` +} + +const ( + UserLocationInformationTNGFExtIEsPresentNothing int = iota /* No components present */ +) + +type UserLocationInformationTNGFExtIEsExtensionValue struct { + Present int +} + +type UserLocationInformationTWIFExtIEs struct { + Id ProtocolExtensionID + Criticality Criticality + ExtensionValue UserLocationInformationTWIFExtIEsExtensionValue `aper:"openType,referenceFieldName:Id"` +} + +const ( + UserLocationInformationTWIFExtIEsPresentNothing int = iota /* No components present */ +) + +type UserLocationInformationTWIFExtIEsExtensionValue struct { + Present int +} + type UserLocationInformationNRExtIEs struct { Id ProtocolExtensionID Criticality Criticality diff --git a/ngapType/ProtocolIEField.go b/ngapType/ProtocolIEField.go index d228ce5..278ce6d 100644 --- a/ngapType/ProtocolIEField.go +++ b/ngapType/ProtocolIEField.go @@ -124,10 +124,16 @@ type GlobalRANNodeIDExtIEs struct { const ( GlobalRANNodeIDExtIEsPresentNothing int = iota /* No components present */ + GlobalRANNodeIDExtIEsPresentGlobalTNGFID + GlobalRANNodeIDExtIEsPresentGlobalTWIFID + GlobalRANNodeIDExtIEsPresentGlobalWAGFID ) type GlobalRANNodeIDExtIEsValue struct { - Present int + Present int + GlobalTNGFID *GlobalTNGFID `aper:"valueExt,referenceFieldValue:240"` + GlobalTWIFID *GlobalTWIFID `aper:"valueExt,referenceFieldValue:241"` + GlobalWAGFID *GlobalWAGFID `aper:"valueExt,referenceFieldValue:242"` } type GNBIDExtIEs struct { @@ -348,10 +354,16 @@ type UserLocationInformationExtIEs struct { const ( UserLocationInformationExtIEsPresentNothing int = iota /* No components present */ + UserLocationInformationExtIEsPresentUserLocationInformationTNGF + UserLocationInformationExtIEsPresentUserLocationInformationTWIF + UserLocationInformationExtIEsPresentUserLocationInformationWAGF ) type UserLocationInformationExtIEsValue struct { - Present int + Present int + UserLocationInformationTNGF *UserLocationInformationTNGF `aper:"valueExt,referenceFieldValue:244"` + UserLocationInformationTWIF *UserLocationInformationTWIF `aper:"valueExt,referenceFieldValue:248"` + UserLocationInformationWAGF *UserLocationInformationWAGF `aper:"referenceFieldValue:243,valueLB:0,valueUB:2"` } type WarningAreaListExtIEs struct { diff --git a/ngapType/ProtocolIEID.go b/ngapType/ProtocolIEID.go index 69203c4..034bd88 100644 --- a/ngapType/ProtocolIEID.go +++ b/ngapType/ProtocolIEID.go @@ -165,4 +165,10 @@ const ( ProtocolIEIDSecurityResult int64 = 156 ProtocolIEIDENDCSONConfigurationTransferDL int64 = 157 ProtocolIEIDENDCSONConfigurationTransferUL int64 = 158 + ProtocolIEIDGlobalTNGFID int64 = 240 + ProtocolIEIDGlobalTWIFID int64 = 241 + ProtocolIEIDGlobalWAGFID int64 = 242 + ProtocolIEIDUserLocationInformationWAGF int64 = 243 + ProtocolIEIDUserLocationInformationTNGF int64 = 244 + ProtocolIEIDUserLocationInformationTWIF int64 = 248 ) diff --git a/ngapType/ProtocolIESingleContainer.go b/ngapType/ProtocolIESingleContainer.go index a41c3df..7dc6ebe 100644 --- a/ngapType/ProtocolIESingleContainer.go +++ b/ngapType/ProtocolIESingleContainer.go @@ -27,7 +27,9 @@ type ProtocolIESingleContainerDRBStatusDLExtIEs struct{} type ProtocolIESingleContainerDRBStatusULExtIEs struct{} // Open type declare -type ProtocolIESingleContainerGlobalRANNodeIDExtIEs struct{} +type ProtocolIESingleContainerGlobalRANNodeIDExtIEs struct { + GlobalRANNodeIDExtIEs *GlobalRANNodeIDExtIEs +} // Open type declare type ProtocolIESingleContainerGNBIDExtIEs struct{} @@ -38,6 +40,15 @@ type ProtocolIESingleContainerLastVisitedCellInformationExtIEs struct{} // Open type declare type ProtocolIESingleContainerN3IWFIDExtIEs struct{} +// Open type declare +type ProtocolIESingleContainerTNGFIDExtIEs struct{} + +// Open type declare +type ProtocolIESingleContainerTWIFIDExtIEs struct{} + +// Open type declare +type ProtocolIESingleContainerWAGFIDExtIEs struct{} + // Open type declare type ProtocolIESingleContainerNgENBIDExtIEs struct{} @@ -75,7 +86,12 @@ type ProtocolIESingleContainerUEPagingIdentityExtIEs struct{} type ProtocolIESingleContainerUPTransportLayerInformationExtIEs struct{} // Open type declare -type ProtocolIESingleContainerUserLocationInformationExtIEs struct{} +type ProtocolIESingleContainerUserLocationInformationExtIEs struct { + UserLocationInformationExtIEs *UserLocationInformationExtIEs +} + +// Open type declare +type ProtocolIESingleContainerUserLocationInformationWAGFExtIEs struct{} // Open type declare type ProtocolIESingleContainerWarningAreaListExtIEs struct{} diff --git a/ngapType/TNAPID.go b/ngapType/TNAPID.go new file mode 100644 index 0000000..a0d2c68 --- /dev/null +++ b/ngapType/TNAPID.go @@ -0,0 +1,9 @@ +package ngapType + +import "github.com/free5gc/aper" + +// Need to import "github.com/free5gc/aper" if it uses "aper" + +type TNAPID struct { + Value aper.OctetString +} diff --git a/ngapType/TNGFID.go b/ngapType/TNGFID.go new file mode 100644 index 0000000..7082d6d --- /dev/null +++ b/ngapType/TNGFID.go @@ -0,0 +1,17 @@ +package ngapType + +import "github.com/free5gc/aper" + +// Need to import "gofree5gc/lib/aper" if it uses "aper" + +const ( + TNGFIDPresentNothing int = iota /* No components present */ + TNGFIDPresentTNGFID + TNGFIDPresentChoiceExtensions +) + +type TNGFID struct { + Present int /* Choice Type */ + TNGFID *aper.BitString `aper:"sizeLB:32,sizeUB:32"` + ChoiceExtensions *ProtocolIESingleContainerTNGFIDExtIEs +} diff --git a/ngapType/TWAPID.go b/ngapType/TWAPID.go new file mode 100644 index 0000000..b414b09 --- /dev/null +++ b/ngapType/TWAPID.go @@ -0,0 +1,9 @@ +package ngapType + +import "github.com/free5gc/aper" + +// Need to import "gofree5gc/lib/aper" if it uses "aper" + +type TWAPID struct { + Value aper.OctetString +} diff --git a/ngapType/TWIFID.go b/ngapType/TWIFID.go new file mode 100644 index 0000000..e8c8a1d --- /dev/null +++ b/ngapType/TWIFID.go @@ -0,0 +1,17 @@ +package ngapType + +import "github.com/free5gc/aper" + +// Need to import "gofree5gc/lib/aper" if it uses "aper" + +const ( + TWIFIDPresentNothing int = iota /* No components present */ + TWIFIDPresentTWIFID + TWIFIDPresentChoiceExtensions +) + +type TWIFID struct { + Present int /* Choice Type */ + TWIFID *aper.BitString `aper:"sizeExt,sizeLB:32,sizeUB:32"` + ChoiceExtensions *ProtocolIESingleContainerTWIFIDExtIEs +} diff --git a/ngapType/UserLocationInformationTNGF.go b/ngapType/UserLocationInformationTNGF.go new file mode 100644 index 0000000..8938b90 --- /dev/null +++ b/ngapType/UserLocationInformationTNGF.go @@ -0,0 +1,10 @@ +package ngapType + +// Need to import "github.com/free5gc/aper" if it uses "aper" + +type UserLocationInformationTNGF struct { + TNAPID TNAPID + IPAddress TransportLayerAddress + PortNumber *PortNumber `aper:"optional"` + IEExtensions *ProtocolExtensionContainerUserLocationInformationTNGFExtIEs `aper:"optional"` +} diff --git a/ngapType/UserLocationInformationTWIF.go b/ngapType/UserLocationInformationTWIF.go new file mode 100644 index 0000000..0ac0956 --- /dev/null +++ b/ngapType/UserLocationInformationTWIF.go @@ -0,0 +1,10 @@ +package ngapType + +// Need to import "gofree5gc/lib/aper" if it uses "aper" + +type UserLocationInformationTWIF struct { /* Sequence Type (Extensible) */ + TWAPID TWAPID + IPAddress TransportLayerAddress + PortNumber *PortNumber `aper:"optional"` + IEExtensions *ProtocolExtensionContainerUserLocationInformationTWIFExtIEs `aper:"optional"` +} diff --git a/ngapType/UserLocationInformationWAGF.go b/ngapType/UserLocationInformationWAGF.go new file mode 100644 index 0000000..3d90430 --- /dev/null +++ b/ngapType/UserLocationInformationWAGF.go @@ -0,0 +1,17 @@ +package ngapType + +// Need to import "gofree5gc/lib/aper" if it uses "aper" + +const ( + UserLocationInformationWAGFPresentNothing int = iota /* No components present */ + UserLocationInformationWAGFPresentGlobalLineID + UserLocationInformationWAGFPresentHFCNodeID + UserLocationInformationWAGFPresentChoiceExtensions +) + +type UserLocationInformationWAGF struct { + Present int /* Choice Type */ + GlobalLineID *GlobalLineID `aper:"valueExt"` + HFCNodeID *HFCNodeID + ChoiceExtensions *ProtocolIESingleContainerUserLocationInformationWAGFExtIEs +} diff --git a/ngapType/WAGFID.go b/ngapType/WAGFID.go new file mode 100644 index 0000000..8a3a4ca --- /dev/null +++ b/ngapType/WAGFID.go @@ -0,0 +1,17 @@ +package ngapType + +import "github.com/free5gc/aper" + +// Need to import "gofree5gc/lib/aper" if it uses "aper" + +const ( + WAGFIDPresentNothing int = iota /* No components present */ + WAGFIDPresentWAGFID + WAGFIDPresentChoiceExtensions +) + +type WAGFID struct { + Present int /* Choice Type */ + WAGFID *aper.BitString `aper:"sizeExt,sizeLB:16,sizeUB:16"` + ChoiceExtensions *ProtocolIESingleContainerWAGFIDExtIEs +}