messages

package
v0.0.0-...-dd13c3c Latest Latest
Warning

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

Go to latest
Published: Feb 8, 2024 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	JSON_HEART_BEAT_SERVER = "jsonHeartBeatServer.json"
	JSON_HEART_BEAT_CLIENT = "jsonHeartBeatClient.json"
)

Variables

View Source
var MessageTypes = make(map[Code]Message)

Functions

func ContainTsidInTelemetrySetup

func ContainTsidInTelemetrySetup(value int, array []TelemetryResponse) int

Check telemetry setup contains tsid value

func Contains

func Contains(stringList []string, target string) bool

string list contains string return bool

func ConvertActivateTypeToString

func ConvertActivateTypeToString(activationType ActivationTypeString) (activationTypeString string)

Convert activation-type to string

func ConvertArrayQueryTypeToArrayString

func ConvertArrayQueryTypeToArrayString(queryTypes QueryTypeArrayString) (queryTypeStringes []string)

Convert array query type to array string

func ConvertAttackSeverityToString

func ConvertAttackSeverityToString(attackSeverity AttackSeverityString) (attackSeverityString string)

Convert attack-severity to string

func ConvertMeasurementIntervalToString

func ConvertMeasurementIntervalToString(measurementInterval IntervalString) (measurementIntervalStr string)

Convert measurement_interval from int to string

func ConvertMeasurementSampleToString

func ConvertMeasurementSampleToString(measurementSample SampleString) (measurementSampleStr string)

Convert measurement_sample from int to string

func ConvertQueryTypeToString

func ConvertQueryTypeToString(queryType int) (queryTypeStr string)

Convert query type to string

func ConvertTargetsRequestToStrings

func ConvertTargetsRequestToStrings(prefixs []string, portRanges []PortRange, protocols []int, fqdns []string, uris []string, aliases []string, spacesn string) (result string)

Convert TagetsRequest to string

func ConvertTargetsResponseToStrings

func ConvertTargetsResponseToStrings(prefixs []string, portRanges []PortRangeResponse, protocols []int, fqdns []string, uris []string, aliases []string, spacesn string) (result string)

Convert TargetsResponse to string

func ConvertUnitToString

func ConvertUnitToString(unit UnitString) (unitStr string)

Convert unit from int to string

func CreateHeartBeatJsonData

func CreateHeartBeatJsonData(jsonFileName string, hbValue bool)

* Create heartbeat json data

func GetLibCoapType

func GetLibCoapType(message string) libcoap.Type

func IsRequest

func IsRequest(message string) bool

* Check if the message is a request.

func MarshalCbor

func MarshalCbor(msg interface{}) ([]byte, error)

func NewHeartBeatMessage

func NewHeartBeatMessage(session libcoap.Session, jsonFileName string, hbValue bool) (*libcoap.Pdu, error)

create new heartbeat message

func ParseTelemetryPreMitigationUriPath

func ParseTelemetryPreMitigationUriPath(uriPath []string) (cuid string, tmid *int, cdid string, err error)

* Get cuid, tmid, cdid value from URI-Path

func ParseURIPath

func ParseURIPath(uriPath []string) (cdid string, cuid string, mid *int, err error)

* Get cuid, mid value from URI-Path

func SupportRequest

func SupportRequest() []string

* return the supported request message types.

func UnmarshalCbor

func UnmarshalCbor(pdu *libcoap.Pdu, typ reflect.Type) (interface{}, error)

Types

type ACL

type ACL struct {
	AclName        string                `json:"acl-name" codec:"23,omitempty"`
	ActivationType *ActivationTypeString `json:"activation-type" codec:"52,omitempty"`
	// contains filtered or unexported fields
}

type Acl

type Acl struct {
	AclName string `json:"acl-name" codec:"23,omitempty"`
	AclType string `json:"acl-type" codec:"24,omitempty"`
	// contains filtered or unexported fields
}

Acl filtering rule for white list that conflict with attacking target (not implemented)

type ActivationType

type ActivationType string
const (
	ACTIVATE_WHEN_MITIGATING ActivationType = "activate-when-mitigating"
	IMMEDIATE                ActivationType = "immediate"
	DEACTIVATE               ActivationType = "deactivate"
)

type ActivationTypeString

type ActivationTypeString int

ActivationTypeString to convert value from string (json) to int (cbor)

and to convert value from int (cbor) to string (json)
const (
	ActivateWhenMitigating ActivationTypeString = iota + 1
	Immediate
	Deactive
)

func ConvertActivateTypeToInt

func ConvertActivateTypeToInt(activationType string) (activationTypeInt ActivationTypeString)

Convert activation-type to int

func (ActivationTypeString) MarshalJSON

func (at ActivationTypeString) MarshalJSON() ([]byte, error)

func (*ActivationTypeString) UnmarshalJSON

func (at *ActivationTypeString) UnmarshalJSON(data []byte) error

type AttackDetail

type AttackDetail struct {
	VendorId          *uint32                   `json:"vendor-id" codec:"202,omitempty"`
	AttackId          *uint32                   `json:"attack-id" codec:"164,omitempty"`
	DescriptionLang   *string                   `json:"description-lang" codec:"210,omitempty"`
	AttackDescription *string                   `json:"attack-description" codec:"165,omitempty"`
	AttackSeverity    *AttackSeverityString     `json:"attack-severity" codec:"166,omitempty"`
	StartTime         *Uint64String             `json:"start-time" type:"string" codec:"167,omitempty"`
	EndTime           *Uint64String             `json:"end-time" codec:"168,omitempty"`
	SourceCount       *PercentilePeakAndCurrent `json:"source-count" codec:"169,omitempty"`
	TopTalKer         *TopTalker                `json:"top-talker" codec:"170,omitempty"`
	// contains filtered or unexported fields
}

func (AttackDetail) String

func (ad AttackDetail) String(spacesn string) (result string)

Convert AttackDetail to String

type AttackDetailResponse

type AttackDetailResponse struct {
	VendorId          int                               `json:"vendor-id" codec:"202,omitempty"`
	AttackId          int                               `json:"attack-id" codec:"164,omitempty"`
	DescriptionLang   *string                           `json:"description-lang" codec:"210,omitempty"`
	AttackDescription *string                           `json:"attack-description" codec:"165,omitempty"`
	AttackSeverity    AttackSeverityString              `json:"attack-severity" codec:"166,omitempty"`
	StartTime         *Uint64String                     `json:"start-time" codec:"167,omitempty"`
	EndTime           *Uint64String                     `json:"end-time" codec:"168,omitempty"`
	SourceCount       *PercentilePeakAndCurrentResponse `json:"source-count" codec:"169,omitempty"`
	TopTalKer         *TopTalkerResponse                `json:"top-talker" codec:"170,omitempty"`
	// contains filtered or unexported fields
}

func (AttackDetailResponse) String

func (ad AttackDetailResponse) String(spacesn string) (result string)

Convert AttackDetailResponse to String

type AttackSeverity

type AttackSeverity string
const (
	NONE    AttackSeverity = "none"
	LOW     AttackSeverity = "low"
	MEDIUM  AttackSeverity = "medium"
	HIGH    AttackSeverity = "high"
	UNKNOWN AttackSeverity = "unknown"
)

type AttackSeverityString

type AttackSeverityString int

AttackSeverityString to convert value from string (json) to int (cbor)

and to convert value from int (cbor) to string (json)
const (
	None AttackSeverityString = iota + 1
	Low
	Medium
	High
	Unknown
)

func ConvertAttackSeverityToInt

func ConvertAttackSeverityToInt(attackSeverity string) (attackSeverityInt AttackSeverityString)

Convert attack-severity to int

func (AttackSeverityString) MarshalJSON

func (as AttackSeverityString) MarshalJSON() ([]byte, error)

func (*AttackSeverityString) UnmarshalJSON

func (as *AttackSeverityString) UnmarshalJSON(data []byte) error

type Baseline

type Baseline struct {
	Id                             *int                             `json:"id" codec:"163,omitempty"`
	TargetPrefix                   []string                         `json:"target-prefix" codec:"6,omitempty"`
	TargetPortRange                []PortRange                      `json:"target-port-range" codec:"7,omitempty"`
	TargetProtocol                 []int                            `json:"target-protocol" codec:"10,omitempty"`
	TargetFQDN                     []string                         `json:"target-fqdn" codec:"11,omitempty"`
	TargetURI                      []string                         `json:"target-uri" codec:"12,omitempty"`
	AliasName                      []string                         `json:"alias-name" codec:"13,omitempty"`
	TotalTrafficNormal             []Traffic                        `json:"total-traffic-normal" codec:"139,omitempty"`
	TotalTrafficNormalPerProtocol  []TrafficPerProtocol             `json:"total-traffic-normal-per-protocol" codec:"192,omitempty"`
	TotalTrafficNormalPerPort      []TrafficPerPort                 `json:"total-traffic-normal-per-port" codec:"193,omitempty"`
	TotalConnectionCapacity        []TotalConnectionCapacity        `json:"total-connection-capacity" codec:"146,omitempty"`
	TotalConnectionCapacityPerPort []TotalConnectionCapacityPerPort `json:"total-connection-capacity-per-port" codec:"194,omitempty"`
	// contains filtered or unexported fields
}

type BaselineResponse

