From c6b7de46d30b43677a1ea2e7b99a4f7c4d9464d9 Mon Sep 17 00:00:00 2001 From: Guillaume Belanger Date: Mon, 8 Jan 2024 18:01:19 -0500 Subject: [PATCH] chore: Re-organises message serialization --- README.md | 2 +- client/client.go | 42 +++++++++++++----------- client/client_test.go | 2 +- ie/ie.go | 9 ++--- main.go | 2 +- messages/header.go | 11 ------- messages/heartbeat.go | 18 ++++++++++ messages/messages.go | 14 ++++++++ messages/pfcp_association_release.go | 18 ++++++++++ messages/pfcp_association_setup.go | 18 ++++++++++ messages/pfcp_association_update.go | 18 ++++++++++ messages/pfcp_node_report.go | 18 ++++++++++ messages/pfcp_session_deletion.go | 21 +++++++++++- messages/pfcp_session_establishment.go | 18 ++++++++++ messages/pfcp_session_report.go | 20 ++++++++++- tests/heartbeat_test.go | 6 ++-- tests/pfcp_association_release_test.go | 4 +-- tests/pfcp_association_setup_test.go | 4 +-- tests/pfcp_association_update_test.go | 4 +-- tests/pfcp_node_report_test.go | 4 +-- tests/pfcp_session_deletion_test.go | 4 +-- tests/pfcp_session_establishment_test.go | 4 +-- tests/pfcp_session_report_test.go | 4 +-- 23 files changed, 206 insertions(+), 59 deletions(-) diff --git a/README.md b/README.md index 59ddc77..e9ec4a1 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ func main() { heartbeatRequestMsg := messages.HeartbeatRequest{ RecoveryTimeStamp: recoveryTimeStamp, } - pfcpClient.SendHeartbeatRequest(heartbeatRequestMsg, sequenceNumber) + pfcpClient.SendHeartbeatRequest(&heartbeatRequestMsg, sequenceNumber) } ``` diff --git a/client/client.go b/client/client.go index a9ce076..c9576f0 100644 --- a/client/client.go +++ b/client/client.go @@ -24,17 +24,19 @@ func New(ServerAddress string) *Pfcp { func (pfcp *Pfcp) sendNodePfcpMessage(message messages.PFCPMessage, sequenceNumber uint32) error { messageType := message.GetMessageType() header := messages.NewNodeHeader(messageType, sequenceNumber) - return pfcp.sendPfcpMessage(message, header) + message.SetHeader(header) + return pfcp.sendPfcpMessage(message) } func (pfcp *Pfcp) sendSessionPfcpMessage(message messages.PFCPMessage, seid uint64, sequenceNumber uint32) error { messageType := message.GetMessageType() header := messages.NewSessionHeader(messageType, seid, sequenceNumber) - return pfcp.sendPfcpMessage(message, header) + message.SetHeader(header) + return pfcp.sendPfcpMessage(message) } -func (pfcp *Pfcp) sendPfcpMessage(message messages.PFCPMessage, header messages.Header) error { - payload := messages.Serialize(message, header) +func (pfcp *Pfcp) sendPfcpMessage(message messages.PFCPMessage) error { + payload := messages.Serialize(message) if err := pfcp.Udp.Send(payload); err != nil { log.Printf("Failed to send PFCP: %v\n", err) return err @@ -43,66 +45,66 @@ func (pfcp *Pfcp) sendPfcpMessage(message messages.PFCPMessage, header messages. return nil } -func (pfcp *Pfcp) SendHeartbeatRequest(msg messages.HeartbeatRequest, sequenceNumber uint32) error { +func (pfcp *Pfcp) SendHeartbeatRequest(msg *messages.HeartbeatRequest, sequenceNumber uint32) error { return pfcp.sendNodePfcpMessage(msg, sequenceNumber) } -func (pfcp *Pfcp) SendHeartbeatResponse(msg messages.HeartbeatResponse, sequenceNumber uint32) error { +func (pfcp *Pfcp) SendHeartbeatResponse(msg *messages.HeartbeatResponse, sequenceNumber uint32) error { return pfcp.sendNodePfcpMessage(msg, sequenceNumber) } -func (pfcp *Pfcp) SendPFCPAssociationSetupRequest(msg messages.PFCPAssociationSetupRequest, sequenceNumber uint32) error { +func (pfcp *Pfcp) SendPFCPAssociationSetupRequest(msg *messages.PFCPAssociationSetupRequest, sequenceNumber uint32) error { return pfcp.sendNodePfcpMessage(msg, sequenceNumber) } -func (pfcp *Pfcp) SendPFCPAssociationSetupResponse(msg messages.PFCPAssociationSetupResponse, sequenceNumber uint32) error { +func (pfcp *Pfcp) SendPFCPAssociationSetupResponse(msg *messages.PFCPAssociationSetupResponse, sequenceNumber uint32) error { return pfcp.sendNodePfcpMessage(msg, sequenceNumber) } -func (pfcp *Pfcp) SendPFCPAssociationUpdateRequest(msg messages.PFCPAssociationUpdateRequest, sequenceNumber uint32) error { +func (pfcp *Pfcp) SendPFCPAssociationUpdateRequest(msg *messages.PFCPAssociationUpdateRequest, sequenceNumber uint32) error { return pfcp.sendNodePfcpMessage(msg, sequenceNumber) } -func (pfcp *Pfcp) SendPFCPAssociationUpdateResponse(msg messages.PFCPAssociationUpdateResponse, sequenceNumber uint32) error { +func (pfcp *Pfcp) SendPFCPAssociationUpdateResponse(msg *messages.PFCPAssociationUpdateResponse, sequenceNumber uint32) error { return pfcp.sendNodePfcpMessage(msg, sequenceNumber) } -func (pfcp *Pfcp) SendPFCPAssociationReleaseRequest(msg messages.PFCPAssociationReleaseRequest, sequenceNumber uint32) error { +func (pfcp *Pfcp) SendPFCPAssociationReleaseRequest(msg *messages.PFCPAssociationReleaseRequest, sequenceNumber uint32) error { return pfcp.sendNodePfcpMessage(msg, sequenceNumber) } -func (pfcp *Pfcp) SendPFCPAssociationReleaseResponse(msg messages.PFCPAssociationReleaseResponse, sequenceNumber uint32) error { +func (pfcp *Pfcp) SendPFCPAssociationReleaseResponse(msg *messages.PFCPAssociationReleaseResponse, sequenceNumber uint32) error { return pfcp.sendNodePfcpMessage(msg, sequenceNumber) } -func (pfcp *Pfcp) SendPFCPNodeReportRequest(msg messages.PFCPNodeReportRequest, sequenceNumber uint32) error { +func (pfcp *Pfcp) SendPFCPNodeReportRequest(msg *messages.PFCPNodeReportRequest, sequenceNumber uint32) error { return pfcp.sendNodePfcpMessage(msg, sequenceNumber) } -func (pfcp *Pfcp) SendPFCPNodeReportResponse(msg messages.PFCPNodeReportResponse, sequenceNumber uint32) error { +func (pfcp *Pfcp) SendPFCPNodeReportResponse(msg *messages.PFCPNodeReportResponse, sequenceNumber uint32) error { return pfcp.sendNodePfcpMessage(msg, sequenceNumber) } -func (pfcp *Pfcp) SendPFCPSessionEstablishmentRequest(msg messages.PFCPSessionEstablishmentRequest, seid uint64, sequenceNumber uint32) error { +func (pfcp *Pfcp) SendPFCPSessionEstablishmentRequest(msg *messages.PFCPSessionEstablishmentRequest, seid uint64, sequenceNumber uint32) error { return pfcp.sendSessionPfcpMessage(msg, seid, sequenceNumber) } -func (pfcp *Pfcp) SendPFCPSessionEstablishmentResponse(msg messages.PFCPSessionEstablishmentResponse, seid uint64, sequenceNumber uint32) error { +func (pfcp *Pfcp) SendPFCPSessionEstablishmentResponse(msg *messages.PFCPSessionEstablishmentResponse, seid uint64, sequenceNumber uint32) error { return pfcp.sendSessionPfcpMessage(msg, seid, sequenceNumber) } -func (pfcp *Pfcp) SendPFCPSessionDeletionRequest(msg messages.PFCPSessionDeletionRequest, seid uint64, sequenceNumber uint32) error { +func (pfcp *Pfcp) SendPFCPSessionDeletionRequest(msg *messages.PFCPSessionDeletionRequest, seid uint64, sequenceNumber uint32) error { return pfcp.sendSessionPfcpMessage(msg, seid, sequenceNumber) } -func (pfcp *Pfcp) SendPFCPSessionDeletionResponse(msg messages.PFCPSessionDeletionResponse, seid uint64, sequenceNumber uint32) error { +func (pfcp *Pfcp) SendPFCPSessionDeletionResponse(msg *messages.PFCPSessionDeletionResponse, seid uint64, sequenceNumber uint32) error { return pfcp.sendSessionPfcpMessage(msg, seid, sequenceNumber) } -func (pfcp *Pfcp) SendPFCPSessionReportRequest(msg messages.PFCPSessionReportRequest, seid uint64, sequenceNumber uint32) error { +func (pfcp *Pfcp) SendPFCPSessionReportRequest(msg *messages.PFCPSessionReportRequest, seid uint64, sequenceNumber uint32) error { return pfcp.sendSessionPfcpMessage(msg, seid, sequenceNumber) } -func (pfcp *Pfcp) SendPFCPSessionReportResponse(msg messages.PFCPSessionReportResponse, seid uint64, sequenceNumber uint32) error { +func (pfcp *Pfcp) SendPFCPSessionReportResponse(msg *messages.PFCPSessionReportResponse, seid uint64, sequenceNumber uint32) error { return pfcp.sendSessionPfcpMessage(msg, seid, sequenceNumber) } diff --git a/client/client_test.go b/client/client_test.go index 6671d5c..1dae4fd 100644 --- a/client/client_test.go +++ b/client/client_test.go @@ -36,7 +36,7 @@ func TestGivenPfcpWhenSendHeartbeatRequestThenNoError(t *testing.T) { RecoveryTimeStamp: recoveryTimeStamp, } - err = pfcpClient.SendHeartbeatRequest(heartbeatRequestMsg, sequenceNumber) + err = pfcpClient.SendHeartbeatRequest(&heartbeatRequestMsg, sequenceNumber) if err != nil { t.Errorf("SendHeartbeatRequest failed: %v", err) diff --git a/ie/ie.go b/ie/ie.go index c9e0451..dff71b6 100644 --- a/ie/ie.go +++ b/ie/ie.go @@ -42,14 +42,11 @@ func DeserializeInformationElements(b []byte) ([]InformationElement, error) { return nil, fmt.Errorf("not enough bytes for IE header") } - ieType := IEType(binary.BigEndian.Uint16(b[index : index+2])) - ieLength := binary.BigEndian.Uint16(b[index+2 : index+4]) - index += HeaderLength - ieHeader := Header{ - Type: ieType, - Length: ieLength, + Type: IEType(binary.BigEndian.Uint16(b[index : index+2])), + Length: binary.BigEndian.Uint16(b[index+2 : index+4]), } + index += HeaderLength if len(b[index:]) < int(ieHeader.Length) { return nil, fmt.Errorf("not enough bytes for IE data, expected %d, got %d", ieHeader.Length, len(b[index:])) diff --git a/main.go b/main.go index b6c50e7..5f2fc2d 100644 --- a/main.go +++ b/main.go @@ -24,7 +24,7 @@ func main() { RecoveryTimeStamp: recoveryTimeStamp, } sequenceNumber := uint32(1) - err = pfcpClient.SendPFCPAssociationSetupRequest(message, sequenceNumber) + err = pfcpClient.SendPFCPAssociationSetupRequest(&message, sequenceNumber) if err != nil { fmt.Printf("Error sending Heartbeat Request: %v", err) } diff --git a/messages/header.go b/messages/header.go index 38f272a..f9eac22 100644 --- a/messages/header.go +++ b/messages/header.go @@ -94,17 +94,6 @@ func (header Header) Serialize() []byte { return buf.Bytes() } -func Serialize(message PFCPMessage, messageHeader Header) []byte { - var payload []byte - ies := message.GetIEs() - for _, element := range ies { - payload = append(payload, element.Serialize()...) - } - messageHeader.MessageLength = uint16(len(payload)) - headerBytes := messageHeader.Serialize() - return append(headerBytes, payload...) -} - func DeserializeHeader(data []byte) (Header, error) { const baseHeaderSize = 8 // Base size for node-related messages const seidSize = 8 // Size of SEID field diff --git a/messages/heartbeat.go b/messages/heartbeat.go index bceb6e6..581d244 100644 --- a/messages/heartbeat.go +++ b/messages/heartbeat.go @@ -5,11 +5,13 @@ import ( ) type HeartbeatRequest struct { + Header Header RecoveryTimeStamp ie.RecoveryTimeStamp // Mandatory SourceIPAddress ie.SourceIPAddress // Optional } type HeartbeatResponse struct { + Header Header RecoveryTimeStamp ie.RecoveryTimeStamp // Mandatory } @@ -62,6 +64,22 @@ func DeserializeHeartbeatRequest(data []byte) (HeartbeatRequest, error) { }, err } +func (msg HeartbeatRequest) GetHeader() Header { + return msg.Header +} + +func (msg HeartbeatResponse) GetHeader() Header { + return msg.Header +} + +func (msg *HeartbeatRequest) SetHeader(header Header) { + msg.Header = header +} + +func (msg *HeartbeatResponse) SetHeader(header Header) { + msg.Header = header +} + func DeserializeHeartbeatResponse(data []byte) (HeartbeatResponse, error) { ies, err := ie.DeserializeInformationElements(data) var recoveryTimeStamp ie.RecoveryTimeStamp diff --git a/messages/messages.go b/messages/messages.go index 7190b97..fac13eb 100644 --- a/messages/messages.go +++ b/messages/messages.go @@ -26,7 +26,21 @@ const ( ) type PFCPMessage interface { + GetHeader() Header GetIEs() []ie.InformationElement GetMessageType() MessageType GetMessageTypeString() string + SetHeader(Header) +} + +func Serialize(msg PFCPMessage) []byte { + var payload []byte + messageHeader := msg.GetHeader() + ies := msg.GetIEs() + for _, element := range ies { + payload = append(payload, element.Serialize()...) + } + messageHeader.MessageLength = uint16(len(payload)) + headerBytes := messageHeader.Serialize() + return append(headerBytes, payload...) } diff --git a/messages/pfcp_association_release.go b/messages/pfcp_association_release.go index 9dc3b51..aba1868 100644 --- a/messages/pfcp_association_release.go +++ b/messages/pfcp_association_release.go @@ -3,10 +3,12 @@ package messages import "github.com/dot-5g/pfcp/ie" type PFCPAssociationReleaseRequest struct { + Header Header NodeID ie.NodeID // Mandatory } type PFCPAssociationReleaseResponse struct { + Header Header NodeID ie.NodeID // Mandatory Cause ie.Cause // Mandatory } @@ -35,6 +37,22 @@ func (msg PFCPAssociationReleaseResponse) GetMessageTypeString() string { return "PFCP Association Release Response" } +func (msg *PFCPAssociationReleaseRequest) SetHeader(h Header) { + msg.Header = h +} + +func (msg *PFCPAssociationReleaseResponse) SetHeader(h Header) { + msg.Header = h +} + +func (msg PFCPAssociationReleaseRequest) GetHeader() Header { + return msg.Header +} + +func (msg PFCPAssociationReleaseResponse) GetHeader() Header { + return msg.Header +} + func DeserializePFCPAssociationReleaseRequest(data []byte) (PFCPAssociationReleaseRequest, error) { ies, err := ie.DeserializeInformationElements(data) var nodeID ie.NodeID diff --git a/messages/pfcp_association_setup.go b/messages/pfcp_association_setup.go index 3ba3457..dc0e713 100644 --- a/messages/pfcp_association_setup.go +++ b/messages/pfcp_association_setup.go @@ -5,12 +5,14 @@ import ( ) type PFCPAssociationSetupRequest struct { + Header Header NodeID ie.NodeID // Mandatory RecoveryTimeStamp ie.RecoveryTimeStamp // Mandatory UPFunctionFeatures ie.UPFunctionFeatures // Conditional } type PFCPAssociationSetupResponse struct { + Header Header NodeID ie.NodeID // Mandatory Cause ie.Cause // Mandatory RecoveryTimeStamp ie.RecoveryTimeStamp // Mandatory @@ -46,6 +48,22 @@ func (msg PFCPAssociationSetupResponse) GetMessageTypeString() string { return "PFCP Association Setup Response" } +func (msg *PFCPAssociationSetupRequest) SetHeader(h Header) { + msg.Header = h +} + +func (msg *PFCPAssociationSetupResponse) SetHeader(h Header) { + msg.Header = h +} + +func (msg PFCPAssociationSetupRequest) GetHeader() Header { + return msg.Header +} + +func (msg PFCPAssociationSetupResponse) GetHeader() Header { + return msg.Header +} + func DeserializePFCPAssociationSetupRequest(data []byte) (PFCPAssociationSetupRequest, error) { ies, err := ie.DeserializeInformationElements(data) var nodeID ie.NodeID diff --git a/messages/pfcp_association_update.go b/messages/pfcp_association_update.go index 737448e..9e6fb02 100644 --- a/messages/pfcp_association_update.go +++ b/messages/pfcp_association_update.go @@ -3,10 +3,12 @@ package messages import "github.com/dot-5g/pfcp/ie" type PFCPAssociationUpdateRequest struct { + Header Header NodeID ie.NodeID // Mandatory } type PFCPAssociationUpdateResponse struct { + Header Header NodeID ie.NodeID // Mandatory Cause ie.Cause // Mandatory } @@ -35,6 +37,22 @@ func (msg PFCPAssociationUpdateResponse) GetMessageTypeString() string { return "PFCP Association Update Response" } +func (msg *PFCPAssociationUpdateRequest) SetHeader(h Header) { + msg.Header = h +} + +func (msg *PFCPAssociationUpdateResponse) SetHeader(h Header) { + msg.Header = h +} + +func (msg PFCPAssociationUpdateRequest) GetHeader() Header { + return msg.Header +} + +func (msg PFCPAssociationUpdateResponse) GetHeader() Header { + return msg.Header +} + func DeserializePFCPAssociationUpdateRequest(data []byte) (PFCPAssociationUpdateRequest, error) { ies, err := ie.DeserializeInformationElements(data) var nodeID ie.NodeID diff --git a/messages/pfcp_node_report.go b/messages/pfcp_node_report.go index d8e35c9..41dde87 100644 --- a/messages/pfcp_node_report.go +++ b/messages/pfcp_node_report.go @@ -5,11 +5,13 @@ import ( ) type PFCPNodeReportRequest struct { + Header Header NodeID ie.NodeID // Mandatory NodeReportType ie.NodeReportType // Mandatory } type PFCPNodeReportResponse struct { + Header Header NodeID ie.NodeID // Mandatory Cause ie.Cause // Mandatory } @@ -38,6 +40,22 @@ func (msg PFCPNodeReportResponse) GetMessageTypeString() string { return "PFCP Node Report Response" } +func (msg *PFCPNodeReportRequest) SetHeader(h Header) { + msg.Header = h +} + +func (msg *PFCPNodeReportResponse) SetHeader(h Header) { + msg.Header = h +} + +func (msg PFCPNodeReportRequest) GetHeader() Header { + return msg.Header +} + +func (msg PFCPNodeReportResponse) GetHeader() Header { + return msg.Header +} + func DeserializePFCPNodeReportRequest(data []byte) (PFCPNodeReportRequest, error) { ies, err := ie.DeserializeInformationElements(data) var nodeID ie.NodeID diff --git a/messages/pfcp_session_deletion.go b/messages/pfcp_session_deletion.go index efd71da..c9302fa 100644 --- a/messages/pfcp_session_deletion.go +++ b/messages/pfcp_session_deletion.go @@ -2,9 +2,12 @@ package messages import "github.com/dot-5g/pfcp/ie" -type PFCPSessionDeletionRequest struct{} +type PFCPSessionDeletionRequest struct { + Header Header +} type PFCPSessionDeletionResponse struct { + Header Cause ie.Cause // Mandatory } @@ -32,6 +35,22 @@ func (msg PFCPSessionDeletionResponse) GetMessageTypeString() string { return "PFCP Session Deletion Response" } +func (msg *PFCPSessionDeletionRequest) SetHeader(h Header) { + msg.Header = h +} + +func (msg *PFCPSessionDeletionResponse) SetHeader(h Header) { + msg.Header = h +} + +func (msg PFCPSessionDeletionRequest) GetHeader() Header { + return msg.Header +} + +func (msg PFCPSessionDeletionResponse) GetHeader() Header { + return msg.Header +} + func DeserializePFCPSessionDeletionRequest(data []byte) (PFCPSessionDeletionRequest, error) { return PFCPSessionDeletionRequest{}, nil } diff --git a/messages/pfcp_session_establishment.go b/messages/pfcp_session_establishment.go index 533860c..0a9af5d 100644 --- a/messages/pfcp_session_establishment.go +++ b/messages/pfcp_session_establishment.go @@ -3,6 +3,7 @@ package messages import "github.com/dot-5g/pfcp/ie" type PFCPSessionEstablishmentRequest struct { + Header Header NodeID ie.NodeID // Mandatory CPFSEID ie.FSEID // Mandatory CreatePDR ie.CreatePDR // Mandatory @@ -10,6 +11,7 @@ type PFCPSessionEstablishmentRequest struct { } type PFCPSessionEstablishmentResponse struct { + Header Header NodeID ie.NodeID // Mandatory Cause ie.Cause // Mandatory } @@ -38,6 +40,22 @@ func (msg PFCPSessionEstablishmentResponse) GetMessageTypeString() string { return "PFCP Session Establishment Response" } +func (msg *PFCPSessionEstablishmentRequest) SetHeader(h Header) { + msg.Header = h +} + +func (msg *PFCPSessionEstablishmentResponse) SetHeader(h Header) { + msg.Header = h +} + +func (msg PFCPSessionEstablishmentRequest) GetHeader() Header { + return msg.Header +} + +func (msg PFCPSessionEstablishmentResponse) GetHeader() Header { + return msg.Header +} + func DeserializePFCPSessionEstablishmentRequest(data []byte) (PFCPSessionEstablishmentRequest, error) { ies, err := ie.DeserializeInformationElements(data) var nodeID ie.NodeID diff --git a/messages/pfcp_session_report.go b/messages/pfcp_session_report.go index 8cddeec..38b34cc 100644 --- a/messages/pfcp_session_report.go +++ b/messages/pfcp_session_report.go @@ -3,11 +3,13 @@ package messages import "github.com/dot-5g/pfcp/ie" type PFCPSessionReportRequest struct { + Header Header ReportType ie.ReportType // Mandatory } type PFCPSessionReportResponse struct { - Cause ie.Cause // Mandatory + Header Header + Cause ie.Cause // Mandatory } func (msg PFCPSessionReportRequest) GetIEs() []ie.InformationElement { @@ -34,6 +36,22 @@ func (msg PFCPSessionReportResponse) GetMessageTypeString() string { return "PFCP Session Report Response" } +func (msg *PFCPSessionReportRequest) SetHeader(h Header) { + msg.Header = h +} + +func (msg *PFCPSessionReportResponse) SetHeader(h Header) { + msg.Header = h +} + +func (msg PFCPSessionReportRequest) GetHeader() Header { + return msg.Header +} + +func (msg PFCPSessionReportResponse) GetHeader() Header { + return msg.Header +} + func DeserializePFCPSessionReportRequest(data []byte) (PFCPSessionReportRequest, error) { ies, err := ie.DeserializeInformationElements(data) var reportType ie.ReportType diff --git a/tests/heartbeat_test.go b/tests/heartbeat_test.go index 0bb148d..a8384b6 100644 --- a/tests/heartbeat_test.go +++ b/tests/heartbeat_test.go @@ -85,7 +85,7 @@ func HeartbeatRequest(t *testing.T) { time.Sleep(time.Second) pfcpClient := client.New("127.0.0.1:8805") - err = pfcpClient.SendHeartbeatRequest(heartbeatRequestMsg, sentSequenceNumber) + err = pfcpClient.SendHeartbeatRequest(&heartbeatRequestMsg, sentSequenceNumber) if err != nil { t.Fatalf("Failed to send Heartbeat request: %v", err) } @@ -133,7 +133,7 @@ func HeartbeatRequestWithSourceIPAddress(t *testing.T) { time.Sleep(time.Second) pfcpClient := client.New("127.0.0.1:8805") - err = pfcpClient.SendHeartbeatRequest(heartbeatRequestMsg, sentSequenceNumber) + err = pfcpClient.SendHeartbeatRequest(&heartbeatRequestMsg, sentSequenceNumber) if err != nil { t.Fatalf("Failed to send Heartbeat request: %v", err) } @@ -194,7 +194,7 @@ func HeartbeatResponse(t *testing.T) { time.Sleep(time.Second) pfcpClient := client.New("127.0.0.1:8805") - err = pfcpClient.SendHeartbeatResponse(heartbeatResponseMsg, sentSequenceNumber) + err = pfcpClient.SendHeartbeatResponse(&heartbeatResponseMsg, sentSequenceNumber) if err != nil { t.Fatalf("Failed to send Heartbeat response: %v", err) } diff --git a/tests/pfcp_association_release_test.go b/tests/pfcp_association_release_test.go index b4be08b..5406304 100644 --- a/tests/pfcp_association_release_test.go +++ b/tests/pfcp_association_release_test.go @@ -69,7 +69,7 @@ func PFCPAssociationReleaseRequest(t *testing.T) { NodeID: nodeID, } - pfcpClient.SendPFCPAssociationReleaseRequest(PFCPAssociationReleaseRequestMsg, sequenceNumber) + pfcpClient.SendPFCPAssociationReleaseRequest(&PFCPAssociationReleaseRequestMsg, sequenceNumber) time.Sleep(time.Second) @@ -131,7 +131,7 @@ func PFCPAssociationReleaseResponse(t *testing.T) { Cause: cause, } - pfcpClient.SendPFCPAssociationReleaseResponse(PFCPAssociationReleaseResponseMsg, sequenceNumber) + pfcpClient.SendPFCPAssociationReleaseResponse(&PFCPAssociationReleaseResponseMsg, sequenceNumber) time.Sleep(time.Second) diff --git a/tests/pfcp_association_setup_test.go b/tests/pfcp_association_setup_test.go index 9351653..9584d72 100644 --- a/tests/pfcp_association_setup_test.go +++ b/tests/pfcp_association_setup_test.go @@ -93,7 +93,7 @@ func PFCPAssociationSetupRequest(t *testing.T) { UPFunctionFeatures: upFeatures, } - pfcpClient.SendPFCPAssociationSetupRequest(PFCPAssociationSetupRequestMsg, sequenceNumber) + pfcpClient.SendPFCPAssociationSetupRequest(&PFCPAssociationSetupRequestMsg, sequenceNumber) time.Sleep(time.Second) @@ -183,7 +183,7 @@ func PFCPAssociationSetupResponse(t *testing.T) { RecoveryTimeStamp: recoveryTimeStamp, } - pfcpClient.SendPFCPAssociationSetupResponse(PFCPAssociationSetupResponseMsg, sequenceNumber) + pfcpClient.SendPFCPAssociationSetupResponse(&PFCPAssociationSetupResponseMsg, sequenceNumber) time.Sleep(time.Second) diff --git a/tests/pfcp_association_update_test.go b/tests/pfcp_association_update_test.go index bbf8af8..c4dda66 100644 --- a/tests/pfcp_association_update_test.go +++ b/tests/pfcp_association_update_test.go @@ -69,7 +69,7 @@ func PFCPAssociationUpdateRequest(t *testing.T) { NodeID: nodeID, } - pfcpClient.SendPFCPAssociationUpdateRequest(PFCPAssociationUpdateRequestMsg, sequenceNumber) + pfcpClient.SendPFCPAssociationUpdateRequest(&PFCPAssociationUpdateRequestMsg, sequenceNumber) time.Sleep(time.Second) @@ -131,7 +131,7 @@ func PFCPAssociationUpdateResponse(t *testing.T) { Cause: cause, } - pfcpClient.SendPFCPAssociationUpdateResponse(PFCPAssociationUpdateResponseMsg, sequenceNumber) + pfcpClient.SendPFCPAssociationUpdateResponse(&PFCPAssociationUpdateResponseMsg, sequenceNumber) time.Sleep(time.Second) diff --git a/tests/pfcp_node_report_test.go b/tests/pfcp_node_report_test.go index 2a76139..a1cf340 100644 --- a/tests/pfcp_node_report_test.go +++ b/tests/pfcp_node_report_test.go @@ -83,7 +83,7 @@ func PFCPNodeReportRequest(t *testing.T) { NodeReportType: nodeReportType, } - pfcpClient.SendPFCPNodeReportRequest(PFCPNodeReportRequestMsg, sequenceNumber) + pfcpClient.SendPFCPNodeReportRequest(&PFCPNodeReportRequestMsg, sequenceNumber) time.Sleep(time.Second) @@ -169,7 +169,7 @@ func PFCPNodeReportResponse(t *testing.T) { Cause: cause, } - pfcpClient.SendPFCPNodeReportResponse(PFCPNodeReportResponseMsg, sequenceNumber) + pfcpClient.SendPFCPNodeReportResponse(&PFCPNodeReportResponseMsg, sequenceNumber) time.Sleep(time.Second) diff --git a/tests/pfcp_session_deletion_test.go b/tests/pfcp_session_deletion_test.go index 8ffe15d..9d99f39 100644 --- a/tests/pfcp_session_deletion_test.go +++ b/tests/pfcp_session_deletion_test.go @@ -61,7 +61,7 @@ func PFCPSessionDeletionRequest(t *testing.T) { seid := uint64(1234567890) sequenceNumber := uint32(32) - err := pfcpClient.SendPFCPSessionDeletionRequest(PFCPSessionDeletionRequestMsg, seid, sequenceNumber) + err := pfcpClient.SendPFCPSessionDeletionRequest(&PFCPSessionDeletionRequestMsg, seid, sequenceNumber) if err != nil { t.Fatalf("Error sending PFCP Session Deletion Request: %v", err) } @@ -97,7 +97,7 @@ func PFCPSessionDeletionResponse(t *testing.T) { seid := uint64(1234567890) sequenceNumber := uint32(31232) - err := pfcpClient.SendPFCPSessionDeletionResponse(PFCPSessionDeletionResponseMsg, seid, sequenceNumber) + err := pfcpClient.SendPFCPSessionDeletionResponse(&PFCPSessionDeletionResponseMsg, seid, sequenceNumber) if err != nil { t.Fatalf("Error sending PFCP Session Deletion Response: %v", err) } diff --git a/tests/pfcp_session_establishment_test.go b/tests/pfcp_session_establishment_test.go index c543093..907eb34 100644 --- a/tests/pfcp_session_establishment_test.go +++ b/tests/pfcp_session_establishment_test.go @@ -130,7 +130,7 @@ func PFCPSessionEstablishmentRequest(t *testing.T) { } sequenceNumber := uint32(32) - err = pfcpClient.SendPFCPSessionEstablishmentRequest(PFCPSessionEstablishmentRequestMsg, seid, sequenceNumber) + err = pfcpClient.SendPFCPSessionEstablishmentRequest(&PFCPSessionEstablishmentRequestMsg, seid, sequenceNumber) if err != nil { t.Fatalf("Error sending PFCP Session Establishment Request: %v", err) } @@ -298,7 +298,7 @@ func PFCPSessionEstablishmentResponse(t *testing.T) { sequenceNumber := uint32(32) seid := uint64(1234567890) - err = pfcpClient.SendPFCPSessionEstablishmentResponse(PFCPSessionEstablishmentResponseMsg, seid, sequenceNumber) + err = pfcpClient.SendPFCPSessionEstablishmentResponse(&PFCPSessionEstablishmentResponseMsg, seid, sequenceNumber) if err != nil { t.Fatalf("Error sending PFCP Session Establishment Response: %v", err) } diff --git a/tests/pfcp_session_report_test.go b/tests/pfcp_session_report_test.go index a69f977..51a0963 100644 --- a/tests/pfcp_session_report_test.go +++ b/tests/pfcp_session_report_test.go @@ -69,7 +69,7 @@ func PFCPSessionReportRequest(t *testing.T) { } seid := uint64(12345) sequenceNumber := uint32(1) - err = pfcpClient.SendPFCPSessionReportRequest(PFCPSessionReportRequestMsg, seid, sequenceNumber) + err = pfcpClient.SendPFCPSessionReportRequest(&PFCPSessionReportRequestMsg, seid, sequenceNumber) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -130,7 +130,7 @@ func PFCPSessionReportResponse(t *testing.T) { } seid := uint64(12345) sequenceNumber := uint32(1) - err = pfcpClient.SendPFCPSessionReportResponse(PFCPSessionReportResponseMsg, seid, sequenceNumber) + err = pfcpClient.SendPFCPSessionReportResponse(&PFCPSessionReportResponseMsg, seid, sequenceNumber) if err != nil { t.Fatalf("Unexpected error: %v", err) }