uePolicyContainer

package
v1.0.71 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 20, 2024 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MsgTypeManageUEPolicyCommand       uint8 = 1
	MsgTypeManageUEPolicyComplete      uint8 = 2
	MsgTypeManageUEPolicyReject        uint8 = 3
	MsgTypeUEStateIndication           uint8 = 4
	MsgTypeUEPolicyProvisioningRequest uint8 = 5
	MsgTypeUEPolicyProvisioningReject  uint8 = 6
)
View Source
const (
	UEPolicyPartType_URSP   uint8 = 0x01
	UEPolicyPartType_ANDSP  uint8 = 0x02
	UEPolicyPartType_V2XP   uint8 = 0x03
	UEPolicyPartType_ProSeP uint8 = 0x04
)

Variables

This section is empty.

Functions

This section is empty.

Types

type IDGenerator

type IDGenerator struct {
	// contains filtered or unexported fields
}

func NewGenerator

func NewGenerator(minValue, maxValue int64) *IDGenerator

Initialize an IDGenerator with minValue and maxValue.

func (*IDGenerator) Allocate

func (idGenerator *IDGenerator) Allocate() (int64, error)

Allocate and return an id in range [minValue, maxValue]

func (*IDGenerator) Allocate_inRange

func (idGenerator *IDGenerator) Allocate_inRange(min, max int64) (int64, error)

Allocate and return an id in from certain range [inputMin, inputMAX]

func (*IDGenerator) FreeID

func (idGenerator *IDGenerator) FreeID(id int64)

param:

  • id: id to free

type Instruction

type Instruction struct {
	Len                     uint16
	Upsc                    uint16 // a UE policy section code (UPSC) containing a value assigned by the PCF.
	UEPolicySectionContents UEPolicySectionContents
}

func (*Instruction) GetLen

func (i *Instruction) GetLen() uint16

func (*Instruction) GetUpsc

func (i *Instruction) GetUpsc() uint16

func (*Instruction) MarshalBinary

func (i *Instruction) MarshalBinary() ([]byte, error)

func (*Instruction) SetLen

func (i *Instruction) SetLen(length uint16)

func (*Instruction) SetUpsc

func (i *Instruction) SetUpsc(upsc uint16)

type ManageUEPolicyCommand

TS24.501 v17.7.1, sec D.5.1

func NewManageUEPolicyCommand

func NewManageUEPolicyCommand(msgType uint8) (manageUEPolicyCommand *ManageUEPolicyCommand)

func (*ManageUEPolicyCommand) DecodeManageUEPolicyCommand

func (m *ManageUEPolicyCommand) DecodeManageUEPolicyCommand(byteArray []byte) error

func (*ManageUEPolicyCommand) EncodeManageUEPolicyCommand

func (m *ManageUEPolicyCommand) EncodeManageUEPolicyCommand(buffer *bytes.Buffer) error

type ManageUEPolicyComplete

type ManageUEPolicyComplete struct {
	nasType.PTI
	UePolicyDeliveryServiceMsgType
}

func NewManageUEPolicyComplete

func NewManageUEPolicyComplete(msgType uint8) (manageUEPolicyComplete *ManageUEPolicyComplete)

func (*ManageUEPolicyComplete) DecodeManageUEPolicyComplete

func (m *ManageUEPolicyComplete) DecodeManageUEPolicyComplete(byteArray []byte) error

func (*ManageUEPolicyComplete) EncodeManageUEPolicyComplete

func (m *ManageUEPolicyComplete) EncodeManageUEPolicyComplete(buffer *bytes.Buffer) error

type ManageUEPolicyReject

func NewManageUEPolicyReject

func NewManageUEPolicyReject(msgType uint8) (manageUEPolicyReject *ManageUEPolicyReject)

func (*ManageUEPolicyReject) DecodeManageUEPolicyReject

func (m *ManageUEPolicyReject) DecodeManageUEPolicyReject(byteArray []byte) error

func (*ManageUEPolicyReject) EncodeManageUEPolicyReject