type BaselineResponse struct {
	Id                             int                                      `json:"id" codec:"163,omitempty"`
	TargetPrefix                   []string                                 `json:"target-prefix" codec:"6,omitempty"`
	TargetPortRange                []PortRangeResponse                      `json:"target-port-range" codec:"7,omitempty"`
	TargetProtocol                 []int                                    `json:"target-protocol" codec:"10,omitempty"`
	TargetFQDN                     []string                                 `json:"target-fqdn" codec:"11,omitempty"`
	TargetURI                      []string                                 `json:"target-uri" codec:"12,omitempty"`
	AliasName                      []string                                 `json:"alias-name" codec:"13,omitempty"`
	TotalTrafficNormal             []TrafficResponse                        `json:"total-traffic-normal" codec:"139,omitempty"`
	TotalTrafficNormalPerProtocol  []TrafficPerProtocolResponse             `json:"total-traffic-normal-per-protocol" codec:"192,omitempty"`
	TotalTrafficNormalPerPort      []TrafficPerPortResponse                 `json:"total-traffic-normal-per-port" codec:"193,omitempty"`
	TotalConnectionCapacity        []TotalConnectionCapacityResponse        `json:"total-connection-capacity" codec:"146,omitempty"`
	TotalConnectionCapacityPerPort []TotalConnectionCapacityPerPortResponse `json:"total-connection-capacity-per-port" codec:"194,omitempty"`
	// contains filtered or unexported fields
}

type ChannelType

type ChannelType int
const (
	SIGNAL ChannelType = iota
	DATA
)

func GetChannelType

func GetChannelType(message string) ChannelType

* obtain channel types from the message names.

type Code

type Code int
const (
	REGISTRATION Code = iota
	REGISTRATION_CANCELLING
	MITIGATION_REQUEST
	SESSION_CONFIGURATION
	MITIGATION_EFFICACY_UPDATES
	MITIGATION_STATUS_UPDATES
	MITIGATION_TERMINATION_REQUEST
	MITIGATION_TERMINATION_STATUS_ACKNOWLEDGEMENT
	HEARTBEAT
	REGISTRATION_CANCELLING_RESPONSE
	REGISTRATION_RESPONSE
	CREATE_IDENTIFIERS
	INSTALL_FILTERING_RULE
	SIGNAL_CHANNEL
	TELEMETRY_SETUP_REQUEST
	TELEMETRY_PRE_MITIGATION_REQUEST
)

func GetCode

func GetCode(message string) Code

* return correspondent message codes from given message names.

func (*Code) PathString

func (c *Code) PathString() string

* return the server path.

func (*Code) Type

func (c *Code) Type() reflect.Type

* return message types according to the message codes.

type ConfigurationResponse

type ConfigurationResponse struct {
	SignalConfigs ConfigurationResponseConfigs `json:"ietf-dots-signal-channel:signal-config" codec:"30"`
	// contains filtered or unexported fields
}

func (*ConfigurationResponse) String

func (m *ConfigurationResponse) String() (result string)

* Parse Session Configuration Response model to string for log * parameter: * m Configuration Response model * return: Configuration Response in string

type ConfigurationResponseConfig

type ConfigurationResponseConfig struct {
	HeartbeatInterval IntCurrentMinMax     `json:"heartbeat-interval" codec:"33"`
	MissingHbAllowed  IntCurrentMinMax     `json:"missing-hb-allowed" codec:"37"`
	MaxRetransmit     IntCurrentMinMax     `json:"max-retransmit"     codec:"38"`
	AckTimeout        DecimalCurrentMinMax `json:"ack-timeout"        codec:"39"`
	AckRandomFactor   DecimalCurrentMinMax `json:"ack-random-factor"  codec:"40"`
	ProbingRate       ProbingRate          `json:"probing-rate"       codec:"50"`
	// The parameters in draft-ietf-dots-robust-blocks
	MaxPayload        IntCurrentMinMax     `json:"ietf-dots-robust-trans:max-payloads" codec:"32776"`
	NonMaxRetransmit  IntCurrentMinMax     `json:"ietf-dots-robust-trans:non-max-retransmit" codec:"32777"`
	NonTimeout        DecimalCurrentMinMax `json:"ietf-dots-robust-trans:non-timeout" codec:"32778"`
	NonReceiveTimeout DecimalCurrentMinMax `json:"ietf-dots-robust-trans:non-receive-timeout" codec:"32779"`
	NonProbingWait    DecimalCurrentMinMax `json:"ietf-dots-robust-trans:non-probing-wait" codec:"32780"`
	NonPartialWait    DecimalCurrentMinMax `json:"ietf-dots-robust-trans:non-partial-wait" codec:"32781"`
	// contains filtered or unexported fields
}

type ConfigurationResponseConfigs

type ConfigurationResponseConfigs struct {
	MitigatingConfig ConfigurationResponseConfig `json:"mitigating-config" codec:"32"`
	IdleConfig       ConfigurationResponseConfig `json:"idle-config"       codec:"44"`
	// contains filtered or unexported fields
}

type ConflictInformation

type ConflictInformation struct {
	ConflictStatus int            `json:"conflict-status" codec:"18,omitempty"`
	ConflictCause  int            `json:"conflict-cause"  codec:"19,omitempty"`
	RetryTimer     int            `json:"retry-timer"     codec:"20,omitempty"`
	ConflictScope  *ConflictScope `json:"conflict-scope"  codec:"21,omitempty"`
	// contains filtered or unexported fields
}

Conflict information for response when mitigation request is rejected by dots server by conflicting with another mitigation

type ConflictScope

type ConflictScope struct {
	TargetPrefix    []string            `json:"target-prefix" codec:"6,omitempty"`
	TargetPortRange []PortRangeResponse `json:"target-port-range" codec:"7,omitempty"`
	TargetProtocol  []int               `json:"target-protocol"   codec:"10,omitempty"`
	FQDN            []string            `json:"target-fqdn" codec:"11,omitempty"`
	URI             []string            `json:"target-uri" codec:"12,omitempty"`
	AliasName       []string            `json:"alias-name" codec:"13,omitempty"`
	AclList         []Acl               `json:"acl-list" codec:"22,omitempty"`
	MitigationId    int                 `json:"mid" codec:"5,omitempty"`
	// contains filtered or unexported fields
}

Conflict scope that contains conflicted scope data

type Content

type Content string
const (
	CONFIG     Content = "c"
	NON_CONFIG Content = "n"
	ALL        Content = "a"
)

type DecimalCurrent

type DecimalCurrent struct {
	CurrentValue *decimal.Decimal `json:"current-value-decimal" codec:"43,omitempty"`
	// contains filtered or unexported fields
}

type DecimalCurrentMinMax

type DecimalCurrentMinMax struct {
	CurrentValue decimal.Decimal `json:"current-value-decimal" codec:"43"`
	MinValue     decimal.Decimal `json:"min-value-decimal"     codec:"42"`
	MaxValue     decimal.Decimal `json:"max-value-decimal"     codec:"41"`
	// contains filtered or unexported fields
}

func (*DecimalCurrentMinMax) SetMinMax

type HeartBeat

type HeartBeat struct {
	PeerHbStatus *bool `json:"peer-hb-status" codec:"51,omitempty"`
	// contains filtered or unexported fields
}

type HeartBeatRequest

type HeartBeatRequest struct {
	HeartBeat HeartBeat `json:"ietf-dots-signal-channel:heartbeat" codec:"49,omitempty"`
	// contains filtered or unexported fields
}

func ValidateHeartBeatMechanism

func ValidateHeartBeatMechanism(request *libcoap.Pdu) (body *HeartBeatRequest, errMsg string)

validate heartbeat mechanism

func (*HeartBeatRequest) String

func (hb *HeartBeatRequest) String() (result string)

* Convert SignalConfigRequest to strings

type ICMPTypeRange

type ICMPTypeRange struct {
	LowerType *int `json:"lower-type" codec:"32771,omitempty"`
	UpperType *int `json:"upper-type" codec:"32772,omitempty"`
	// contains filtered or unexported fields
}

type ICMPTypeRangeResponse

type ICMPTypeRangeResponse struct {
	LowerType int  `json:"lower-type" codec:"32771,omitempty"`
	UpperType *int `json:"upper-type" codec:"32772,omitempty"`
	// contains filtered or unexported fields
}

type IntCurrent

type IntCurrent struct {
	CurrentValue *int `json:"current-value" codec:"36,omitempty"`
	// contains filtered or unexported fields
}

type IntCurrentMinMax

type IntCurrentMinMax struct {
	CurrentValue int `json:"current-value" codec:"36"`
	MinValue     int `json:"min-value"     codec:"35"`
	MaxValue     int `json:"max-value"     codec:"34"`
	// contains filtered or unexported fields
}

func (*IntCurrentMinMax) SetMinMax

func (v *IntCurrentMinMax) SetMinMax(pr *config.IntegerParameterRange)

type Interval

type Interval string
const (
	FIVE_MINUTES_INTERVAL   Interval = "5-minutes"
	TEN_MINUTES_INTERVAL    Interval = "10-minutes"
	THIRTY_MINUTES_INTERVAL Interval = "30-minutes"
	HOUR                    Interval = "hour"
	DAY                     Interval = "day"
	WEEK                    Interval = "week"
	MONTH                   Interval = "month"
)

type IntervalString

type IntervalString int

IntervalString to convert value from string (json) to int (cbor)

and to convert value from int (cbor) to string (json)
const (
	FiveMinutesInterval IntervalString = iota + 1
	TenMinutesInterval
	ThirtyMinutesInterval
	Hour
	Day
	Week
	Month
)

func ConvertMeasurementIntervalToInt

