| // Copyright 2018 Open Networking Foundation |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| package main |
| |
| // configuration |
| type BrokerInfo struct { |
| Name string `yaml: name` |
| Host string `yaml: host` |
| Description string `yaml: description` |
| Topics []string `yaml: topics` |
| } |
| |
| type LoggerInfo struct { |
| LogLevel string `yaml: loglevel` |
| Host string `yaml: host` |
| } |
| |
| type TargetInfo struct { |
| Type string `yaml: type` |
| Name string `yaml: name` |
| Port int `yaml: port` |
| Description string `yaml: description` |
| } |
| |
| type Config struct { |
| Broker BrokerInfo `yaml: broker` |
| Logger LoggerInfo `yaml: logger` |
| Target TargetInfo `yaml: "target"` |
| } |
| |
| // KPI Events format |
| type Metrics struct { |
| TxBytes float64 `json:"tx_bytes"` |
| TxPackets float64 `json:"tx_packets"` |
| TxErrorPackets float64 `json:"tx_error_packets"` |
| TxBcastPackets float64 `json:"tx_bcast_packets"` |
| TxUnicastPackets float64 `json:"tx_ucast_packets"` |
| TxMulticastPackets float64 `json:"tx_mcast_packets"` |
| RxBytes float64 `json:"rx_bytes"` |
| RxPackets float64 `json:"rx_packets"` |
| RxErrorPackets float64 `json:"rx_error_packets"` |
| RxBcastPackets float64 `json:"rx_bcast_packets"` |
| RxMulticastPackets float64 `json:"rx_mcast_packets"` |
| |
| LaserBiasCurrent float64 `json:"laser_bias_current"` |
| Temperature float64 `json:"temperature"` |
| PowerFeedVoltage float64 `json:"power_feed_voltage"` |
| MeanOpticalLaunchPower float64 `json:"mean_optical_launch_power"` |
| ReceivedOpticalPower float64 `json:"received_optical_power"` |
| |
| // ONU Ethernet_Bridge_Port_history |
| Packets float64 `json:"packets"` |
| Octets float64 `json:"octets"` |
| } |
| |
| type Context struct { |
| InterfaceID string `json:"intf_id"` |
| PonID string `json:"pon_id"` |
| PortNumber string `json:"port_no"` |
| |
| // ONU Performance Metrics |
| ParentClassId string `json:"parent_class_id"` |
| ParentEntityId string `json:"parent_entity_id"` |
| Upstream string `json:"upstream"` |
| } |
| |
| type Metadata struct { |
| LogicalDeviceID string `json:"logical_device_id"` |
| Title string `json:"title"` |
| SerialNumber string `json:"serial_no"` |
| Timestamp float64 `json:"ts"` |
| DeviceID string `json:"device_id"` |
| Context *Context `json:"context"` |
| } |
| |
| type SliceData struct { |
| Metrics *Metrics `json:"metrics"` |
| Metadata *Metadata `json:"metadata"` |
| } |
| |
| type VolthaKPI struct { |
| Type string `json:"type"` |
| Timestamp float64 `json:"ts"` |
| SliceDatas []*SliceData `json:"slice_data"` |
| } |
| |
| type OnosPort struct { |
| PortID string `json:"portId"` |
| RxPackets float64 `json:"pktRx"` |
| TxPackets float64 `json:"pktTx"` |
| RxBytes float64 `json:"bytesRx"` |
| TxBytes float64 `json:"bytesTx"` |
| RxPacketsDrop float64 `json:"pktRxDrp"` |
| TxPacketsDrop float64 `json:"pktTxDrp"` |
| } |
| |
| type OnosKPI struct { |
| DeviceID string `json:"deviceId"` |
| Ports []*OnosPort `json:"ports"` |
| } |
| |
| type ImporterKPI struct { |
| Timestamp int64 |
| LaserBiasCurrent float64 |
| Temperature float64 |
| TxPower float64 |
| Voltage float64 |
| } |
| |
| type OnosAaaKPI struct { |
| RxAcceptResponses float64 `json:"acceptResponsesRx"` |
| RxRejectResponses float64 `json:"rejectResponsesRx"` |
| RxChallengeResponses float64 `json:"challengeResponsesRx"` |
| TxAccessRequests float64 `json:"accessRequestsTx"` |
| RxInvalidValidators float64 `json:"invalidValidatorsRx"` |
| RxUnknownType float64 `json:"unknownTypeRx"` |
| PendingRequests float64 `json:"pendingRequests"` |
| RxDroppedResponses float64 `json:"droppedResponsesRx"` |
| RxMalformedResponses float64 `json:"malformedResponsesRx"` |
| RxUnknownserver float64 `json:"unknownServerRx"` |
| RequestRttMillis float64 `json:"requestRttMillis"` |
| RequestReTx float64 `json:"requestReTx"` |
| RxEapolLogoff float64 `json:"eapolLogoffRx"` |
| TxEapolResIdentityMsg float64 `json:"eapolResIdentityMsgTrans"` |
| TxAuthSuccess float64 `json:"eapolAuthSuccessTrans"` |
| TxAuthFailure float64 `json:"eapolAuthFailureTrans"` |
| TxStartReq float64 `json:"eapolStartReqTrans"` |
| EapPktTxAuthChooseEap float64 `json:"eapPktTxauthChooseEap"` |
| TxResponseNotNak float64 `json:"eapolTransRespNotNak"` |
| EapolFramesTx float64 `json:"eapolFramesTx"` |
| AuthStateIdle float64 `json:"authStateIdle"` |
| RequestIdFramesTx float64 `json:"requestIdFramesTx"` |
| RequestEapFramesTx float64 `json:"requestEapFramesTx"` |
| InvalidPktType float64 `json:"invalidPktType"` |
| InvalidBodyLength float64 `json:"invalidBodyLength"` |
| ValidEapolFramesRx float64 `json:"validEapolFramesRx"` |
| PendingResSupplicant float64 `json:"pendingResSupplicant"` |
| RxResIdEapFrames float64 `json:"resIdEapFramesRx"` |
| } |
| |
| type OnosPppoeSubscriberKPI struct { |
| Mac string `json:"mac"` |
| Ip string `json:"ip"` |
| SessionId int `json:"sessionId"` |
| STag int `json:"sTag"` |
| CTag int `json:"cTag"` |
| SerialNumber string `json:"serialNumber"` |
| UpTermBytes float64 `json:"upTermBytes"` |
| UpTermPackets float64 `json:"upTermPackets"` |
| UpDropBytes float64 `json:"upDropBytes"` |
| UpDropPackets float64 `json:"upDropPackets"` |
| DownRxBytes float64 `json:"downRxBytes"` |
| DownRxPackets float64 `json:"downRxPackets"` |
| DownTxBytes float64 `json:"downTxBytes"` |
| DownTxPackets float64 `json:"downTxPackets"` |
| UpControlPackets float64 `json:"upControlPackets"` |
| } |
| |
| type OnosPppoeKPI struct { |
| Subscribers []OnosPppoeSubscriberKPI `json:"subscribers"` |
| Timestamp string `json:"timestamp"` |
| } |