func (m *ManageUEPolicyReject) EncodeManageUEPolicyReject(buffer *bytes.Buffer) error

type Result

type Result struct {
	Upsc uint16 // a UE policy section code (UPSC) containing a value assigned by the PCF.
	// FailInstructionOrder: This field contains the binary encoding of the order of the failed instruction
	// in the UE policy section management sublist.
	FailInstructionOrder uint16
	// Cause: The receiving entity shall treat any other value as 0110 1111, "protocol error, unspecified".
	Cause uint8
}

Refer to TS23501 v17.7.1,Table D.6.3.1

func NewResult

func NewResult() Result

func (*Result) GetUpsc

func (r *Result) GetUpsc() uint16

func (*Result) MarshalBinary

func (r *Result) MarshalBinary() ([]byte, error)

func (*Result) SetUpsc

func (r *Result) SetUpsc(upsc uint16)

type UEPolicyNetworkClassmark

type UEPolicyNetworkClassmark struct {
	Iei   uint8
	Len   uint8
	NSSUI uint8 // Non-subscribed SNPN signalled URSP handling indication
	Spare uint8 // always set to zero
}

func NewUEPolicyNetworkClassmark

func NewUEPolicyNetworkClassmark() (uEPolicyNetworkClassmark *UEPolicyNetworkClassmark)

func (*UEPolicyNetworkClassmark) GetIei

func (a *UEPolicyNetworkClassmark) GetIei() uint8

D.6.7 UE policy network classmark Iei Row, sBit, len = [], 8, 8

func (*UEPolicyNetworkClassmark) GetLen

func (a *UEPolicyNetworkClassmark) GetLen() uint8

D.6.7 UE policy network classmark Len Row, sBit, len = [], 8, 8

func (*UEPolicyNetworkClassmark) GetNSSUI

func (a *UEPolicyNetworkClassmark) GetNSSUI() uint8

func (*UEPolicyNetworkClassmark) GetSpare

func (a *UEPolicyNetworkClassmark) GetSpare() uint8

func (*UEPolicyNetworkClassmark) SetIei

func (a *UEPolicyNetworkClassmark) SetIei(iei uint8)

D.6.7 UE policy network classmark Iei Row, sBit, len = [], 8, 8

func (*UEPolicyNetworkClassmark) SetLen

func (a *UEPolicyNetworkClassmark) SetLen(length uint8)

D.6.7 UE policy network classmark Len Row, sBit, len = [], 8, 8

func (*UEPolicyNetworkClassmark) SetNSSUI

func (a *UEPolicyNetworkClassmark) SetNSSUI(allowAcceptURSP uint8) error

D.6.7 UE policy network classmark Len Row, sBit, len = 1, 8, 8 Bits of NSSUI 0 UE is allowed to accept URSP signalled by non-subscribed SNPNs 1 UE is not allowed to accept URSP signalled by non-subscribed SNPNs

type UEPolicyPart

type UEPolicyPart struct {
	Len                  uint16
	UEPolicyPartType     UEPolicyPartType
	UEPolicyPartContents []byte
}

func (*UEPolicyPart) GetLen

func (u *UEPolicyPart) GetLen() uint16

func (*UEPolicyPart) GetPartContent

func (u *UEPolicyPart) GetPartContent() []uint8

func (*UEPolicyPart) MarshalBinary

func (u *UEPolicyPart) MarshalBinary() ([]byte, error)

func (*UEPolicyPart) SetLen

func (u *UEPolicyPart) SetLen(length uint16)

func (*UEPolicyPart) SetLen_byContent

func (u *UEPolicyPart) SetLen_byContent() uint16

func (*UEPolicyPart) SetPartContent

func (u *UEPolicyPart) SetPartContent(encoding_content []uint8)

type UEPolicyPartType

type UEPolicyPartType struct {
	Octet uint8
}

func (*UEPolicyPartType) GetPartType

func (u *UEPolicyPartType) GetPartType() byte

func (*UEPolicyPartType) SetPartType

func (u *UEPolicyPartType) SetPartType(partType byte)

type UEPolicySectionContents

type UEPolicySectionContents []UEPolicyPart