func ConvertMeasurementIntervalToInt(measurementInterval string) (measurementIntervalInt IntervalString)

Convert measurement_interval from string to int

func (IntervalString) MarshalJSON

func (i IntervalString) MarshalJSON() ([]byte, error)

func (*IntervalString) UnmarshalJSON

func (i *IntervalString) UnmarshalJSON(data []byte) error

type Length

type Length int
const (
	CUID_LEN Length = 22
)

type Lifetime

type Lifetime int
const (
	INDEFINITE_LIFETIME Lifetime = -1
	EXCHANGE_LIFETIME   Lifetime = 247
)

type Message

type Message struct {
	Role        Role
	ChannelType ChannelType
	LibCoapType libcoap.Type
	Name        string
	Path        string
	Type        reflect.Type
}

* Dots message structure.

type MitigationAcl

type MitigationAcl string
const (
	MITIGATION_ACL MitigationAcl = "mitigation-acl-"
)

type MitigationRequest

type MitigationRequest struct {
	MitigationScope MitigationScope `json:"ietf-dots-signal-channel:mitigation-scope" codec:"1"`
	// contains filtered or unexported fields
}

func (*MitigationRequest) EffectiveClientDomainIdentifier

func (m *MitigationRequest) EffectiveClientDomainIdentifier() string

* get last client-domain-identifier

func (*MitigationRequest) EffectiveClientIdentifier

func (m *MitigationRequest) EffectiveClientIdentifier() string

* get last client-identifier

func (*MitigationRequest) EffectiveMitigationId

func (m *MitigationRequest) EffectiveMitigationId() *int

* get last client-domain-identifier

func (*MitigationRequest) String

func (m *MitigationRequest) String() (result string)

* Convert MitigationRequests to strings

func (*MitigationRequest) UpdateClientDomainIdentifier

func (m *MitigationRequest) UpdateClientDomainIdentifier(cdid string)

* set client-domain-identifier

func (*MitigationRequest) UpdateClientIdentifier

func (m *MitigationRequest) UpdateClientIdentifier(cuid string)

* set client-identifier

func (*MitigationRequest) UpdateMitigationId

func (m *MitigationRequest) UpdateMitigationId(mid *int)

* set mitigation-id

type MitigationResponse

type MitigationResponse struct {
	MitigationScope MitigationScopeStatus `json:"ietf-dots-signal-channel:mitigation-scope" codec:"1"`
	// contains filtered or unexported fields
}

func (*MitigationResponse) String

func (m *MitigationResponse) String() (result string)

* Parse Mitigation Response model to string for log * parameter: * m Mitigation Response model * return: Mitigation Response in string

type MitigationResponsePut

type MitigationResponsePut struct {
	MitigationScope MitigationScopePut `json:"ietf-dots-signal-channel:mitigation-scope" codec:"1"`
	// contains filtered or unexported fields
}

func NewMitigationResponsePut

func NewMitigationResponsePut(req *MitigationRequest, conflictInfo *ConflictInformation) MitigationResponsePut

func (*MitigationResponsePut) String

func (m *MitigationResponsePut) String() (result string)

* Parse Mitigation Response Put model to string for log * parameter: * m Mitigation Response Put model * return: Mitigation Response Put in string

type MitigationResponseServiceUnavailable

type MitigationResponseServiceUnavailable struct {
	MitigationScopeControlFiltering MitigationScopeControlFiltering `json:"ietf-dots-signal-channel:mitigation-scope" codec:"1"`
	// contains filtered or unexported fields
}

func (*MitigationResponseServiceUnavailable) String

func (m *MitigationResponseServiceUnavailable) String() (result string)

* Parse Mitigation Response Service Unavailable model to string for log * parameter: * m Mitigation Response Service Unavailable model * return: Mitigation Response Service Unavailable in string

type MitigationScope

type MitigationScope struct {
	Scopes []Scope `json:"scope"             codec:"2"`
	// only used in response
	ClientDomainIdentifier string `json:"cdid" codec:"3,omitempty"`
	// contains filtered or unexported fields
}

type MitigationScopeControlFiltering

type MitigationScopeControlFiltering struct {
	ScopeControlFiltering []ScopeControlFiltering `json:"scope"             codec:"2"`
	// contains filtered or unexported fields
}

type MitigationScopePut

type MitigationScopePut struct {
	Scopes []ScopePut `json:"scope"             codec:"2"`
	// contains filtered or unexported fields
}

type MitigationScopeStatus

type MitigationScopeStatus struct {
	Scopes []ScopeStatus `json:"scope" codec:"2"`
	// contains filtered or unexported fields
}

type ObserveValue

type ObserveValue uint
const (
	Register   ObserveValue = 0
	Deregister ObserveValue = 1
)

type Option

type Option string
const (
	OBSERVE      Option = "Observe"
	IFMATCH      Option = "If-Match"
	BLOCK2       Option = "Block2"
	CONTENT_TYPE Option = "Content-Type"
)

type PercentilePeakAndCurrent

type PercentilePeakAndCurrent struct {
	LowPercentileG  *Uint64String `json:"low-percentile-g" codec:"140,omitempty"`
	MidPercentileG  *Uint64String `json:"mid-percentile-g" codec:"141,omitempty"`
	HighPercentileG *Uint64String `json:"high-percentile-g" codec:"142,omitempty"`
	PeakG           *Uint64String `json:"peak-g" codec:"143,omitempty"`
	CurrentG        *Uint64String `json:"current-g" codec:"209,omitempty"`
	// contains filtered or unexported fields
}

func (PercentilePeakAndCurrent) String

func (sc PercentilePeakAndCurrent) String(spacesn string) (result string)

Convert PercentilePeakAndCurrent to String

type PercentilePeakAndCurrentResponse

type PercentilePeakAndCurrentResponse struct {
	LowPercentileG  *Uint64String `json:"low-percentile-g" codec:"140,omitempty"`
	MidPercentileG  *Uint64String `json:"mid-percentile-g" codec:"141,omitempty"`
	HighPercentileG *Uint64String `json:"high-percentile-g" codec:"142,omitempty"`
	PeakG           *Uint64String `json:"peak-g" codec:"143,omitempty"`
	CurrentG        *Uint64String `json:"current-g" codec:"209,omitempty"`
	// contains filtered or unexported fields
}

func (PercentilePeakAndCurrentResponse) String

func (sc PercentilePeakAndCurrentResponse) String(spacesn string) (result string)

Convert PercentilePeakAndCurrentResponse to String

type PortRange

type PortRange struct {
	LowerPort *int `json:"lower-port" codec:"8,omitempty"`
	UpperPort *int `json:"upper-port" codec:"9,omitempty"`
	// contains filtered or unexported fields
}

type PortRangeResponse

type PortRangeResponse struct {
	LowerPort int  `json:"lower-port" codec:"8,omitempty"`
	UpperPort *int `json:"upper-port" codec:"9,omitempty"`
	// contains filtered or unexported fields
}

type PreOrOngoingMitigation

type PreOrOngoingMitigation struct {
	Target                        *Target                         `json:"target" codec:"189,omitempty"`
	TotalTraffic                  []Traffic                       `json:"total-traffic" codec:"145,omitempty"`
	TotalTrafficProtocol          []TrafficPerProtocol            `json:"total-traffic-protocol" codec:"195,omitempty"`
	TotalTrafficPort              []TrafficPerPort                `json:"total-traffic-port" codec:"196,omitempty"`
	TotalAttackTraffic            []Traffic                       `json:"total-attack-traffic" codec:"144,omitempty"`
	TotalAttackTrafficProtocol    []TrafficPerProtocol            `json:"total-attack-traffic-protocol" codec:"197,omitempty"`
	TotalAttackTrafficPort        []TrafficPerPort                `json:"total-attack-traffic-port" codec:"198,omitempty"`
	TotalAttackConnectionProtocol []TotalAttackConnectionProtocol `json:"total-attack-connection-protocol" codec:"173,omitempty"`
	TotalAttackConnectionPort     []TotalAttackConnectionPort     `json:"total-attack-connection-port" codec:"199,omitempty"`
	AttackDetail                  []AttackDetail                  `json:"attack-detail" codec:"162,omitempty"`
	// contains filtered or unexported fields
}

type PreOrOngoingMitigationResponse

type PreOrOngoingMitigationResponse struct {
	Tmid                          int                                     `json:"tmid" codec:"181,omitempty"`
	Target                        *TargetResponse                         `json:"target" codec:"189,omitempty"`
	TotalTraffic                  []TrafficResponse                       `json:"total-traffic" codec:"145,omitempty"`
	TotalTrafficProtocol          []TrafficPerProtocolResponse            `json:"total-traffic-protocol" codec:"195,omitempty"`
	TotalTrafficPort              []TrafficPerPortResponse                `json:"total-traffic-port" codec:"196,omitempty"`
	TotalAttackTraffic            []TrafficResponse                       `json:"total-attack-traffic" codec:"144,omitempty"`
	TotalAttackTrafficProtocol    []TrafficPerProtocolResponse            `json:"total-attack-traffic-protocol" codec:"197,omitempty"`
	TotalAttackTrafficPort        []TrafficPerPortResponse                `json:"total-attack-traffic-port" codec:"198,omitempty"`
	TotalAttackConnectionProtocol []TotalAttackConnectionProtocolResponse `json:"total-attack-connection-protocol" codec:"173,omitempty"`
	TotalAttackConnectionPort     []TotalAttackConnectionPortResponse     `json:"total-attack-connection-port" codec:"199,omitempty"`
	AttackDetail                  []AttackDetailResponse                  `json:"attack-detail" codec:"162,omitempty"`
	// contains filtered or unexported fields
}

