func NewNodeReportRequest(seq uint32, ies ...*ie.IE) *NodeReportRequest {
	m := &NodeReportRequest{
		Header: NewHeader(
			1, 0, 0, 0,
			MsgTypeNodeReportRequest, 0, seq, 0,
			nil,
		),
	}
	for _, i := range ies {
		switch i.Type {
		case ie.NodeID:
			m.NodeID = i
		case ie.NodeReportType:
			m.NodeReportType = i
		case ie.UserPlanePathFailureReport:
			m.UserPlanePathFailureReport = i
		case ie.UserPlanePathRecoveryReport:
			m.UserPlanePathRecoveryReport = i
		case ie.ClockDriftReport:
			m.ClockDriftReport = append(m.ClockDriftReport, i)
		case ie.GTPUPathQoSReport:
			m.GTPUPathQoSReport = append(m.GTPUPathQoSReport, i)
		default:
			m.IEs = append(m.IEs, i)
		}
	}
	m.SetLength()
	return m
}
NewNodeReportRequest creates a new NodeReportRequest.
package message
import (
	"github.com/wmnsk/go-pfcp/ie"
)
type NodeReportRequest struct {
	*Header
	NodeID                      *ie.IE
	NodeReportType              *ie.IE
	UserPlanePathFailureReport  *ie.IE
	UserPlanePathRecoveryReport *ie.IE
	ClockDriftReport            []*ie.IE
	GTPUPathQoSReport           []*ie.IE
	IEs                         []*ie.IE
}