func (*UEPolicySectionContents) AppendUEPolicyPart

func (u *UEPolicySectionContents) AppendUEPolicyPart(policyPart *UEPolicyPart)

func (*UEPolicySectionContents) MarshalBinary

func (u *UEPolicySectionContents) MarshalBinary() ([]byte, error)

func (*UEPolicySectionContents) UnmarshalBinary

func (u *UEPolicySectionContents) UnmarshalBinary(b []byte) error

type UEPolicySectionManagementList

type UEPolicySectionManagementList struct {
	Iei    uint8
	Len    uint16
	Buffer []uint8
}

refer to TS24501 v17, section D.6.2

func NewUEPolicySectionManagementList

func NewUEPolicySectionManagementList(iei uint8) (uEPolicySectionManagementList *UEPolicySectionManagementList)

func (*UEPolicySectionManagementList) GetIei

UEPolicySectionManagementList element D.6.2.1 Iei Row, sBit, len = [], 8, 8

func (*UEPolicySectionManagementList) GetLen

UEPolicySectionManagementList element D.6.2.1 Len Row, sBit, len = [], 8, 16

func (*UEPolicySectionManagementList) GetUEPolicySectionManagementListContent

func (a *UEPolicySectionManagementList) GetUEPolicySectionManagementListContent() (ctnByte []uint8)

UEPolicySectionManagementList element D.6.2.1 QoSFlowDescriptions Row, sBit, len = [0, 0], 8 , INF

func (*UEPolicySectionManagementList) MarshalBinary

func (u *UEPolicySectionManagementList) MarshalBinary() ([]uint8, error)

func (*UEPolicySectionManagementList) SetIei

func (a *UEPolicySectionManagementList) SetIei(iei uint8)

UEPolicySectionManagementList element D.6.2.1 Iei Row, sBit, len = [], 8, 8

func (*UEPolicySectionManagementList) SetLen

func (a *UEPolicySectionManagementList) SetLen(length uint16)

UEPolicySectionManagementList element D.6.2.1 Len Row, sBit, len = [], 8, 16

func (*UEPolicySectionManagementList) SetUEPolicySectionManagementListContent

func (a *UEPolicySectionManagementList) SetUEPolicySectionManagementListContent(ctnByte []uint8)

set a byte list(consit of one or many sublist) to list content

func (*UEPolicySectionManagementList) UnmarshalBinary

func (u *UEPolicySectionManagementList) UnmarshalBinary(buf *bytes.Buffer) error

type UEPolicySectionManagementListContent

type UEPolicySectionManagementListContent []UEPolicySectionManagementSubList

func (*UEPolicySectionManagementListContent) AppendSublist

func (*UEPolicySectionManagementListContent) MarshalBinary

func (u *UEPolicySectionManagementListContent) MarshalBinary() ([]byte, error)

Marshal Strcuture into byte slice

func (*UEPolicySectionManagementListContent) UnmarshalBinary

func (u *UEPolicySectionManagementListContent) UnmarshalBinary(b []byte) error

UnMarshal byte slice into Strctute

type UEPolicySectionManagementResult

type UEPolicySectionManagementResult struct {
	Iei    uint8
	Len    uint16
	Buffer []uint8
}

refer to TS24501 v17, section D.6.3

func NewUEPolicySectionManagementResult

func NewUEPolicySectionManagementResult(iei uint8) (uEPolicySectionManagementResult *UEPolicySectionManagementResult)

func (*UEPolicySectionManagementResult) GetIei

func (*UEPolicySectionManagementResult) GetLen

func (*UEPolicySectionManagementResult) GetUEPolicySectionManagementResultContent

func (a *UEPolicySectionManagementResult) GetUEPolicySectionManagementResultContent() (ctnByte []uint8)

UEPolicySectionManagementResult element D.6.3.1

func (*UEPolicySectionManagementResult) MarshalBinary

func (u *UEPolicySectionManagementResult) MarshalBinary() ([]uint8, error)

func (*UEPolicySectionManagementResult) SetIei