type ProbingRate

type ProbingRate struct {
	CurrentValue *int `json:"current-value" codec:"36,omitempty"`
	MinValue     *int `json:"min-value"     codec:"35,omitempty"`
	MaxValue     *int `json:"max-value"     codec:"34,omitempty"`
	// contains filtered or unexported fields
}

type QueryType

type QueryType string
const (
	TARGET_PREFIX    QueryType = "target-prefix"
	TARGET_PORT      QueryType = "target-port"
	TARGET_PROTOCOL  QueryType = "target-protocol"
	TARGET_FQDN      QueryType = "target-fqdn"
	TARGET_URI       QueryType = "target-uri"
	TARGET_ALIAS     QueryType = "alias-name"
	MID              QueryType = "mid"
	SOURCE_PREFIX    QueryType = "source-prefix"
	SOURCE_PORT      QueryType = "source-port"
	SOURCE_ICMP_TYPE QueryType = "source-icmp-type"
	CONTENT          QueryType = "c"
)

type QueryTypeArrayString

type QueryTypeArrayString []int

QueryTypeArrayString to convert value from array int (cbor) to array string (json)

func (QueryTypeArrayString) MarshalJSON

func (qta QueryTypeArrayString) MarshalJSON() ([]byte, error)

type Role

type Role int

* Type to express the message roles(Request/Response).

const (
	REQUEST Role = iota
	RESPONSE
)

type Sample

type Sample string
const (
	SECOND          Sample = "second"
	FIVE_SECONDS    Sample = "5-seconds"
	THIRTY_SECONDDS Sample = "30-seconds"
	ONE_MINUTE      Sample = "minute"
	FIVE_MINUTES    Sample = "5-minutes"
	TEN_MINUTES     Sample = "10-minutes"
	THIRTY_MINUTES  Sample = "30-minutes"
	ONE_HOUR        Sample = "hour"
)

type SampleString

type SampleString int

SampleString to convert value from string (json) to int (cbor)

and to convert value from int (cbor) to string (json)
const (
	Second SampleString = iota + 1
	FiveSeconds
	ThirtySeconds
	OneMinute
	FiveMinutes
	TenMinutes
	ThirtyMinutes
	OneHour
)

func ConvertMeasurementSampleToInt

func ConvertMeasurementSampleToInt(measurementSample string) (measurementSampleInt SampleString)

Convert measurement_sample from string to int

func (SampleString) MarshalJSON

func (s SampleString) MarshalJSON() ([]byte, error)

func (*SampleString) UnmarshalJSON

func (s *SampleString) UnmarshalJSON(data []byte) error

type Scope

type Scope struct {

	// A unique identifier that is randomly generated by a DOTS client to prevent request collisions. (used only server side in BODY)
	ClientIdentifier string `json:"cuid" codec:"4,omitempty"`
	// Identifier for the mitigation request
	MitigationId *int `json:"mid" codec:"5,omitempty"`
	// prefix
	TargetPrefix []string `json:"target-prefix" codec:"6,omitempty"`
	// lower-port upper-port
	TargetPortRange []PortRange `json:"target-port-range" codec:"7,omitempty"`
	// Internet Protocol number
	TargetProtocol []int `json:"target-protocol" codec:"10,omitempty"`
	// FQDN
	FQDN []string `json:"target-fqdn" codec:"11,omitempty"`
	// URI
	URI []string `json:"target-uri" codec:"12,omitempty"`
	// alias name
	AliasName []string `json:"alias-name" codec:"13,omitempty"`
	// source prefix
	SourcePrefix []string `json:"ietf-dots-call-home:source-prefix" codec:"32768,omitempty"`
	// source port range
	SourcePortRange []PortRange `json:"ietf-dots-call-home:source-port-range" codec:"32769,omitempty"`
	// source icmp type range
	SourceICMPTypeRange []ICMPTypeRange `json:"ietf-dots-call-home:source-icmp-type-range" codec:"32770,omitempty"`
	// list of acl
	AclList []ACL `json:"ietf-dots-signal-control:acl-list" codec:"53,omitempty"`
	// lifetime
	Lifetime *int `json:"lifetime" codec:"14,omitempty"`
	// attack-status
	AttackStatus *int `json:"attack-status" codec:"29,omitempty"`
	// If false, mitigation is triggered only if the signal channel is lost. This is an optional attribute.
	TriggerMitigation *bool `json:"trigger-mitigation" codec:"45,omitempty"`
	// telemetry total attack traffic
	TotalAttackTraffic []Traffic `json:"ietf-dots-telemetry:total-attack-traffic" codec:"205,omitempty"`
	// telemetry attack detail
	AttackDetail []TelemetryAttackDetail `json:"ietf-dots-telemetry:attack-detail" codec:"207,omitempty"`
	// contains filtered or unexported fields
}

type ScopeControlFiltering

type ScopeControlFiltering struct {
	MitigationId int   `json:"mid"    codec:"5"`
	AclList      []ACL `json:"ietf-dots-signal-control:acl-list" codec:"22,omitempty"`
	// contains filtered or unexported fields
}

type ScopePut

type ScopePut struct {

	// Identifier for the mitigation request
	MitigationId int `json:"mid" codec:"5"`
	// lifetime
	Lifetime int `json:"lifetime" codec:"14,omitempty"`
	// Conflict Information
	ConflictInformation *ConflictInformation `json:"conflict-information" codec:"17,omitempty"`
	// contains filtered or unexported fields
}

type ScopeStatus

type ScopeStatus struct {
	MitigationId          int                                     `json:"mid"    codec:"5"`
	MitigationStart       *Uint64String                           `json:"mitigation-start" codec:"15,omitempty"`
	TargetPrefix          []string                                `json:"target-prefix" codec:"6,omitempty"`
	TargetPortRange       []PortRangeResponse                     `json:"target-port-range" codec:"7,omitempty"`
	TargetProtocol        []int                                   `json:"target-protocol"   codec:"10,omitempty"`
	FQDN                  []string                                `json:"target-fqdn" codec:"11,omitempty"`
	URI                   []string                                `json:"target-uri" codec:"12,omitempty"`
	AliasName             []string                                `json:"alias-name" codec:"13,omitempty"`
	SourcePrefix          []string                                `json:"ietf-dots-call-home:source-prefix" codec:"32768,omitempty"`
	SourcePortRange       []PortRangeResponse                     `json:"ietf-dots-call-home:source-port-range" codec:"32769,omitempty"`
	SourceICMPTypeRange   []ICMPTypeRangeResponse                 `json:"ietf-dots-call-home:source-icmp-type-range" codec:"32770,omitempty"`
	AclList               []ACL                                   `json:"ietf-dots-signal-control:acl-list" codec:"53,omitempty"`
	TriggerMitigation     *bool                                   `json:"trigger-mitigation" codec:"45,omitempty"`
	Lifetime              *int                                    `json:"lifetime"         codec:"14"`
	Status                *int                                    `json:"status"           codec:"16"`
	BytesDropped          *int                                    `json:"bytes-dropped"    codec:"25"`
	BpsDropped            *int                                    `json:"bps-dropped"      codec:"26"`
	PktsDropped           *int                                    `json:"pkts-dropped"     codec:"27"`
	PpsDropped            *int                                    `json:"pps-dropped"      codec:"28"`
	TotalTraffic          []TrafficResponse                       `json:"ietf-dots-telemetry:total-traffic" codec:"204,omitempty"`
	TotalAttackTraffic    []TrafficResponse                       `json:"ietf-dots-telemetry:total-attack-traffic" codec:"205,omitempty"`
	TotalAttackConnection *TelemetryTotalAttackConnectionResponse `json:"ietf-dots-telemetry:total-attack-connection" codec:"206,omitempty"`
	AttackDetail          []TelemetryAttackDetailResponse         `json:"ietf-dots-telemetry:attack-detail" codec:"207,omitempty"`
	// contains filtered or unexported fields
}

type SignalChannelRequest

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

type SignalConfig

type SignalConfig struct {

	// Identifier for the DOTS signal channel session configuration data represented as an integer.
	// This identifier MUST be generated by the DOTS client.  This document does not make any assumption about how this
	// identifier is generated. This is a mandatory attribute.
	SessionId int `json:"sid" codec:"31,omitempty"`
	// Heartbeat interval to check the DOTS peer health.  This is an optional attribute.
	HeartbeatInterval IntCurrent `json:"heartbeat-interval" codec:"33,omitempty"`
	// Maximum number of missing heartbeat response allowed. This is an optional attribute.
	MissingHbAllowed IntCurrent `json:"missing-hb-allowed" codec:"37,omitempty"`
	// Maximum number of retransmissions for a message (referred to as MAX_RETRANSMIT parameter in CoAP).
	// This is an optional attribute.
	MaxRetransmit IntCurrent `json:"max-retransmit" codec:"38,omitempty"`
	// Timeout value in seconds used to calculate the initial retransmission timeout value (referred to as ACK_TIMEOUT
	// parameter in CoAP). This is an optional attribute.
	AckTimeout DecimalCurrent `json:"ack-timeout" codec:"39,omitempty"`
	// Random factor used to influence the timing of retransmissions (referred to as ACK_RANDOM_FACTOR parameter in
	// CoAP).  This is an optional attribute.
	AckRandomFactor DecimalCurrent `json:"ack-random-factor" codec:"40,omitempty"`
	// The parameters in draft-ietf-dots-robust-blocks
	MaxPayload        IntCurrent     `json:"ietf-dots-robust-trans:max-payloads" codec:"32776,omitempty"`
	NonMaxRetransmit  IntCurrent     `json:"ietf-dots-robust-trans:non-max-retransmit" codec:"32777,omitempty"`
	NonTimeout        DecimalCurrent `json:"ietf-dots-robust-trans:non-timeout" codec:"32778,omitempty"`
	NonReceiveTimeout DecimalCurrent `json:"ietf-dots-robust-trans:non-receive-timeout" codec:"32779,omitempty"`
	NonProbingWait    DecimalCurrent `json:"ietf-dots-robust-trans:non-probing-wait" codec:"32780,omitempty"`
	NonPartialWait    DecimalCurrent `json:"ietf-dots-robust-trans:non-partial-wait" codec:"32781,omitempty"`
	// contains filtered or unexported fields
}

type SignalConfigRequest

type SignalConfigRequest struct {
	SignalConfigs SignalConfigs `json:"ietf-dots-signal-channel:signal-config" codec:"30"`
	// contains filtered or unexported fields
}

func (*SignalConfigRequest) String

func (m *SignalConfigRequest) String() (result string)

* Convert SignalConfigRequest to strings

type SignalConfigs

type SignalConfigs struct {
	MitigatingConfig SignalConfig `json:"mitigating-config" codec:"32,omitempty"`
	IdleConfig       SignalConfig `json:"idle-config"       codec:"44,omitempty"`
	// contains filtered or unexported fields
}

type SupportedUnitResponse

type SupportedUnitResponse struct {
	UnitConfigList []UnitConfigResponse `json:"unit-config" codec:"133,omitempty"`
	// contains filtered or unexported fields
}

type Talker

type Talker struct {
	SpoofedStatus                 *bool                           `json:"spoofed-status" codec:"171,omitempty"`
	SourcePrefix                  *string                         `json:"source-prefix" codec:"185,omitempty"`
	SourcePortRange               []PortRange                     `json:"source-port-range" codec:"187,omitempty"`
	SourceIcmpTypeRange           []ICMPTypeRange                 `json:"source-icmp-type-range" codec:"188,omitempty"`
	TotalAttackTraffic            []Traffic                       `json:"total-attack-traffic" codec:"144,omitempty"`
	TotalAttackConnectionProtocol []TotalAttackConnectionProtocol `json:"total-attack-connection-protocol" codec:"173,omitempty"`
	// contains filtered or unexported fields
}

func (Talker) String

func (t Talker) String(spacesn string) (result string)

Convert Talker to String

type TalkerResponse

type TalkerResponse struct {
	SpoofedStatus                 bool                                    `json:"spoofed-status" codec:"171,omitempty"`
	SourcePrefix                  string                                  `json:"source-prefix" codec:"185,omitempty"`
	SourcePortRange               []PortRangeResponse                     `json:"source-port-range" codec:"187,omitempty"`
	SourceIcmpTypeRange           []ICMPTypeRangeResponse                 `json:"source-icmp-type-range" codec:"188,omitempty"`
	TotalAttackTraffic            []TrafficResponse                       `json:"total-attack-traffic" codec:"144,omitempty"`
	TotalAttackConnectionProtocol []TotalAttackConnectionProtocolResponse `json:"total-attack-connection-protocol" codec:"173,omitempty"`
	// contains filtered or unexported fields
}

func (TalkerResponse) String

func (t TalkerResponse) String(spacesn string) (result string)

Convert TalkerResponse to String

type Target

type Target struct {
	TargetPrefix    []string    `json:"target-prefix" codec:"6,omitempty"`
	TargetPortRange []PortRange `json:"target-port-range" codec:"7,omitempty"`
	TargetProtocol  []int       `json:"target-protocol" codec:"10,omitempty"`
	FQDN            []string    `json:"target-fqdn" codec:"11,omitempty"`
	URI             []string    `json:"target-uri" codec:"12,omitempty"`
	AliasName       []string    `json:"alias-name" codec:"13,omitempty"`
	// contains filtered or unexported fields
}

type TargetResponse

type TargetResponse struct {
	TargetPrefix    []string            `json:"target-prefix" codec:"6,omitempty"`
	TargetPortRange []PortRangeResponse `json:"target-port-range" codec:"7,omitempty"`
	TargetProtocol  []int               `json:"target-protocol" codec:"10,omitempty"`
	FQDN            []string            `json:"target-fqdn" codec:"11,omitempty"`
	URI             []string            `json:"target-uri" codec:"12,omitempty"`
	AliasName       []string            `json:"alias-name" codec:"13,omitempty"`
	// contains filtered or unexported fields
}

type TargetType

type TargetType string
const (
	MITIGATION_REQUEST_ACL TargetType = "mitigation_request"
	DATACHANNEL_ACL        TargetType = "datachannel_acl"
)

type Telemetry

type Telemetry struct {
	TelemetryConfigurationCurrent *TelemetryConfigurationCurrent `json:"current-config" codec:"175,omitempty"`
	TotalPipeCapacity             []TotalPipeCapacity            `json:"total-pipe-capacity" codec:"136,omitempty"`
	Baseline                      []Baseline                     `json:"baseline" codec:"174,omitempty"`
	// contains filtered or unexported fields
}

type TelemetryAttackDetail

type TelemetryAttackDetail struct {
	VendorId          *uint32                   `json:"vendor-id" codec:"202,omitempty"`
	AttackId          *uint32                   `json:"attack-id" codec:"164,omitempty"`
	AttackDescription *string                   `json:"attack-description" codec:"165,omitempty"`
	AttackSeverity    *AttackSeverityString     `json:"attack-severity" codec:"166,omitempty"`
	StartTime         *Uint64String             `json:"start-time" codec:"167,omitempty"`
	EndTime           *Uint64String             `json:"end-time" codec:"168,omitempty"`
	SourceCount       *PercentilePeakAndCurrent `json:"source-count" codec:"169,omitempty"`
	TopTalKer         *TelemetryTopTalker       `json:"top-talker" codec:"170,omitempty"`
	// contains filtered or unexported fields
}

func (TelemetryAttackDetail) String

func (ad TelemetryAttackDetail) String(spacesn string) (result string)

Convert TelemetryAttackDetail to String

type TelemetryAttackDetailResponse

type TelemetryAttackDetailResponse struct {
	VendorId          int                               `json:"vendor-id" codec:"202,omitempty"`
	AttackId          int                               `json:"attack-id" codec:"164,omitempty"`
	AttackDescription *string                           `json:"attack-description" codec:"165,omitempty"`
	AttackSeverity    AttackSeverityString              `json:"attack-severity" codec:"166,omitempty"`
	StartTime         *Uint64String                     `json:"start-time" codec:"167,omitempty"`
	EndTime           *Uint64String                     `json:"end-time" codec:"168,omitempty"`
	SourceCount       *PercentilePeakAndCurrentResponse `json:"source-count" codec:"169,omitempty"`
	TopTalKer         *TelemetryTopTalkerResponse       `json:"top-talker" codec:"170,omitempty"`
	// contains filtered or unexported fields
}

func (TelemetryAttackDetailResponse) String

func (ad TelemetryAttackDetailResponse) String(spacesn string) (result string)

Convert TelemetryAttackDetailResponse to String

type TelemetryConfigurationCurrent

type TelemetryConfigurationCurrent struct {
	MeasurementInterval       *IntervalString  `json:"measurement-interval" codec:"182,omitempty"`
	MeasurementSample         *SampleString    `json:"measurement-sample" codec:"183,omitempty"`
	LowPercentile             *decimal.Decimal `json:"low-percentile" codec:"130,omitempty"`
	MidPercentile             *decimal.Decimal `json:"mid-percentile" codec:"131,omitempty"`
	HighPercentile            *decimal.Decimal `json:"high-percentile" codec:"132,omitempty"`
	UnitConfigList            []UnitConfig     `json:"unit-config" codec:"133,omitempty"`
	ServerOriginatedTelemetry *bool            `json:"server-originated-telemetry" codec:"179,omitempty"`
	TelemetryNotifyInterval   *int             `json:"telemetry-notify-interval" codec:"180,omitempty"`
	// contains filtered or unexported fields
}

type TelemetryConfigurationResponse

type TelemetryConfigurationResponse struct {
	MeasurementInterval       IntervalString       `json:"measurement-interval" codec:"182,omitempty"`
	MeasurementSample         SampleString         `json:"measurement-sample" codec:"183,omitempty"`
	LowPercentile             decimal.Decimal      `json:"low-percentile" codec:"130,omitempty"`
	MidPercentile             decimal.Decimal      `json:"mid-percentile" codec:"131,omitempty"`
	HighPercentile            decimal.Decimal      `json:"high-percentile" codec:"132,omitempty"`
	UnitConfigList            []UnitConfigResponse `json:"unit-config" codec:"133,omitempty"`
	ServerOriginatedTelemetry *bool                `json:"server-originated-telemetry" codec:"179,omitempty"`
	TelemetryNotifyInterval   *int                 `json:"telemetry-notify-interval" codec:"180,omitempty"`
	// contains filtered or unexported fields
}

func (*TelemetryConfigurationResponse) String

func (tConfig *TelemetryConfigurationResponse) String(spacesn string) (result string)

Convert TelemetryConfigurationResponse to string