func (u *UEPolicySectionManagementResult) SetIei(iei uint8)

func (*UEPolicySectionManagementResult) SetLen

func (u *UEPolicySectionManagementResult) SetLen(length uint16)

func (*UEPolicySectionManagementResult) SetUEPolicySectionManagementResultContent

func (a *UEPolicySectionManagementResult) SetUEPolicySectionManagementResultContent(ctnByte []uint8)

func (*UEPolicySectionManagementResult) UnmarshalBinary

func (u *UEPolicySectionManagementResult) UnmarshalBinary(buf *bytes.Buffer) error

type UEPolicySectionManagementResultContent

type UEPolicySectionManagementResultContent []UEPolicySectionManagementSubResult

func (*UEPolicySectionManagementResultContent) AppendSublist

func (*UEPolicySectionManagementResultContent) MarshalBinary

func (u *UEPolicySectionManagementResultContent) MarshalBinary() ([]byte, error)

Marshal Strcuture into byte slice

func (*UEPolicySectionManagementResultContent) UnmarshalBinary

func (u *UEPolicySectionManagementResultContent) UnmarshalBinary(b []byte) error

UnMarshal byte slice into Strctute

type UEPolicySectionManagementSubList

type UEPolicySectionManagementSubList struct {
	Len                                      uint16
	PlmnDigit1                               uint8 // ref D.6.2.3, PLMN1=MCC digit 2 + MCC digit 1
	PlmnDigit2                               uint8 // PLMN2=MNC digit 3 + MCC digit 3
	PlmnDigit3                               uint8 // PLMN3=MNC digit 2 + MNC digit 1
	Mcc                                      *int  // not specific in specm just recode the origin MCC before encoding
	Mnc                                      *int  // not specific in specm just recode the origin MNC before encoding
	UEPolicySectionManagementSubListContents UEPolicySectionManagementSubListContents
	// a UE policy section code (UPSC) containing a unique value within the PLMN or SNPN selected by the PCF.
	UpscGenerator IDGenerator
}

func (*UEPolicySectionManagementSubList) GetLen

func (*UEPolicySectionManagementSubList) GetPlmnDigit

func (u *UEPolicySectionManagementSubList) GetPlmnDigit() (int, int)

func (*UEPolicySectionManagementSubList) MarshalBinary

func (u *UEPolicySectionManagementSubList) MarshalBinary() ([]byte, error)

func (*UEPolicySectionManagementSubList) SetLen

func (u *UEPolicySectionManagementSubList) SetLen(length uint16)

func (*UEPolicySectionManagementSubList) SetPlmnDigit

func (u *UEPolicySectionManagementSubList) SetPlmnDigit(mcc, mnc int) error

type UEPolicySectionManagementSubListContents

type UEPolicySectionManagementSubListContents []Instruction

func (*UEPolicySectionManagementSubListContents) AppendInstruction

func (u *UEPolicySectionManagementSubListContents) AppendInstruction(ins Instruction)

func (*UEPolicySectionManagementSubListContents) MarshalBinary

func (u *UEPolicySectionManagementSubListContents) MarshalBinary() ([]byte, error)

Marshal Strcuture into byte slice

func (*UEPolicySectionManagementSubListContents) UnmarshalBinary

func (u *UEPolicySectionManagementSubListContents) UnmarshalBinary(b []byte) error

UnMarshal byte slice into Strctute

type UEPolicySectionManagementSubResult

type UEPolicySectionManagementSubResult struct {
	Len                                        uint16
	PlmnDigit1                                 uint8 // ref D.6.3.3, PLMN1=MCC digit 2 + MCC digit 1
	PlmnDigit2                                 uint8 // PLMN2=MNC digit 3 + MCC digit 3
	PlmnDigit3                                 uint8 // PLMN3=MNC digit 2 + MNC digit 1
	Mcc                                        *int  // not specific in specm just recode the origin MCC before encoding
	Mnc                                        *int  // not specific in specm just recode the origin MNC before encoding
	UEPolicySectionManagementSubResultContents UEPolicySectionManagementSubResultContents
	// a UE policy section code (UPSC) containing a unique value within the PLMN or SNPN selected by the PCF.
	UpscGenerator IDGenerator
}