type TelemetryPreMitigation

type TelemetryPreMitigation struct {
	PreOrOngoingMitigation []PreOrOngoingMitigation `json:"pre-or-ongoing-mitigation" codec:"138,omitempty"`
	// contains filtered or unexported fields
}

type TelemetryPreMitigationRequest

type TelemetryPreMitigationRequest struct {
	TelemetryPreMitigation *TelemetryPreMitigation `json:"ietf-dots-telemetry:telemetry" codec:"208,omitempty"` // CBOR key temp
	// contains filtered or unexported fields
}

func (*TelemetryPreMitigationRequest) String

func (tpm *TelemetryPreMitigationRequest) String() (result string)

* Convert TelemetryPreMitigationRequest to strings

type TelemetryPreMitigationResp

type TelemetryPreMitigationResp struct {
	PreOrOngoingMitigation []PreOrOngoingMitigationResponse `json:"pre-or-ongoing-mitigation" codec:"138,omitempty"`
	// contains filtered or unexported fields
}

type TelemetryPreMitigationResponse

type TelemetryPreMitigationResponse struct {
	TelemetryPreMitigation *TelemetryPreMitigationResp `json:"ietf-dots-telemetry:telemetry" codec:"208,omitempty"` // CBOR key temp
	// contains filtered or unexported fields
}

func (*TelemetryPreMitigationResponse) String

func (tpm *TelemetryPreMitigationResponse) String() (result string)

* Convert TelemetryPreMitigationRequest to strings

type TelemetryResponse

type TelemetryResponse struct {
	Tsid              int                             `json:"tsid" codec:"128,omitempty"`
	CurrentConfig     *TelemetryConfigurationResponse `json:"current-config" codec:"175,omitempty"`
	TotalPipeCapacity []TotalPipeCapacityResponse     `json:"total-pipe-capacity" codec:"136,omitempty"`
	Baseline          []BaselineResponse              `json:"baseline" codec:"174,omitempty"`
	// contains filtered or unexported fields
}

type TelemetryResponseConflict

type TelemetryResponseConflict struct {
	Tsid                int                  `json:"tsid" codec:"128,omitempty"`
	ConflictInformation *ConflictInformation `json:"conflict-information" codec:"17,omitempty"`
	// contains filtered or unexported fields
}

type TelemetrySetup

type TelemetrySetup struct {
	Telemetry []Telemetry `json:"telemetry" codec:"129,omitempty"`
	// contains filtered or unexported fields
}

type TelemetrySetupRequest

type TelemetrySetupRequest struct {
	TelemetrySetup TelemetrySetup `json:"ietf-dots-telemetry:telemetry-setup" codec:"203,omitempty"`
	// contains filtered or unexported fields
}

func (*TelemetrySetupRequest) String

func (ts *TelemetrySetupRequest) String() (result string)

* Convert TelemetrySetupConfigurationRequest to strings

type TelemetrySetupResp

type TelemetrySetupResp struct {
	MaxConfig     *TelemetryConfigurationResponse `json:"max-config-values" codec:"176,omitempty"`
	MinConfig     *TelemetryConfigurationResponse `json:"min-config-values" codec:"177,omitempty"`
	SupportedUnit *SupportedUnitResponse          `json:"supported-unit-classes" codec:"178,omitempty"`
	QueryType     QueryTypeArrayString            `json:"supported-query-type" codec:"201,omitempty"`
	Telemetry     []TelemetryResponse             `json:"telemetry" codec:"129,omitempty"`
	// contains filtered or unexported fields
}

type TelemetrySetupRespConflict

type TelemetrySetupRespConflict struct {
	TelemetryResponseConflict []TelemetryResponseConflict `json:"telemetry" codec:"129,omitempty"`
	// contains filtered or unexported fields
}

type TelemetrySetupResponse

type TelemetrySetupResponse struct {
	TelemetrySetup TelemetrySetupResp `json:"ietf-dots-telemetry:telemetry-setup" codec:"203,omitempty"`
	// contains filtered or unexported fields
}

func (*TelemetrySetupResponse) String

func (ts *TelemetrySetupResponse) String() (result string)

* Convert TelemetrySetupConfigurationResponse to strings

type TelemetrySetupResponseConflict

type TelemetrySetupResponseConflict struct {
	TelemetrySetupConflict TelemetrySetupRespConflict `json:"ietf-dots-telemetry:telemetry-setup" codec:"203,omitempty"`
	// contains filtered or unexported fields
}

func NewTelemetrySetupConfigurationResponseConflict

func NewTelemetrySetupConfigurationResponseConflict(tsid int, conflictInfo *ConflictInformation) TelemetrySetupResponseConflict

new telemetry setup configuration response conflict

func (*TelemetrySetupResponseConflict) String

func (ts *TelemetrySetupResponseConflict) String() (result string)

Convert TelemetrySetupConfigurationResponseConflict to String

type TelemetryTalker

type TelemetryTalker struct {
	SpoofedStatus         *bool                           `json:"spoofed-status" codec:"171,omitempty"`
	SourcePrefix          *string                         `json:"source-prefix" codec:"185,omitempty"`
	SourcePortRange       []PortRange                     `json:"source-port-range" codec:"187,omitempty"`
	SourceIcmpTypeRange   []ICMPTypeRange                 `json:"source-icmp-type-range" codec:"188,omitempty"`
	TotalAttackTraffic    []Traffic                       `json:"total-attack-traffic" codec:"144,omitempty"`
	TotalAttackConnection *TelemetryTotalAttackConnection `json:"total-attack-connection" codec:"157,omitempty"`
	// contains filtered or unexported fields
}

func (TelemetryTalker) String

func (t TelemetryTalker) String(spacesn string) (result string)

Convert TelemetryTalker to String

type TelemetryTalkerResponse

type TelemetryTalkerResponse struct {
	SpoofedStatus         bool                                    `json:"spoofed-status" codec:"171,omitempty"`
	SourcePrefix          string                                  `json:"source-prefix" codec:"185,omitempty"`
	SourcePortRange       []PortRangeResponse                     `json:"source-port-range" codec:"187,omitempty"`
	SourceIcmpTypeRange   []ICMPTypeRangeResponse                 `json:"source-icmp-type-range" codec:"188,omitempty"`
	TotalAttackTraffic    []TrafficResponse                       `json:"total-attack-traffic" codec:"144,omitempty"`
	TotalAttackConnection *TelemetryTotalAttackConnectionResponse `json:"total-attack-connection" codec:"157,omitempty"`
	// contains filtered or unexported fields
}

func (TelemetryTalkerResponse) String

func (t TelemetryTalkerResponse) String(spacesn string) (result string)

Convert TelemetryTalkerResponse to String

type TelemetryTopTalker

type TelemetryTopTalker struct {
	Talker []TelemetryTalker `json:"talker" codec:"184,omitempty"`
	// contains filtered or unexported fields
}

type TelemetryTopTalkerResponse

type TelemetryTopTalkerResponse struct {
	Talker []TelemetryTalkerResponse `json:"talker" codec:"184,omitempty"`
	// contains filtered or unexported fields
}

type TelemetryTotalAttackConnection

type TelemetryTotalAttackConnection struct {
	ConnectionC     *PercentilePeakAndCurrent `json:"connection-c" codec:"158,omitempty"`
	EmbryonicC      *PercentilePeakAndCurrent `json:"embryonic-c" codec:"159,omitempty"`
	ConnectionPsC   *PercentilePeakAndCurrent `json:"connection-ps-c" codec:"160,omitempty"`
	RequestPsC      *PercentilePeakAndCurrent `json:"request-ps-c" codec:"161,omitempty"`
	PartialRequestC *PercentilePeakAndCurrent `json:"partial-request-c" codec:"172,omitempty"`
	// contains filtered or unexported fields
}

func (*TelemetryTotalAttackConnection) String

func (tac *TelemetryTotalAttackConnection) String(spacesn string) (result string)

Convert TelemetryTotalAttackConnection to String

type TelemetryTotalAttackConnectionResponse

type TelemetryTotalAttackConnectionResponse struct {
	ConnectionC     *PercentilePeakAndCurrentResponse `json:"connection-c" codec:"158,omitempty"`
	EmbryonicC      *PercentilePeakAndCurrentResponse `json:"embryonic-c" codec:"159,omitempty"`
	ConnectionPsC   *PercentilePeakAndCurrentResponse `json:"connection-ps-c" codec:"160,omitempty"`
	RequestPsC      *PercentilePeakAndCurrentResponse `json:"request-ps-c" codec:"161,omitempty"`
	PartialRequestC *PercentilePeakAndCurrentResponse `json:"partial-request-c" codec:"172,omitempty"`
	// contains filtered or unexported fields
}

func (*TelemetryTotalAttackConnectionResponse) String

func (tac *TelemetryTotalAttackConnectionResponse) String(spacesn string) (result string)

Convert TelemetryTotalAttackConnectionResponse to String

type TopTalker

type TopTalker struct {
	Talker []Talker `json:"talker" codec:"184,omitempty"`
	// contains filtered or unexported fields
}

type TopTalkerResponse

type TopTalkerResponse struct {
	Talker []TalkerResponse `json:"talker" codec:"184,omitempty"`
	// contains filtered or unexported fields
}

type TotalAttackConnectionPort

type TotalAttackConnectionPort struct {
	Protocol        *uint8                    `json:"protocol" codec:"191,omitempty"`
	Port            *int                      `json:"port" codec:"200,omitempty"`
	ConnectionC     *PercentilePeakAndCurrent `json:"connection-c" codec:"158,omitempty"`
	EmbryonicC      *PercentilePeakAndCurrent `json:"embryonic-c" codec:"159,omitempty"`
	ConnectionPsC   *PercentilePeakAndCurrent `json:"connection-ps-c" codec:"160,omitempty"`
	RequestPsC      *PercentilePeakAndCurrent `json:"request-ps-c" codec:"161,omitempty"`
	PartialRequestC *PercentilePeakAndCurrent `json:"partial-request-c" codec:"172,omitempty"`
	// contains filtered or unexported fields
}

func (*TotalAttackConnectionPort) String

func (tac *TotalAttackConnectionPort) String(spacesn string) (result string)

Convert TotalAttackConnectionPort to String

type TotalAttackConnectionPortResponse

type TotalAttackConnectionPortResponse struct {
	Protocol        uint8                             `json:"protocol" codec:"191,omitempty"`
	Port            int                               `json:"port" codec:"200,omitempty"`
	ConnectionC     *PercentilePeakAndCurrentResponse `json:"connection-c" codec:"158,omitempty"`
	EmbryonicC      *PercentilePeakAndCurrentResponse `json:"embryonic-c" codec:"159,omitempty"`
	ConnectionPsC   *PercentilePeakAndCurrentResponse `json:"connection-ps-c" codec:"160,omitempty"`
	RequestPsC      *PercentilePeakAndCurrentResponse `json:"request-ps-c" codec:"161,omitempty"`
	PartialRequestC *PercentilePeakAndCurrentResponse `json:"partial-request-c" codec:"172,omitempty"`
	// contains filtered or unexported fields
}

func (*TotalAttackConnectionPortResponse) String

func (tac *TotalAttackConnectionPortResponse) String(spacesn string) (result string)

Convert TotalAttackConnectionPortResponse to String

type TotalAttackConnectionProtocol

type TotalAttackConnectionProtocol struct {
	Protocol        *uint8                    `json:"protocol" codec:"191,omitempty"`
	ConnectionC     *PercentilePeakAndCurrent `json:"connection-c" codec:"158,omitempty"`
	EmbryonicC      *PercentilePeakAndCurrent `json:"embryonic-c" codec:"159,omitempty"`
	ConnectionPsC   *PercentilePeakAndCurrent `json:"connection-ps-c" codec:"160,omitempty"`
	RequestPsC      *PercentilePeakAndCurrent `json:"request-ps-c" codec:"161,omitempty"`
	PartialRequestC *PercentilePeakAndCurrent `json:"partial-request-c" codec:"172,omitempty"`
	// contains filtered or unexported fields
}

func (*TotalAttackConnectionProtocol) String

func (tac *TotalAttackConnectionProtocol) String(spacesn string) (result string)

Convert TotalAttackConnectionProtocol to String

type TotalAttackConnectionProtocolResponse

type TotalAttackConnectionProtocolResponse struct {
	Protocol        uint8                             `json:"protocol" codec:"191,omitempty"`
	ConnectionC     *PercentilePeakAndCurrentResponse `json:"connection-c" codec:"158,omitempty"`
	EmbryonicC      *PercentilePeakAndCurrentResponse `json:"embryonic-c" codec:"159,omitempty"`
	ConnectionPsC   *PercentilePeakAndCurrentResponse `json:"connection-ps-c" codec:"160,omitempty"`
	RequestPsC      *PercentilePeakAndCurrentResponse `json:"request-ps-c" codec:"161,omitempty"`
	PartialRequestC *PercentilePeakAndCurrentResponse `json:"partial-request-c" codec:"172,omitempty"`
	// contains filtered or unexported fields
}

func (*TotalAttackConnectionProtocolResponse) String

func (tac *TotalAttackConnectionProtocolResponse) String(spacesn string) (result string)

Convert TotalAttackConnectionProtocolResponse to String

type TotalConnectionCapacity

type TotalConnectionCapacity struct {
	Protocol                *uint8        `json:"protocol" codec:"191,omitempty"`
	Connection              *Uint64String `json:"connection" codec:"147,omitempty"`
	ConnectionClient        *Uint64String `json:"connection-client" codec:"148,omitempty"`
	Embryonic               *Uint64String `json:"embryonic" codec:"149,omitempty"`
	EmbryonicClient         *Uint64String `json:"embryonic-client" codec:"150,omitempty"`
	ConnectionPs            *Uint64String `json:"connection-ps" codec:"151,omitempty"`
	ConnectionClientPs      *Uint64String `json:"connection-client-ps" codec:"152,omitempty"`
	RequestPs               *Uint64String `json:"request-ps" codec:"153,omitempty"`
	RequestClientPs         *Uint64String `json:"request-client-ps" codec:"154,omitempty"`
	PartialRequestMax       *Uint64String `json:"partial-request-max" codec:"155,omitempty"`
	PartialRequestClientMax *Uint64String `json:"partial-request-client-max" codec:"156,omitempty"`
	// contains filtered or unexported fields
}

func (TotalConnectionCapacity) String

func (tcc TotalConnectionCapacity) String(spacesn string) (result string)

Convert TotalConnectionCapacity to string

type TotalConnectionCapacityPerPort

type TotalConnectionCapacityPerPort struct {
	Protocol                *uint8        `json:"protocol" codec:"191,omitempty"`
	Port                    *int          `json:"port" codec:"200,omitempty"`
	Connection              *Uint64String `json:"connection" codec:"147,omitempty"`
	ConnectionClient        *Uint64String `json:"connection-client" codec:"148,omitempty"`
	Embryonic               *Uint64String `json:"embryonic" codec:"149,omitempty"`
	EmbryonicClient         *Uint64String `json:"embryonic-client" codec:"150,omitempty"`
	ConnectionPs            *Uint64String `json:"connection-ps" codec:"151,omitempty"`
	ConnectionClientPs      *Uint64String `json:"connection-client-ps" codec:"152,omitempty"`
	RequestPs               *Uint64String `json:"request-ps" codec:"153,omitempty"`
	RequestClientPs         *Uint64String `json:"request-client-ps" codec:"154,omitempty"`
	PartialRequestMax       *Uint64String `json:"partial-request-max" codec:"155,omitempty"`
	PartialRequestClientMax *Uint64String `json:"partial-request-client-max" codec:"156,omitempty"`
	// contains filtered or unexported fields
}

func (TotalConnectionCapacityPerPort) String

func (tcc TotalConnectionCapacityPerPort) String(spacesn string) (result string)

Convert TotalConnectionCapacityPerPort to string

type TotalConnectionCapacityPerPortResponse

type TotalConnectionCapacityPerPortResponse struct {
	Protocol                int           `json:"protocol" codec:"191,omitempty"`
	Port                    int           `json:"port" codec:"200,omitempty"`
	Connection              *Uint64String `json:"connection" codec:"147,omitempty"`
	ConnectionClient        *Uint64String `json:"connection-client" codec:"148,omitempty"`
	Embryonic               *Uint64String `json:"embryonic" codec:"149,omitempty"`
	EmbryonicClient         *Uint64String `json:"embryonic-client" codec:"150,omitempty"`
	ConnectionPs            *Uint64String `json:"connection-ps" codec:"151,omitempty"`
	ConnectionClientPs      *Uint64String `json:"connection-client-ps" codec:"152,omitempty"`
	RequestPs               *Uint64String `json:"request-ps" codec:"153,omitempty"`
	RequestClientPs         *Uint64String `json:"request-client-ps" codec:"154,omitempty"`
	PartialRequestMax       *Uint64String `json:"partial-request-max" codec:"155,omitempty"`
	PartialRequestClientMax *Uint64String `json:"partial-request-client-max" codec:"156,omitempty"`
	// contains filtered or unexported fields
}

func (TotalConnectionCapacityPerPortResponse) String

func (tcc TotalConnectionCapacityPerPortResponse) String(spacesn string) (result string)

Convert TotalConnectionCapacityPerPortResponse to String

type TotalConnectionCapacityResponse

type TotalConnectionCapacityResponse struct {
	Protocol                int           `json:"protocol" codec:"191,omitempty"`
	Connection              *Uint64String `json:"connection" codec:"147,omitempty"`
	ConnectionClient        *Uint64String `json:"connection-client" codec:"148,omitempty"`
	Embryonic               *Uint64String `json:"embryonic" codec:"149,omitempty"`
	EmbryonicClient         *Uint64String `json:"embryonic-client" codec:"150,omitempty"`
	ConnectionPs            *Uint64String `json:"connection-ps" codec:"151,omitempty"`
	ConnectionClientPs      *Uint64String `json:"connection-client-ps" codec:"152,omitempty"`
	RequestPs               *Uint64String `json:"request-ps" codec:"153,omitempty"`
	RequestClientPs         *Uint64String `json:"request-client-ps" codec:"154,omitempty"`
	PartialRequestMax       *Uint64String `json:"partial-request-max" codec:"155,omitempty"`
	PartialRequestClientMax *Uint64String `json:"partial-request-client-max" codec:"156,omitempty"`
	// contains filtered or unexported fields
}

func (TotalConnectionCapacityResponse) String

func (tcc TotalConnectionCapacityResponse) String(spacesn string) (result string)

Convert TotalConnectionCapacityResponse to String

type TotalPipeCapacity

type TotalPipeCapacity struct {
	LinkId   *string       `json:"link-id" codec:"137,omitempty"`
	Capacity *Uint64String `json:"capacity" codec:"190,omitempty"`
	Unit     *UnitString   `json:"unit" codec:"134,omitempty"`
	// contains filtered or unexported fields
}

type TotalPipeCapacityResponse

type TotalPipeCapacityResponse struct {
	LinkId   string       `json:"link-id" codec:"137,omitempty"`
	Capacity Uint64String `json:"capacity" codec:"190,omitempty"`
	Unit     UnitString   `json:"unit" codec:"134,omitempty"`
	// contains filtered or unexported fields
}

type Traffic

type Traffic struct {
	Unit            *UnitString   `json:"unit" codec:"134,omitempty"`
	LowPercentileG  *Uint64String `json:"low-percentile-g" codec:"140,omitempty"`
	MidPercentileG  *Uint64String `json:"mid-percentile-g" codec:"141,omitempty"`
	HighPercentileG *Uint64String `json:"high-percentile-g" codec:"142,omitempty"`
	PeakG           *Uint64String `json:"peak-g" codec:"143,omitempty"`
	CurrentG        *Uint64String `json:"current-g" codec:"209,omitempty"`
	// contains filtered or unexported fields
}

func (Traffic) String

func (traffic Traffic) String(spacesn string) (result string)

Convert Traffic to string

type TrafficPerPort

type TrafficPerPort struct {
	Unit            *UnitString   `json:"unit" codec:"134,omitempty"`
	Port            *int          `json:"port" codec:"200,omitempty"`
	LowPercentileG  *Uint64String `json:"low-percentile-g" codec:"140,omitempty"`
	MidPercentileG  *Uint64String `json:"mid-percentile-g" codec:"141,omitempty"`
	HighPercentileG *Uint64String `json:"high-percentile-g" codec:"142,omitempty"`
	PeakG           *Uint64String `json:"peak-g" codec:"143,omitempty"`
	CurrentG        *Uint64String `json:"current-g" codec:"209,omitempty"`
	// contains filtered or unexported fields
}

func (TrafficPerPort) String

func (traffic TrafficPerPort) String(spacesn string) (result string)

Convert TrafficPerPort to string

type TrafficPerPortResponse

type TrafficPerPortResponse struct {
	Unit            UnitString    `json:"unit" codec:"134,omitempty"`
	Port            int           `json:"port" codec:"200,omitempty"`
	LowPercentileG  *Uint64String `json:"low-percentile-g" codec:"140,omitempty"`
	MidPercentileG  *Uint64String `json:"mid-percentile-g" codec:"141,omitempty"`
	HighPercentileG *Uint64String `json:"high-percentile-g" codec:"142,omitempty"`
	PeakG           *Uint64String `json:"peak-g" codec:"143,omitempty"`
	CurrentG        *Uint64String `json:"current-g" codec:"209,omitempty"`
	// contains filtered or unexported fields
}

func (TrafficPerPortResponse) String

func (traffic TrafficPerPortResponse) String(spacesn string) (result string)

Convert TrafficPerPortResponse to String

type TrafficPerProtocol

type TrafficPerProtocol struct {
	Unit            *UnitString   `json:"unit" codec:"134,omitempty"`
	Protocol        *uint8        `json:"protocol" codec:"191,omitempty"`
	LowPercentileG  *Uint64String `json:"low-percentile-g" codec:"140,omitempty"`
	MidPercentileG  *Uint64String `json:"mid-percentile-g" codec:"141,omitempty"`
	HighPercentileG *Uint64String `json:"high-percentile-g" codec:"142,omitempty"`
	PeakG           *Uint64String `json:"peak-g" codec:"143,omitempty"`
	CurrentG        *Uint64String `json:"current-g" codec:"209,omitempty"`
	// contains filtered or unexported fields
}

func (TrafficPerProtocol) String

func (traffic TrafficPerProtocol) String(spacesn string) (result string)

Convert TrafficPerProtocol to string

type TrafficPerProtocolResponse

type TrafficPerProtocolResponse struct {
	Unit            UnitString    `json:"unit" codec:"134,omitempty"`
	Protocol        int           `json:"protocol" codec:"191,omitempty"`
	LowPercentileG  *Uint64String `json:"low-percentile-g" codec:"140,omitempty"`
	MidPercentileG  *Uint64String `json:"mid-percentile-g" codec:"141,omitempty"`
	HighPercentileG *Uint64String `json:"high-percentile-g" codec:"142,omitempty"`
	PeakG           *Uint64String `json:"peak-g" codec:"143,omitempty"`
	CurrentG        *Uint64String `json:"current-g" codec:"209,omitempty"`
	// contains filtered or unexported fields
}

func (TrafficPerProtocolResponse) String

func (traffic TrafficPerProtocolResponse) String(spacesn string) (result string)

Convert TrafficPerProtocolResponse to String

type TrafficResponse

type TrafficResponse struct {
	Unit            UnitString    `json:"unit" codec:"134,omitempty"`
	LowPercentileG  *Uint64String `json:"low-percentile-g" codec:"140,omitempty"`
	MidPercentileG  *Uint64String `json:"mid-percentile-g" codec:"141,omitempty"`
	HighPercentileG *Uint64String `json:"high-percentile-g" codec:"142,omitempty"`
	PeakG           *Uint64String `json:"peak-g" codec:"143,omitempty"`
	CurrentG        *Uint64String `json:"current-g" codec:"209,omitempty"`
	// contains filtered or unexported fields
}

func (TrafficResponse) String

func (traffic TrafficResponse) String(spacesn string) (result string)

Convert TrafficResponse to String

type Uint64String

type Uint64String uint64

Uint64String to convert value from string (json) to uint64 (cbor)

and to convert value from uint64 (cbor) to string (json)

func (Uint64String) MarshalJSON

func (u Uint64String) MarshalJSON() ([]byte, error)

func (*Uint64String) UnmarshalJSON

func (u *Uint64String) UnmarshalJSON(data []byte) error

type Unit

type Unit string
const (
	PACKETS_PER_SECOND      Unit = "packet-ps"
	BITS_PER_SECOND         Unit = "bit-ps"
	BYTES_PER_SECOND        Unit = "byte-ps"
	KILOPACKETS_PER_SECOND  Unit = "kilopacket-ps"
	KILOBITS_PER_SECOND     Unit = "kilobit-ps"
	KILOBYTES_PER_SECOND    Unit = "kilobyte-ps"
	MEGAPACKETS_PER_SECOND  Unit = "megapacket-ps"
	MEGABITS_PER_SECOND     Unit = "megabit-ps"
	MEGABYTES_PER_SECOND    Unit = "megabyte-ps"
	GIGAPACKETS_PER_SECOND  Unit = "gigapacket-ps"
	GIGABITS_PER_SECOND     Unit = "gigabit-ps"
	GIGABYTES_PER_SECOND    Unit = "gigabyte-ps"
	TERAPACKETS_PER_SECOND  Unit = "terapacket-ps"
	TERABITS_PER_SECOND     Unit = "terabit-ps"
	TERABYTES_PER_SECOND    Unit = "terabyte-ps"
	PETAPACKETS_PER_SECOND  Unit = "petapacket-ps"
	PETABITS_PER_SECOND     Unit = "petabit-ps"
	PETABYTES_PER_SECOND    Unit = "petabyte-ps"
	EXAPACKETS_PER_SECOND   Unit = "exapacket-ps"
	EXABITS_PER_SECOND      Unit = "exabit-ps"
	EXABYTES_PER_SECOND     Unit = "exabyte-ps"
	ZETTAPACKETS_PER_SECOND Unit = "zettapacket-ps"
	ZETTABITS_PER_SECOND    Unit = "zettabit-ps"
	ZETTABYTES_PER_SECOND   Unit = "zettabyte-ps"
)

type UnitConfig

type UnitConfig struct {
	Unit       *UnitString `json:"unit" codec:"134,omitempty"`
	UnitStatus *bool       `json:"unit-status" codec:"135,omitempty"`
	// contains filtered or unexported fields
}

type UnitConfigResponse

type UnitConfigResponse struct {
	Unit       UnitString `json:"unit" codec:"134,omitempty"`
	UnitStatus bool       `json:"unit-status" codec:"135,omitempty"`
	// contains filtered or unexported fields
}

type UnitString

type UnitString int

UnitString to convert value from string (json) to int (cbor)

and to convert value from int (cbor) to string (json)
const (
	PacketsPerSecond UnitString = iota + 1
	BitsPerSecond
	BytesPerSecond
	KiloPacketsPerSecond
	KiloBitsPerSecond
	KiloBytesPerSecond
	MegaPacketsPerSecond
	MegaBitsPerSecond
	MegaBytesPerSecond
	GigaPacketsPerSecond
	GigaBitsPerSecond
	GigaBytesPerSecond
	TeraPacketsPerSecond
	TeraBitsPerSecond
	TeraBytesPerSecond
	PetaPacketsPerSecond
	PetaBitsPerSecond
	PetaBytesPerSecond
	ExaPacketsPerSecond
	ExaBitsPerSecond
	ExaBytesPerSecond
	ZettaPacketsPerSecond
	ZettaBitsPerSecond
	ZettaBytesPerSecond
)

func ConvertUnitToInt

func ConvertUnitToInt(unit string) (unitInt UnitString)

Convert sample from string to int

func (UnitString) MarshalJSON

func (u UnitString) MarshalJSON() ([]byte, error)

func (*UnitString) UnmarshalJSON

func (u *UnitString) UnmarshalJSON(data []byte) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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