func (*UEPolicySectionManagementSubResult) GetLen

func (*UEPolicySectionManagementSubResult) GetPlmnDigit

func (u *UEPolicySectionManagementSubResult) GetPlmnDigit() (int, int)

func (*UEPolicySectionManagementSubResult) MarshalBinary

func (u *UEPolicySectionManagementSubResult) MarshalBinary() ([]byte, error)

func (*UEPolicySectionManagementSubResult) SetLen

func (u *UEPolicySectionManagementSubResult) SetLen(length uint16)

func (*UEPolicySectionManagementSubResult) SetPlmnDigit

func (u *UEPolicySectionManagementSubResult) SetPlmnDigit(mcc, mnc int) error

type UEPolicySectionManagementSubResultContents

type UEPolicySectionManagementSubResultContents []Result

func (*UEPolicySectionManagementSubResultContents) AppendResult

func (*UEPolicySectionManagementSubResultContents) MarshalBinary

func (u *UEPolicySectionManagementSubResultContents) MarshalBinary() ([]byte, error)

Marshal Strcuture into byte slice

func (*UEPolicySectionManagementSubResultContents) UnmarshalBinary

func (u *UEPolicySectionManagementSubResultContents) UnmarshalBinary(b []byte) error

UnMarshal byte slice into Strctute

type UePolDeliveryHeader

type UePolDeliveryHeader struct {
	Octet [2]uint8
}

func (*UePolDeliveryHeader) GetHeaderMessageType

func (u *UePolDeliveryHeader) GetHeaderMessageType() (messageType uint8)

func (*UePolDeliveryHeader) GetHeaderPTI

func (u *UePolDeliveryHeader) GetHeaderPTI() (pTI uint8)

PTI(Procedure transaction identity)

func (*UePolDeliveryHeader) SetHeaderMessageType

func (u *UePolDeliveryHeader) SetHeaderMessageType(messageType uint8)

func (*UePolDeliveryHeader) SetHeaderPTI

func (u *UePolDeliveryHeader) SetHeaderPTI(PTI uint8)

PTI(Procedure transaction identity) is assign by PCF

type UePolDeliverySer

type UePolDeliverySer struct {
	UePolDeliveryHeader
	*ManageUEPolicyCommand  // D.2.1.2 Network-requested UE policy management procedure initiation
	*ManageUEPolicyComplete // D.2.1.3 Network-requested UE policy management procedure accepted by the UE
	*ManageUEPolicyReject   // D.2.1.4 Network-requested UE policy management procedure not accepted by the UE

}

TS 124 501 V17.7.1, page.893, UE policy delivery service

func NewUePolDeliverySer

func NewUePolDeliverySer() *UePolDeliverySer

func (*UePolDeliverySer) UePolDeliverySerDecode

func (u *UePolDeliverySer) UePolDeliverySerDecode(byteArray []byte) error

TODO: add other Decoding processes

func (*UePolDeliverySer) UePolDeliverySerEncode

func (u *UePolDeliverySer) UePolDeliverySerEncode() ([]byte, error)

TODO: add other Encoding processes

type UePolicyContainer

type UePolicyContainer = UePolDeliverySer

UePolicyContainer is a kind of NAS_DLTransport message UePolicyContainer maps to UE_policy_delivery_service TS 124 501 V17.7.1, page.760, Table 9.11.3.39.1: Payload container information element

type UePolicyDeliveryServiceMsgType

type UePolicyDeliveryServiceMsgType struct {
	Octet uint8
}

TS24.501 v17.7.1, D.6.1

func (*UePolicyDeliveryServiceMsgType) GetMessageIdentity

func (m *UePolicyDeliveryServiceMsgType) GetMessageIdentity(MessageIdentity uint8) uint8

func (*UePolicyDeliveryServiceMsgType) SetMessageIdentity

func (m *UePolicyDeliveryServiceMsgType) SetMessageIdentity(MessageIdentity uint8)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL